Charmed Quark Systems, Ltd. - Support Forums and Community

Full Version: New Amazon Echo Support
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Oy vey! I ended up with two Offs in the list instead of an Off and an On. Sorry. I'll get a fixed up version posted tonight.
I updated the first post. I didn't bother to change the version since it was a trivial change. But give it a try now.
That fixed it - Thanks!
A few more comments, but nothing big - just some thoughts going forward. I am happy with what you have provided, but here are my thoughts:

1. The "Load Echo Configuration" should say "Load Echo File" and a button on the AI would be nice to do that versus having to load it through the Echo.
2. When loading the configuration file, I find that it doesn't always load completely all the way (i.e. I had changed the name of a global query from SBFAMILY to just FAMILY, and after loading the new configuration it picked up the old name until I reloaded it again.) Being able to look at what it loaded in the AI would be nice to see if we made any mistakes.
3. I found that two words really made it hard for Echo to interpret. And when it does, CQC has issues with it and gives a CQC error that it couldn't interpret it. This worked better in earlier beta versions - i.e. I had "Family Music" and "Outside Music" in my list, and it used to pick that up, but now it doesn't. I decided it was easier to say "Family" and "Outside", so no big deal and not sure if anything can be changed on the CQC side. Maybe it is related to adding the Up and Down commands.
4. I get an error message on and off about it not being able to read the echomsg response. Sometimes it works fine, and sometimes I get the error message that it couldn't read the message. I was wondering that maybe it was caused by the command not completing (i.e. a fieldwrite) before it tried to read the echomsg text.
5. I found several instances where the command went to echo and back to CQC, but it said there was an error processing it. Typically, this was when I was saying ESPN, and it interpreted "e.s.p.n.". The utterance was in the echocfg.txt file, but it didn't pick it up.

Overall a great product - I can sit in my family area and turn on/off TV, change channels, turn on/off music, adjust the volumes, check temperatures in and outside the house, set/cancel the alarm, adjust the thermostat, and not do anything at the keypad. I plan on adding the ability to turn on the spa and spa heat, adding other music zones and additional TV channels, sprinkler control, and light control at night. I am sure I will think of a lot more, but that is what is on my list.

Below is my echocfg.txt file - let me know if you see anything wrong with it.

Thanks again Dean! Great Job

Code:
EchoConfig
    MyKey=XXX
EndEchoConfig

RunMap
    Action=\User\Run\Run
    EndAction
EndRunMap

SetMap
    Action=\User\Set\DirectTV
        DirectTV,direct tv,tv,t.v.
    EndAction
    Action=\User\Set\Alarm
        ArmAway,Arm,Arm Away
        Disarm
        Alarm,my alarm
    EndAction
    Action=\User\Set\Music
        Family,Family Music
        Outside,Patio,Outdoor,Patio Music,Outside Music,Outdoor Music
    EndAction
    Action=\User\Set\SetTemps
        Temperatures
    EndAction
    Action=\User\Set\Channel
        ESPN,e.s.p.n.,i s.p.n.,i.s.p.m.,i spm,i spm,two oh six
        FoxNews,Fox News,three six oh,three sixty, channel three sixty
        Root,Root Sports,route sports,my route sports,six seventy four,six seven four
        SEC,SEC Network,s.e.c.,s.e.c.network,scc,s.c.c.,s.c.c.network,a c.c. network,a cc network,six one one,six eleven,channel six eleven
        NBC,n.b.c.,m.b.c.,in bc,in b.c., in dc,to,channel to, two, channel two
        ABC,a.b.c.,a bc,ab c,a b c,a cc,a b.c.,thirteen,channel thirteen
        CBS,c.b.s.,cbs,c.v.s.,eleven,channel eleven
        FOX26,fox,fox 26,twenty six, channel twenty six
        NFL,N.F.L. network,nfl network,nfl,n.f.l.,in.f.l.network,in fl network,an f.l.network,two one two,channel two one two,to twelve,channel to twelve
        GOLF,golf network,golf,two one eight,two eighteen,channel two eighteen
    EndAction
EndSetMap

QueryMap
    Action=\User\Query\Temperature
        Downstairs,Downstairs Temp,Downstairs,Downstairs Temperature
        Upstairs,Upstairs Temp,Upstairs Temperature
        Master,Master Temperature,Master Bedroom Temperature,Office Temperature
        Outside,Outside Temperature
        All,All Temperatures,All the Temperatures,all temperature,temperature,all the temps,all the temperature
    EndAction
EndQueryMap
On #2, I'm pretty sure it loads all the way or you should get an error msg back. If you still had the old stuff, I would think it just didn't load it at all. It definitely wouldn't keep half of the old and take half of the new. It removes all of the data and loads it again, so it can't keep any of the old stuff around. It either has to get all of the new file or it will end up with nothing. So I'm not sure what you are seeing there.

You do need to complete the action in some reasonable time. The echo will only wait so long for it to finish, then it will give up. We could just send the response as soon as we get the request and then run the action, but we wouldn't be able to support queries if we did that. We have to run the action to get the value to return back to you.

On #5, you actually see it log that it received e.s.p.n? And you got a spoken error message back? What did it say exactly? Anything else show up in the logs?
You know, one thing that would make this guy more useful is if you could configure a 'location name' for each Echo, and for that to be sent through to the ultimate handler. You could then get rid of specifics like 'living room lights' and just say 'lights' and your handler would know the request came from the one if the living room.
Dean Roddey Wrote:You know, one thing that would make this guy more useful is if you could configure a 'location name' for each Echo, and for that to be sent through to the ultimate handler. You could then get rid of specifics like 'living room lights' and just say 'lights' and your handler would know the request came from the one if the living room.

It would be more useful.
Couple of issues trying to set this up for HTTPS/SSL.

First, the javascript file does not send SSL data as it is above, it is only using HTTP even if you set your variable for the URL to HTTPS. Apparently you have use the NodeJS https object.

Code:
Change:
var http = require('http');
var req = http.request(options, function(res)

To:
var https = require('https');
var req = https.request(options, function(res)

Second, I can't get it to get past the SSL handshake. It looks like the CQC web server aborts the SSL right after Amazon sends their client key with an SSL Encrypted Alert 21 - Encryption Failed.
I see the following:
Code:
Amazon --> Client Key, Change Cipher Spec --> CQC
Amazon <-- Change Cipher Spec <-- CQC
Amazon <-- Encrypted Data <-- CQC
Amazon <-- Encrypted Alert 21 <-- CQC
It doesn't currently support reverse certificate checking, if that's what's going on. It only sends its certificate to the client to validate it's connecting to the right server. It won't accept one from the client.

Are they really using SSL? We will only accept TLS 1.0 or higher.
Yep I took a sniffer trace, it is showing TLS1.1. Before changing the object in the JS file it was in the clear.