Before we jump into it, let’s talk about the difference between Alexa Skills and Connected Home devices. Basically, skills have names and are services provided by third parties, so you could say something like “Alexa, ask for a fart” or “Alexa, ask horoscope what is the horoscope for Gemini?”. The skills like “for a fart” or “horoscope” vary in usefulness, of course, and the skills store in the Alexa App is a bit of a mess if you don’t know what you’re looking for (most notably, there are no categories to browse – just one long list with a search function). Nonetheless, it’s easy enough to find the one for the ISY with a search:
Connected Home devices are a bit more of a special tier where you don’t have to actually use an “invocation name”; you just say something like “Alexa, turn on the kitchen light.” Vendors like Phillips Hue and Samsung Smart Things are included in the list of devices that fall in this category. Sadly, Amazon’s link for Insteon devices only lists the Insteon Hub and not the ISY – but the ISY is also supported and exposes “connected home devices”.
The ISY provides both a skill and exposure of Connected Home devices, which covers all the bases. For example, Amazon’s Connected Devices integration has some limitations – for example, you can ask it to turn lights on or off, but can’t ask it to natively control the thermostat). But the skill provided for the ISY (the “invocation name” is pronounced “izzy”) has a larger vocabulary (called “utterances“) allowing a bit more flexibility. The instructions to set all this up are here, but in general you’ll need a few things:
- Updated firmware – at least 4.3.26 (use: “Help | Automatically Upgrade ISY” in the ISY interface)
- A subscription to the ISY Portal. This is required to bridge the communication between Amazon services and your ISY. Use “Help:Purchase Modules” in your ISY interface to sign up; at $50 for 2 years it’s a bargain!
- Link your my.isy profile to your Amazon account, and link the Echo app back to allow communication between your Amazon Echo and ISY994i.
- Identify specific devices, scenes and programs with spoken words.
You can do this through the ISY interface for devices by right-clicking a device, selecting “Notes”, and adding text to the field for “Spoken” – but(update 2/11/2016: it’s no longer possible to define spoken scenes through the ISY interface; it must now be done through the ISY portal) I’ve found it much easier to do this mapping through the ISY portal. The portal supports scenes and programs as well, whereas the UI only allows devices to be mapped:
- Once you’ve finished assigning spoken words to devices/scenes/programs (in fact, every time you change this list), you’ll use the Alexa app to “discover devices”
- When that’s all done, you’re good to go, and can start interacting using either a skill (“Alexa, ask izzy…”) or device (“Alexa, turn on…”):
Note in the above video:
- We start with using an Amazon Skill (“Alexa, Ask izzy to turn on the kitchen lights”)
- We then show that the skill is still being fine-tuned – controlling the thermostat through the skill is still a little rough.
- Next, we use the Amazon Connected Home feature to turn off the lights without needing the invocation word “izzy” (“Alexa, turn off the kitchen lights”). Notice how the response is different for the Connected Home control (Alexa just responds with “OK” rather than a full voice response) – not a big deal, but presumably that’s because the API is more restrictive for these devices so that the user experience is the same across all devices (i.e., Hue, ISY, etc.).
- Last, while controlling thermostats isn’t directly possible yet via Connected Home, we can actually run programs through it, so I’m able to set the thermostat using somewhat natural language (“Alexa, turn on cool downstairs”). The code to run these programs is pretty simple:
If - No Conditions Then Set 'Thermostat/Downstairs' Setpoint Down 1° Else - No Actions
If - No Conditions Then Set 'Thermostat/Downstairs' Setpoint Up 1° Else - No Actions
The astute reader will notice that, through the program mapping to the text “cool downstairs” and “warm downstairs” I can say things like “Alexa, turn on cool downstairs” and “Alexa, turn on warm downstairs” to tick the thermostat up and down. These phrases will just run the “Then” clause of the program – but if you say “Alexa, turn OFF…”, the “Else” clause is executed. Which means we could consolidate the above two programs into one like this:
If - No Conditions Then Set 'Thermostat/Downstairs' Setpoint Up 1° Else Set 'Thermostat/Downstairs' Setpoint Down 1°
The result of this program will be the thermostat goes up if you say “Alexa, turn on downstairs thermostat”, and goes down if you say “Alexa, turn off downstairs thermostat”. Yes, the grammar is a bit funny for now, but this will no doubt get better over time!