Jump to content

How To Guide: Getting Alexa to provide verbal responses


blueman2

Recommended Posts

Posted

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 . . .

Posted

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.

Posted (edited)

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 .

Edited by n8huntsman
Posted

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.

Posted

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.

Posted

"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?

Posted

It would just be a static response. Alexa, tell me who is awesome. She should reply, " you are". No program, no variable. Run the resources once, and she should always respond that way, no?

Maybe she doesn't like 74.5. Try 74.

Posted

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.

Posted

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!!

Posted (edited)

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

Edited by GMD99
  • 8 months later...
Posted (edited)

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! 
 
 
 
Edited by ulrick65
Posted

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.

Posted

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.

Posted

I dont have a network rule created...I am just using Chrome Browser at the moment trying to get it to work from there first.

Posted

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.

  • Like 1
Posted

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.

  • Like 1
  • 5 weeks later...
Posted

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?

  • 5 months later...
Posted (edited)

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.  

 

Edited by blueman2
Posted
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!

  • Thanks 1
Posted (edited)

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

Edited by Teken

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.
  • Who's Online (See full list)

    • There are no registered users currently online
  • Forum Statistics

    • Total Topics
      37.1k
    • Total Posts
      371.5k
×
×
  • Create New...