Jump to content

How To Guide: Getting Alexa to provide verbal responses


blueman2

Recommended Posts

I'm still confused on this... if my THEN statement is simply calling the same network resource that I tried "test" on then why do I need a program at this stage? I fully understand the need to use a program, going forward, to make sure that Alexa is aware of temperature changes but I cannot see a need for it now... unless running it from a program does something different than the "test" function!

 

As an aside, I ran it from a program and I still have the same result. I think that somehow Alexa hasn't picked up the "tell me" skill!

 

I am using a "state" variable. You can see that in my network resource ${var.2.20}

 

Because a program will *Update & Push* a value to the network resource of the 3po-labs servers and in turn relay that same information to the AWS Servers.

 

As noted please use the >= operator . . .

Link to comment

Because a program will *Update & Push* a value to the network resource of the 3po-labs servers and in turn relay that same information to the AWS Servers.

 

As noted please use the >= operator . . .

 

I don't want to beat this thing to death... but are you saying that the "test" function does not in fact run the network resource and that invoking that same resource from a program does run it?

 

If so, is there some documentation you can point me to that explains the difference so I can understand this better?

 

My program that I tried had the >= operator and still yields the same result.

Link to comment

I think she has picked up the tell me command or she wouldn't have said "There is no response for this input". Make sure your intent matches the utterance field and the network resource.

I think she has or she wouldn't have said "There is no response for this input". Make sure your intent matches the utterance field and the network resource. Needs to be exactly the same in all the spots .

Link to comment

I don't want to beat this thing to death... but are you saying that the "test" function does not in fact run the network resource and that invoking that same resource from a program does run it?

 

If so, is there some documentation you can point me to that explains the difference so I can understand this better?

 

My program that I tried had the >= operator and still yields the same result.

 

This may not be the best example I have ever provided so here goes. You have a book that indicates the index or TOC (Table of contents) and one of the entries says *Why did the duck cross the road*

 

Now the TOC is simply stating a fact *Why did the duck cross the road*. You have no idea why the duck crossed the road until you go to page X to read why the duck crossed the road.

 

The static *Test* button at this very time references a State Variable that offers nothing more than its State Variable ID and at present that value is 0.

 

When you have a program call that Network Resource it will update that portion with a *New Value* which isn't zero but a *Current* value. Which is then pushed to 3po-labs and than relayed up to the AWS servers.

 

The above reply is simply to offer that insight you requested and doesn't address other possible issues with your deployment.

 

Clear as mud??

 

You may be wondering how I know this?

 

Because this time X months ago I had the same questions and inquired the very same . . . So you have the benefit of my lack of understanding of the above.

Link to comment

Let's assume there was no variable, just text. Would it still read the text? Seems that it would.

 

If there is no variable what is there to cause the network resource to update and fire off? There must be a cause and effect for something to happen.

Link to comment

"Clear as mud" Yes it is...

 

If I read your comment correctly you are now saying that "test" runs the network resource the same way that a program does but that you are assuming that the value of the variable is zero and therefore I am giving nothing to Alexa to work with (she doesn't like zero!).

 

However, I explained that I populated the variable with a value 74.5 and therefore my running "test" should pass that value to her regardless of whether the variable is invoked from a program or "test". Does this make sense or is there truly a difference between running "test" and calling it from a program?

Link to comment

Yes, there is a distinct difference between doing the two in this respect.

 

If you do what I asked exactly and assuming there are no other factors affecting your deployment. When you ask Alexa to Tell Me I expect to hear a value recited.

 

 

=========================

 

The highest calling in life is to serve ones country faithfully - Teach others what can be. Do what is right and not what is popular.

Link to comment

An Update...

 

Realizing that Alexa wasn't understanding "tell me" in the first place I went back to the basics of the setup... and when I asked her "Alexa tell me what is my id" she gave me a different id key than I previously had!! I thought that the id key only changes if I delete the skill but presumably it changes for other reasons, not that I know what I did to change it!!

 

Now my using "test" on the network resource and asking Alexa for the inside temperature works... yeah!!

Link to comment

In blueman2's post #31 he stated

 

Actions include:

 

ask

begin

do

launch

load

open

play

resume

run

start

talk to

tell

use

give me

can you give me

 

Has anyone been successful in getting "Give Me"  to work?

 

I have tried numerous times (similar to intelihome's experience - post # 80) and cannot get Alexa to respond to "Give Me". Despite having deleted the "Tell Me" skill that I originally created and creating a new skill "Give Me", Alexa only responds correctly to "Alexa, tell me the inside temperature"!

 

Edit: corrected the post # reference

Link to comment
  • 8 months later...

This is really cool...I have it up and running but I have a question regarding getting the temperature into a variable via REST.  I can query the thermostat with the following from my browser:

 

     192.168.1.180/rest/nodes/E 68 52 1/ST

 

I get:

 

<properties>
<property id="ST" value="144" formatted="72.00" uom="degrees"/>
</properties>
 
But if I try to set my variable (which is a state variable, number 3) with:
 
  192.168.1.180/rest/vars/set/2/3/${sys.node.E 68 52 1.ST.RAW}
 
I get an error:
 
<RestResponse succeeded="false">
<status>404</status>
</RestResponse>
 
However, I can set the variable perfectly fine with say "70" like this:
 
 192.168.1.180/rest/vars/set/2/3/70
 
and the variable is set and I get:
 
<RestResponse succeeded="true">
<status>200</status>
</RestResponse>
 
So it appears to me that the sys.node variable that I using is not working.  I am not sure how to check it or test it?
 
 
Also, I tried setting a variable with the outside temperature from the climate module like so:
 
  192.168.1.180/rest/vars/set/2/3/${mod.weather.temp.current}
 
but it also fails.  I assume this is because the climate module is adding in the "F" so it fails to update the variable as it wont take strings, but I am not sure of that.
 
Any help would be greatly appreciated.  Setting up the Alexa went easy...then I got stuck on this for hours! 
 
 
 
Link to comment

Hi ulrick65 ,Why not use a program?With kind regards,Michel

I would love to Michel but I can't seem to figure out how to get the current temperature from the device in a program. From what I am reading I need version 5 or something like that...I am on 4.6.2 which as near as I can tell is the current release.

Link to comment

This is really cool...I have it up and running but I have a question regarding getting the temperature into a variable via REST. I can query the thermostat with the following from my browser:

 

192.168.1.180/rest/nodes/E 68 52 1/ST

 

I get:

<properties>

<property id="ST" value="144" formatted="72.00" uom="degrees"/>

</properties>

But if I try to set my variable (which is a state variable, number 3) with:

192.168.1.180/rest/vars/set/2/3/${sys.node.E 68 52 1.ST.RAW}

I get an error:

 

<RestResponse succeeded="false">

<status>404</status>

</RestResponse>

 

However, I can set the variable perfectly fine with say "70" like this:

 

192.168.1.180/rest/vars/set/2/3/70

 

and the variable is set and I get:

 

<RestResponse succeeded="true">

<status>200</status>

</RestResponse>

 

So it appears to me that the sys.node variable that I using is not working. I am not sure how to check it or test it?

 

 

Also, I tried setting a variable with the outside temperature from the climate module like so:

 

192.168.1.180/rest/vars/set/2/3/${mod.weather.temp.current}

 

but it also fails. I assume this is because the climate module is adding in the "F" so it fails to update the variable as it wont take strings, but I am not sure of that.

 

Any help would be greatly appreciated. Setting up the Alexa went easy...then I got stuck on this for hours!

 

 

Post a screenshot of your network rule (black out the Authorization header!). There are a couple of gotchas to check for.

 

To test substitutions, try it in an email notification and make sure it’s working there to substitute the correct value without anything non-numeric.

Link to comment

The substitution happens in the sending process, not the receiving process.

 

Chrome has no way of knowing your device states, so cannot substitute your variable. To do this, you will have to set this up as a network resource.

Link to comment

The substitution happens in the sending process, not the receiving process.

 

Chrome has no way of knowing your device states, so cannot substitute your variable. To do this, you will have to set this up as a network resource.

 

 

WOW!  I can't believe I spent all that time trying to get it to work in the browser and never figured that out!  You are awesome man...thanks for the tip.  Works like a champ now.

 

As a watchout to others, the writing of the variable takes a second.  I had a program that calls the REST command then immediately does some math against the variable...the variable would update with the REST command but the math was not performed...I figured out that it was actually doing the math before the REST command was done..and the rest command simply wrote over it.  Put a 3 second wait in after the Resource command in the program and it works perfectly.

 

Thanks very much, I appreciate the help.

Link to comment
  • 5 weeks later...

Is this post still the best method for Alexa to be able to read out variables from our ISY?  Basically, I'd like Alexa to be able to read out some values of variables.  I will give this method a shot, but wanted to know if a new option was available.  For example, can we create our own Alexa skill that can access items/variables directly via the ISY portal?

Link to comment
  • 5 months later...

Another update for those using this custom skill to get updates about their ISY devices.  Amazon has now blocked the invocation name "me" from use by custom skills.  So, I can no longer say "Alexa, tell me......" to get a response.  Alternative is to use some other made up word, such as "Bob".  Amazon requests we use 2 words for invocation name, but it appears one word still will work (for now).  So now I have to say:

"Alexa, ask Bob pool status" to get my response on how my pool is doing.  

 

Link to comment
8 hours ago, blueman2 said:

Another update for those using this custom skill to get updates about their ISY devices.  Amazon has now blocked the invocation name "me" from use by custom skills.  So, I can no longer say "Alexa, tell me......" to get a response.  Alternative is to use some other made up word, such as "Bob".  Amazon requests we use 2 words for invocation name, but it appears one word still will work (for now).  So now I have to say:

"Alexa, ask Bob pool status" to get my response on how my pool is doing.  

 

This was on my list as to what the heck is going on now. Now I know and will implement the new work around ~ Thanks Blueman!

Link to comment

Do I need to change anything else anywhere besides what's in this image capture? I tried ask Julie X but it doesn't work. I also tried Julie Status and that also didn't work is there a lead time for the change to take affect? :(

Julie.PNG

Link to comment

Archived

This topic is now archived and is closed to further replies.


×
×
  • Create New...