Jump to content

How To Guide: Getting Alexa to provide verbal responses


blueman2

Recommended Posts

Posted (edited)

How to use the 3PO-Labs Responder to make Alexa talk back to you

 

The Alexa Responder tool created by 3PO-Labs allows anyone to create customized responses from Alexa to questions about status of anything controlled by the ISY.  Some examples I am currently using with this tool are:

·         Alexa, Tell Me the inside Temperature (based on my Insteon thermostat)

·         Alexa, Tell Me Security Status (based on my ELK)

·         Alexa, Tell Me House Fan Speed (speed of my whole house fan that I run at night)

·         Alexa, Tell Me Pool Pump status (linked to my Pentair pool pump)

·         Alexa, Tell Me Power Usage (based on my AEON labs Home Energy Montor)

·         Alexa, Tell  Me ISY options (you can set this up with a help message on all the things you can ask Alexa to tell you)

NOTE: Amazon as of Aug 7, 2018 has stopped allowing the use of invocation word 'me'.  So 'Tell me' no longer works.  I switched to 'Bob', so now I say "Alexa, ask Bob ....".  But use whatever word you want.  Just no 'me' anymore.

Basically, with a little programming in the ISY, you can have Alexa give verbal updates to anything that your ISY links to or knows about.  Possibilities are endless. You can chose your own command words, and decide how she responds.  If you want to add humor, add references to your dog, have her talk sweet talk to you, or whatever, it is up to you.  You can have 100% control of what Alexa says. 

 

To set this up, you will need to:

  1. Sign up for an Amazon developer account (it is free) and Create an Alexa Skill (free and easy)
  2. Open the skill you created using your Echo in order to get the Skill ID number (for use with the ISY)
  3. Create Network Resources on the ISY for each item that you want Alexa to respond to.  You will need the Networking Module in ISY, either by purchasing it or the Portal.
  4. Create programs on the ISY to trigger the Network Resources when things change
  5. (Optional) Spend countless hours setting up different responses for Alexa for every conceivable thing you want her to respond to. 

There is no need for any home server or Raspberry Pi, nor is there the need to sign up for the ISY Portal (which I still recommend you do anyway).  So there is no additional cost for this capability.  

 

3PO-Labs has a good summary of steps 1 and 2 for generic use, but I have tailored those instructions for use with the ISY here.   Their site is: http://www.3po-labs.com/responder.html

 

June 2018 update: Amazon has greatly improved their skill creation tool.  Upside is that it is much easier to create your own skills.  However, the instructions below are somewhat out of date now.  They still work, but the screens will look different and you will have to translate a few things into the way Amazon now does it.  

STEP 1: Create your Alexa Skill

 

If you have not done so already, go to https://developer.amazon.com/edw/home.html#/skills/list to sign up for a developer account with Amazon.  Select “I am a new customer” and follow the sign up process.  Enter the same credentials as you use for your Echo account.

 

With your account created, now sign in. 

https://developer.amazon.com/edw/home.html#/skills/list

post-2740-0-24932500-1475610444_thumb.png

 

Once you have signed in, select “Alexa” from the top bar, and then in the box below called “Alexa Skills Kitselect “Get Started”.  This will bring you to the “Building Alexa Skills” page.  Should look like this, but with no skills listed yet.

 

post-2740-0-57119900-1475610450_thumb.png

 

As you can see, I have already created 2 skills.  Let’s focus on the “Tell Me” skill which you will want to create.  Click on “Add New Skill” in the upper right.  You will see this page:

 

post-2740-0-05286400-1475610458_thumb.png

 

 

This is the page where you tell let Alexa know what word(s) to use to respond to ISY commands.  I will go into the many options you have here later, but for now, let’s have Alexa respond to “Alexa, Tell Me xxxx”.  Fill out these 2 fields:

·         Name: “Tell Me” (omit the quotes)

·         Invocation Name: "me" (again, omit the quotes and do not use any caps here)

You can come back later and change these if you want to have a different way to address your Alexa. 

 

Select “Next” in the lower right.  This will bring you to the “Interaction Model” page.  This is where you will tell the Skill what Intentions to respond to. 

 

post-2740-0-83458400-1475610467_thumb.png

 

The upper area is where you define what set of responses you plan to have Alexa provide.  For now, let’s put these in, but you will add to these over time.

{
    "intents": [
        {
            "intent":"INSIDETEMP",
            "slots": []
        },
       {
            "intent": "WHATISMYID",
            "slots": []
        },
        {
            "intent": "AMAZON.HelpIntent",
            "slots": []
        }
    ]
}

And in the lower box, add these sample utterances (just copy and paste the following):

INSIDETEMP inside temperature
INSIDETEMP indoor temperature
WHATISMYID my id
WHATISMYID my id number
AMAZON.HelpIntent what you can do
AMAZON.HelpIntent what i can ask

Notice that you can change the words beside each Intent to ensure that Alexa understands your intention.  These words are called sample utterances.  I recommend keeping these simple and with fewest words possible.  The more words you add, the more easily Alexa gets confused.  Use the KISS principle.  

 

Click on the “Next” button in the lower right.  This will bring you to the Configuration page. 

 

post-2740-0-37739400-1475610473_thumb.png 

 

Click on “AWS Lambda ARN”, select “North America”, and fill in the box with:

arn:aws:lambda:us-east-1:413543783734:function:ASK_Responder

Click on “Save”. 

 

Congratulations.  You created your first Skill!  Probably, this is the only skill you will need.  But you will be coming back and editing/adding to this skill many times in the future. 

 

 

STEP 2: Register your new Skill and get the Skill User ID number

 

Activate the skill so the server will record your Echo ID and give it back to you. Talk to your Echo and activate the skill:

 

"Alexa, Open Me"

 

If this is the first time you have accessed this skill, it should then respond with your Echo ID, and a series of instructions on how to use it. Your ID is a unique identifier that will look something like this (0fabacdd-d3ea-48a7-98bc-7d518a19b7c1). You will want to copy/paste it out of your Alexa App so you can use it later. Remember, if at any time you forget what your ID is, you can always ask the skill

 

"Alexa, Tell Me what is my id?"

 

Remember when we were setting up the Skill and had the Intention called WHATSMYID?  Well, that is why we added that so you can get your ID again in the future.

 

 

STEP 3: Set up Variables and Network Resources in ISY

 

First, since we will be asking Alexa to tell us Temperature, we will need to have a variable for Temperature.  In this case, I am using State Variable #17 to hold temperature from my Insteon thermostat.  Note that in ISY, variables can be accessed using the format “${var.2.17}” where 2=state variable and 17=variable number.  We will use this format later.

 

This next step will require you to have the Networking Module.  If you are using the ISY Portal, you will already have this. If not, you must purchase the Networking Module from UDI.  What you will be doing is creating the words that Alexa will speak back to you when you ask her a question.  We will do two of these to start off.  You can add more as you need.

 

In ISY, select “Configuration”, “Networking”, “Network Resources”.  Select “Add” at the bottom.  A new line will be created.  Give it a name such as “Inside Temperature”.  Then click on the column to the right of the name, and it will open a new box.  Here is what my Temperature example looks like:

 

post-2740-0-58391300-1476214593_thumb.png

 

Most of this you can see from this image capture, but for clarity:

 

Host = responder.3po-labs.com

Port = 80

Path = /responder/users/userID/intents/INSIDETEMP

 

Replace userID with the long number you got at the end of step 3).  So the actual Path will look something like:

 

/responder/users/0fabacdd-d3ea-48a7-98bc-7d518a19b7c1/intents/INSIDETEMP

 

As you may notice, the end of the path includes the ‘intent’ term that we used in the Alexa Skill and matches the Sample Utterances which will trigger this response. 

 

Select Content Type: application/json

 

NOTE: As jndsoccer discovered, it might be better to use "Raw Text" rather than "C Escpaped" setting.  Raw Text will maintain the format of the body posted below and will allow for easier editing later.  C-Escaped puts everything on one line after you save it, making editing a bit more complex.  But either will work.  

 

In the body, paste the following:

{
  "version": null,
  "response": {
    "outputSpeech": {
      "type": "SSML",
      "id": null,
      "ssml": "<speak>The current inside temperature is ${var.2.17} degrees. </speak>"
    },
    "card": {
      "type": "Simple",
      "title": "Inside Temperature",
      "content": "${var.2.17} degrees"
    },    
    "shouldEndSession": true
  },
  "sessionAttributes": null
}

Of course, change the ${var.2.17} to whatever variable you have put your temperature in. Then select Update, then Save.  

 

And while we are here, let’s create a second Network Resource as a HELP function.  Similar to that above, but change the path to:

 

/responder/users/userID/intents/AMAZON.HelpIntent (again, putting your userID in)

 

And put this in the Body:

{
  "version": null,
  "response": {
    "outputSpeech": {
      "type": "SSML",
      "id": null,
      "ssml": "<speak> I can provide the status of the following devices in your home. . . House Fan speed, Security Status, Pool Pump Status, power usage, inside temperature, and outside temperature.  Just say, tell me, followed by the item.</speak>"
    },
   "card": {
     "type": "Simple",
     "title": "Help",
     "content": "Help"
    },   
    "shouldEndSession": true
  },
  "sessionAttributes": null
}
     

This is directly from my program which includes these other commands.  If you choose, remove everything except for Inside Temperature for now until you add more.  Or leave as it just for experimenting.

 

Notice also the section called "card".  This will cause a note to be sent to the Alexa App so that you can debug the speech if needed.  This section is optional.  

 

Again, select Update and then Save. 

 

Back on the main Networking Resource page, click SAVE to save the 2 resources we just created.  Select the name of each resource and click TEST.  Do the same for the other resource.  This should give you a dialog box like this:

 

post-2740-0-46613700-1475610489_thumb.png

 

If you do not get the HTTP/1.1 200 OK, then you did something wrong with the network resource.  Go back and check everything. 

 

Now let’s see if these really worked.  Say to your Echo:

 

“Alexa, tell me what you can do”

You should get the response that you put into the body of the HELP network resource. 

 

“Alexa, tell me inside temperature”

You should get a response of the inside temperature.  If your variable was not populated with a program, it might just say zero. 

 

 

STEP 4: Create programs to update Variables and trigger the Network Resources in ISY

 

I won’t go into detail on this step, but you can now create programs that will update any variable you are using and have the ISY send the updated information to Alexa by triggering the Network Resource.  The key thing to understand here is that you need to send an update to Alexa every time something changes that you care about.  So if the temperature changes, you need to update Alexa.  Here is my program to do this:

If
        $Inside_Temperature > 0

Then
        Resource 'Inside Temperature'

Else
   - No Actions - (To add one, press 'Action')

This will cause the resource to be updated on any temperature change. 

 

THIS IS VERY IMPORTANT: If you are using variables, the Echo has no idea that a variable has changed and will continue to give you old/stale data when you talk to her.  It is up to you to send to the Echo, using the network resources you created, the latest updates and variable states.    

 

 

STEP 5: Add more Intents!

 

Now that you have the idea, go back and add more Intents!  Here is what my Alexa Skill looks like right now:

 

Intents:

{
    "intents": [
        {
            "intent":"POOL",
            "slots": []
        },
        {
            "intent":"INSIDETEMP",
            "slots": []
        },
        {
            "intent":"OUTSIDETEMP",
            "slots": []
        },
        {
            "intent":"POWER",
            "slots": []
        },        {
            "intent":"SECURITY",
            "slots": []
        },
        {
            "intent":"WHFAN",
            "slots": []
        },        {
            "intent": "WHATISMYID",
            "slots": []
        },
        {
            "intent": "AMAZON.HelpIntent",
            "slots": []
        }
    ]
}

Sample Utterances:

AMAZON.HelpIntent what you can do
AMAZON.HelpIntent what i can ask
POOL pool pump
POOL pool pump status
POOL pool pump speed
POOL poupon
POOL poop
INSIDETEMP inside temperature
INSIDETEMP indoor temperature
OUTSIDETEMP outside temperature
OUTSIDETEMP outdoor temperature
POWER power usage
POWER energy usage
POWER home power 
POWER house power
SECURITY security status
SECURITY security
WHFAN house fan speed
WHFAN house fan status
WHFAN fan speed
WHFAN fan status
WHATISMYID my id
WHATISMYID my ID number

One of my most used responses is "Alexa, tell me security status".  I have programs set up to update my security status based on my ELK and other sensors.  For example, one program is:

House Secure and outside lights off - [ID 00AB][Parent 00AA]

If
        Elk Area 'Main House' 'Arm Up State' is Ready To Arm
    And '@ Z-wave Devices / ZW 09 Garage Door Lock' Status is Locked
    And '@ Z-wave Devices / ZW 22 Front Door Lock' Status is Locked
    And '@ Z-wave Devices / ZW 23 Den-Garage Door Lock' Status is Locked
    And Status (Old) '@ Inside Devices / Den Sliding Door Unlocked' is Off
    And Program 'Test Exterior Light On?' is False
 
Then
        Resource 'Alexa House Security secure '
        
Else
   - No Actions - (To add one, press 'Action')

and then I created a network resource for this program called Alexa House Security Secure:

{
  "version": null,
  "response": {
    "outputSpeech": {
      "type": "SSML",
      "id": null,
      "ssml": "<speak>Your house is secure.  All doors are locked and all windows are closed</speak>"
    },
    
    "card": {
       "type": "Simple",
       "title": "Security Status",
         "content": "House is Secure"
   },   
     "shouldEndSession": true
  },
  "sessionAttributes": null
}

In all, I created about 6 of these for various states of secure / not secure.  You can do that same thing for queries such as "Alexa, tell me what lights are on", for example.  Note that in these cases, there are no variables used.  You only use variables when they make sense to use.  

 

But you can add just about anything you want.  After updating the Skill list of Intents and Sample Utterances, just add the Network Resource to go with it and you are set!

 

BTW, notice my sample utterances under POOL.  This is for my pool pump status.  For some reason, Alexa gets very confused when I say "Tell me pool pump status".  If you go into the Alexa App, you can see what words she THINKS you said. She always thinks I said "poupon" or "poop on" rather than Pool Pump. So rather than argue with her, I just added those into the list so that she understands me intent.  And it works!

 

 

 

About 3PO-Labs:

 

I cannot thank the kind folks over at 3PO-Labs enough for making all of this possible.  They originally created the Responder tools to allow developers to more quickly test how Alexa speaks sample text phrases to see if they sound right.  When I let them know about how we wanted to use this in our home automation world, they enthusiastically responded by expanding the tool and customizing to our needs.  I recommend that people read their blogs and support them in any way you can. 

 

http://www.3po-labs.com/

 

 

About Alexa Syntax:

 

I am not an expert on this, and probably have some of the terminology wrong, but here is what I have learned so far.  Let’ use an example:

 

“Alexa, Tell Me the Inside Temperature”

 

Wake Word: Alexa

Action Word: Tell

Invocation Name: Me

Intention: Inside Temperature

 

For wake word, there are (maddeningly) only 3 options today.  Alexa, Amazon and Echo. Hopefully Amazon will allow more soon. 

 

For action word, there are quite a few.  You are already familiar with actions such as ‘Turn On’, ‘Turn Off’, etc.  For our custom skill, the Action words available to us include:

·         ask

·         begin

·         do

·         launch

·         load

·         open

·         play

·         resume

·         run

·         start

·         talk to

·         tell

·         use

 

For Invocation Name,  we have (almost) complete control.  I chose 'Me" but you can choose whatever you want.  But it has to pair nicely with the Action Word you decide to use.  For me, logical pairs are:

“Tell Me”  EDIT: note that as of Aug 7 2018, we can no longer use 'me'.  Amazon stopped allowing use of 'me' for some reason.  

“Ask Izzy”

“Ask ISY”

“Ask House”

But you can use whatever pairs work for you.  One downside for my choice of "Tell Me" is that it prevents you from doing other Alexa skills that also use this pairing.  For example, you cannot use the "Alexa, Tell me a joke" skill.  The custom skill you have created will always take precedence over other skills.  So just be aware of that.

 

The Intention word(s) can also be anything you want. You can (and almost certainly will) have many of these.  One for each item you want to get a response for.  Each Intention Word will be associated with one or more Network Resources on your ISY. For each Intention Word, you will create a list of “Sample utterances” that the Echo will use to do its speech recognition.  So for the Intention Word “Inside Temperature”, you can add sample utterances such as “inside temperature”, “what is the inside temperature”, “the current inside temperature”, “the damn inside temperature”, or whatever.    

Edited by blueman2
  • Like 5
Posted (edited)

This is cool! One step closer too what's needed - Push Notifications. You know Alexa to announce important things from the ISY without a prompt..

 

Cheers,

Alex

 

THIS!  The thing I am really waiting for is the ISY being able to tell Alexa to say something or give a response without me having to talk to Alexa.   But in the mean time, being able to give "Alexa, ask XXXXX" where XXX can be anything you want is a nice feature.  It is still complex to get working and only for the do-it-yourself-er, but it is cool nonetheless.  

Edited by blueman2
  • Like 1
Posted (edited)

BTW, I just realized you can create invocation names for each skill with shared words.  So you can give commands such as:

 

Alexa, Ask House Temperature

Alexa, Ask House Security Status

Alexa, Ask House Den Temperature

Alexa, Ask House Lights Status

 

and each of these will trigger a different skill.  So it becomes a matter of creating the network resources to send words back to each skill depending on the status of your ISY/ELK/etc. The development is actually very easy and fast.  I can add a new one in about 30 minutes.  Keeping the "Ask House" wording makes it easier for the rest of the family to remember how to use.  

 

EDIT: this is an old comment, before the new version of RESPONDER

Edited by blueman2
  • Like 2
Posted

BTW, I just realized you can create invocation names for each skill with shared words.  So you can give commands such as:

 

Alexa, Ask House Temperature

Alexa, Ask House Security Status

Alexa, Ask House Den Temperature

Alexa, Ask House Lights Status

 

and each of these will trigger a different skill.  So it becomes a matter of creating the network resources to send words back to each skill depending on the status of your ISY/ELK/etc. The development is actually very easy and fast.  I can add a new one in about 30 minutes.  Keeping the "Ask House" wording makes it easier for the rest of the family to remember how to use.  

Can you provide an example of the actual ISY Program, Network Resouce (you already did above), and the Actual skill.  I'm playing with this but keep getting the response from Alexa "You have no saved responses"

 

Thanks...very cool

Posted (edited)

Can you provide an example of the actual ISY Program, Network Resouce (you already did above), and the Actual skill.  I'm playing with this but keep getting the response from Alexa "You have no saved responses"

 

Thanks...very cool

 

Ok, that means the network resource you created is not talking to the alexa skill.  That is a problem with the Network Resource probably.  Did you change the "Content type: to /application/json"?  I am sorry, I forgot to include that step before.  But you can see mine is set that way.  Did you do Update and save while editing the resource?  Then, from the list of resources, you hit save.  Then, select the name of the resource you created, and hit TEST.  That should upload it.  if not, look carefully at the settings in my copy of the resource.  

 

It the upload is successful, it will return with a copy of what you sent.  If the response box in the ISY is blank, it did not work for some reason.

 

Once that is working, you just create a program to trigger that network resource.  I will include a copy in a bit...

Edited by blueman2
Posted (edited)

Ok, that means the network resource you created is not talking to the alexa skill.  That is a problem with the Network Resource probably.  Did you change the "Content type: to /application/json"?  I am sorry, I forgot to include that step before.  But you can see mine is set that way.  Did you do Update and save while editing the resource?  Then, from the list of resources, you hit save.  Then, select the name of the resource you created, and hit TEST.  That should upload it.  if not, look carefully at the settings in my copy of the resource.  

 

It the upload is successful, it will return with a copy of what you sent.  If the response box in the ISY is blank, it did not work for some reason.

 

Once that is working, you just create a program to trigger that network resource.  I will include a copy in a bit...

Hmm..I keep getting "TCP Client Request Failed" when trying to test from the ISY.  it is HTTP Post, application/json, has a / after id...scratching my head.

 

When done from a browser I get "There are no responses stored for user" 

Edited by rahnee
Posted

Hmm..I keep getting "TCP Client Request Failed" when trying to test from the ISY.  it is HTTP Post, application/json, has a / after id...scratching my head.

 

When done from a browser I get "There are no responses stored for user" 

 

The only thing you cannot see in my screen shot is the end of the path.  I do not have a "/" at the end.  If you match everything else, it should work.  Look word by word and letter by letter.  

Posted

Evidently my ID changed and I did not realize it. I must have told it to update.  I started from scratch and it worked the first time.  I hate it when it is the old "turn it off and back on again"!

 

Thanks again.

Posted (edited)

Evidently my ID changed and I did not realize it. I must have told it to update.  I started from scratch and it worked the first time.  I hate it when it is the old "turn it off and back on again"!

 

Thanks again.

 

Ah, the Windows solution works again.  

Edited by blueman2
Posted

Ah, the Windows solution works again.  

 

You do get a new ID for every skill you create.  That is how it allows you to create different invocations and keep them separate.  I have 5 different user codes (that super long series of numbers and letters), one for each Skill.   You just need to remember to use the right code for the right network resources you create.  

This really is cool, I've been looking for a solution that would allow me to ask Alexa if the alarm was on, lights were on, door locked etc.  Did you figure out how to pass variables, that is the key to making it truly helpful.  This solution, as you pointed out, is very elementary since we have to write programs for all the different possibilities.   This is a good start...

Posted (edited)

This really is cool, I've been looking for a solution that would allow me to ask Alexa if the alarm was on, lights were on, door locked etc.  Did you figure out how to pass variables, that is the key to making it truly helpful.  This solution, as you pointed out, is very elementary since we have to write programs for all the different possibilities.   This is a good start...

 

No, I have not been able to successfully pass a variable as part of a JSON POST command yet.  So I have had to create a separate Network Resource for every possible condition.  I am up to about 30 network resources for my Alexa responses so far, and creating more every day.  A kludge, but I do get Alexa to tell me pretty much every status I want to know.  Inside temperature, pool pump status, doors locked status, windows closed status, outside lights status, to name a few.  Does what I wanted.  Well, except for my desire to have Alexa say things based on ISY without having to ask her a question (unprompted). 

 

EDIT: this is an old comment, before the new version of RESPONDER

Edited by blueman2
Posted

No, I have not been able to successfully pass a variable as part of a JSON POST command yet. So I have had to create a separate Network Resource for every possible condition. I am up to about 30 network resources for my Alexa responses so far, and creating more every day. A kludge, but I do get Alexa to tell me pretty much every status I want to know. Inside temperature, pool pump status, doors locked status, windows closed status, outside lights status, to name a few. Does what I wanted. Well, except for my desire to have Alexa say things based on ISY without having to ask her a question (unprompted).

Check the other thread on this. I posted an example on how to post JSON with variable substitution. It works fine, as long as you don't use encoding (I suggest using RAW instead of 'URL Encode'.
  • Like 2
Posted (edited)

Check the other thread on this. I posted an example on how to post JSON with variable substitution. It works fine, as long as you don't use encoding (I suggest using RAW instead of 'URL Encode'.

 

MWareman was correct!  While I have not been able to directly add a device variable, I am now able to add a State or Integer variable to the JSON POST.  Rather than creating 15 Network Resource entries for different temperatures, I can now create just one:

 

post-2740-0-77867700-1473010305_thumb.png

 

I just have toinsert the temperature reading into the variable before activating the network resource. And remember, you have to re-send the JSON POST every time the variable changes.   

Edited by blueman2
  • Like 3
Posted (edited)

I am definitely enjoying the ability to have Alexa respond to my queries with status on my home.  So far I have created:

 

1) Security Status: gives one of 5 possible home security status responses depending on doors, windows, etc.  

2) Inside Temperature: gives house temperature based on an average of 2 of my thermostats.

3) Outside Temperature: gives outdoor temperature based on reading from outdoor sensor

4) Pool Pump Status: status of my pool pump, in RPM

5) Power Usage: reads out my current home power usage in Watts, refreshed every 3 minutes

6) Lights Status: tells me if I have any lights on in the house

 

Each of these is invoked by saing "Alexa, ask {name listed above}".  The really nice thing is that you can customize each reply.  So if inside temperature is below 65 degrees, I use a replay that gives "The current inside temperature is ${variable}.  Burr, cold".  Or if above 76 it says "The current inside temperature is ${variable}, kind of warm in here".  So you can give Alexa whatever personality you want.  

 

I am still playing around with invocation names to see what works most reliably and is most natural to say.  You can use 1 or more words, totally up to you.  

Edited by blueman2
Posted (edited)

Blueman2

 

Could you explain how you got the skill to run the program on the ISY to send  the response

 

thanks

 

 

NOTE: the following is depreciated.  Please go to POST #1 in this thread for latest instructions...

 

 

 

1) First, set up a skill on Amazon using the article I referenced.  However, do not name it Responder or use that invocation.  Name it "Test Skill" and use "test skill" as invocation name.  Otherwise, do everything the same.  you can change the name to anything you want later.  If successful, you will get a long string starting with 'amzn1.ask.account.' with a LONG string of numbers afterward.  You will need that for the next step. 

 

2) Create a network resource.  You will require the networking module for this, or if you have the portal, you should already have the networking module.  Create a resource using the template I included above in my original post.  Make sure you confirm everything matches what I have.  Only different will be the long code in the PATH box in the upper right of the network resource screen.  You will still have "/resource/user/", but the rest will come from the number in step 1 above. Put that in.  Do not add a '/' after it.  But put in whatever <speak> words you want.  Now click update, save, and then save again on the next screen.  Now highlight the name of the resource and press test.  Now give the invocation to Alexa, and she will respond with the words you entered.  

 

3) Then, create a program for when you want Alexa to respond with those words.  You might want to create several Network Resources for different IF/Then situations. Or use a variable for things like temperature, etc.  It is up to you to make sure the skill is always updated with the right words based on if/then programs, so that when you give it the invocation, it gives the right words.  Or, like I said, use a variable for things that change like temperature.  

 

You have to do this series of steps for every skill you want.  So for me, I did this 6 times.  That means 6 of those LONG character strings that you get from creating the alexa skill using the DER Group article.  And 6 sets of network resources to provide the right responses to each skill.  And a bunch of if/then programs for each to send the right network resource.  

Edited by blueman2
  • Like 1
Posted

Blueman2

 

Thanks for the quick response. I got all that  i built my skill - House  Utterance - whats the temperature - did  the network resource and sent it 

 

when i say alexa ask house what is the temperature it responds with the last word from the network resource sent. So it look like all that works  thanks

 

But can't figure out how to get the skill to run the program on  ISY  to call up the proper network resource to send when i give the invocation to Alexa

 

Sorry if i'm being dense

 

thanks

Posted (edited)

Blueman2

 

Thanks for the quick response. I got all that  i built my skill - House  Utterance - whats the temperature - did  the network resource and sent it 

 

when i say alexa ask house what is the temperature it responds with the last word from the network resource sent. So it look like all that works  thanks

 

But can't figure out how to get the skill to run the program on  ISY  to call up the proper network resource to send when i give the invocation to Alexa

 

Sorry if i'm being dense

 

thanks

 

 

Here is my program for inside house temperature:

Alexa skill inside temperature - [ID 00C5][Parent 00C6]

If
        $Temperature_Inside_Average > 0
 
Then
        Resource 'Alexa Inside Temperature Skill'
 
Else
   - No Actions - (To add one, press 'Action')
 


Use another program (or this one) to put your temperature into a State variable.  I used $Temperature_inside_average because my other program (not shown) takes the average from 2 thermostats in the house.  Then this program will then trigger the skill to get updated with the latest temperature.  It will update any time the temperature changes. Not show, but $Temperature_inside_average is state variable 17 (2.17). 

 

And here is my resource:

 

post-2740-0-14892800-1473111148_thumb.png

 

This resource gets re-sent every time the temperature changes, so that the correct temperature is always there on the amazon site ready to be read out to you.  

post-2740-0-52469600-1473111346_thumb.png

Edited by blueman2
  • Like 1
Posted

That would be useful. It reminds me of the TV show "Blake 7" where the ships computer would announce, "Information..... "

 

This would be useful.

 

Short and to the point.

Best regards,

Gary Funk

  • 2 weeks later...
Posted

Just an update.  The friendly folks at DERP Group who developed the A.S.K Responder saw how we are using their tool and are doing an upgrade so that it works even better for ISY users who want voice responses from Alexa.  Update will come in the next week or so, and will allow you to better utilize the Invocation and Intent without creating so many user accounts/skills.  It will make it much easier to use.   They also have some longer term plans to add even more features.  Pretty darn exciting to be able to customize Alexa to provide updates on just about anything that the ISY can track or store as a variable.  And to be able to have her respond to whatever words you can think of for the intent.      

  • Like 4

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing

    • No registered users viewing this page.
  • Forum Statistics

    • Total Topics
      37.2k
    • Total Posts
      372.5k
×
×
  • Create New...