Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
How to set up Amazon Web Services skill for Echo support
#1
This is a tutorial on how to set up an Amazon Echo skill.

First you need to create an account at http://aws.amazon.com

There is a free tier service on the welcome page (Create a free account) but you still need to use a credit card. Once you're set up login to the AWS Management Console (use your Amazon credentials).

There are a lot of icons there but at the far left top under Compute is "Lambda". Clicking that icon gets you to the blue "Create a Lambda Function". Clicking that brings you to template choices. Select "Alexa-skills-kit-color-expert". Not much to do on this page but to select the "next" button, but notice the checklist approach on the left that gives you a progress of development for the skill. Select "next" and move on.

Now you're in the "Configure Function" page. Here you name the skill (just any name will do, this is not the call name for the function), plus a description e.g. CQC Home Control" or whatever you wish.

Now go to Dean's post (http://www.charmedquark.com/vb_forum/sho...hp?t=12135) and copy the Java Script he provided. Paste that into the sample code box provided. The only changes needed are your IP address of your router (unless you have your own domain name) and port. You can locate your IP in your router setup or go to a web browser and search "what's my ip". You need to know what port you used for the CQC WebServer during install. Dean provided a key in the java script. You can use that or enter any text for a unique key. Use this key in your config file later on. Also ensure that port forwarding to the CQC Webserver local lan address (e.g. 192.168.x.xxx) and to the port is completed before testing.

Below the Java script area is a drop down tab for "Role". Select "Basic Execution Role". Selecting this brings up another confirmation page, but just select "Allow" on the lower right, which will bring you back to the Java Script area. Now your set for this page. Now select "Next". If something isn't right it will tell you. If not, you're good to go. Next page will be a summary of the function. Now select "Create Function".

Now you're on a page called "Lamba Function Test". Not much to do here but notice there is tab with Alexa under "Event Source" tab and a link to the "Amazon Developer" portal. Before you click this link go the ARN for this function on the right upper portion (opposite right of the blue test button). Copy the arn test (e.g. arn:aws:lambda:us-east-1:1234568912345689:function:test). Now hit the Amazon Developer link.

A new login page appears. Login with your Amazon credentials. Once on the landing page, select the yellow "Add a New Skill". This page allows you to set the name of the skill (any name will do), and the "Invocation Name" which is used to by the Echo and CQC. I chose "home" but control or CQC does work. Chose wisely, as some words won't work (you can change the name if one doesn't work via editing later). Supply a version number in the box. Below that is the "Endpoint". Click the ARN tab (not http) and paste in the arn:aws info from the AWS Lambda site.

Now you have a page with "Intent Schema" and "Sample Utterances". Go back and copy Dean's versions of these from his 2nd post http://www.charmedquark.com/vb_forum...ad.php?t=12135

Now hit the yellow "next" button. Now your Alexa skill ready for testing should appear. No need for certification unless you plan on monitizing this. Selecting "Next" you'll see a screen here but no need to proceed as this is for certification only.

Now if you go to your amazon echo under skills http://echo.amazon.com/#skills your skill should appear.

This completes all the stuff on the amazon side. Now you need to follow Dean's instructions for the config file. When I set this up I used only the config with a global action. That is easiest to set up for a test. Notice that Dean's example has a directory structure (/Echo) under the Global Actions directory. Name a function such as Sprinklers and try it out. Also note that to load the configuration file ask in my case "Alexa tell "home" to run load Echo configuration". Alexa will confirm the load. If you have made changes after the initial configuration load, reconfigure the driver or recycle the service to pick up the changes made. Otherwise it will use the previous configuration setup on discovery.

You'll know if things aren't working if Alexa just "color spins" versus telling you welcome to CQC Echo or something similar.

Another late add to this "how to".

Be aware that anything that hits the HTTP trigger in CQC needs a locked down IP address on your WAN. I was unaware until recently that internet providers (in my case TWC Roadrunner) will change your IP address periodically. Therefore all HTTP triggers will fail if this occurs. In order to get around this find a free domain that supports DDNS (dynamic DNS) (I now use Dynu but there are many out there). How this works is you obtain a domain name (e.g. mydomain.dynu.com) download their windows app service that resides on the cqc server (has support for Mac and Linux as well), and makes sure that when your IP changes the "mydomain. dynu.com" gets updated. Then within the Amazon Lamda function update it with that address (e.g. var CQC_TarAddr = "www.mydomain.dynu.com";

Hope this helps. I'll update this as needed.
Reply
#2
This was very helpful. Thanks.
--Kill all the serial ports--
Reply
#3
When you find your skill, make sure you activate it Smile
Reply
#4
Updated the "How To" with the DDNS requirement for long term stability. This applies to the use of Echo via IFTTT as well. Basically anything that points from the outside to your network. Wuench's driver is local so no need there.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)