Amazon’s Alexa was the darling of CES, and it’s easy to see why. The Echo and Echo Dot devices that run Alexa are relatively inexpensive, and a tremendous number were sold over the Christmas holiday period—helped along, no doubt, by an aggressive marketing campaign and widespread markdowns. But, beyond being well marketed, Alexa has something else great going for it—it’s just fun to use in a way that Siri and Google Now haven’t quite captured, and seems to be appealing to all kinds and ages of people—from kids, to millennials, to makers and engineers.
Since CES, we have been getting inundated by current and hopeful manufacturers of IoT devices who are interested in adding Alexa control. For an industry filled with fashion-oblivious nerds, tech sure does know how to jump on a hot trend!
What follows is a quick rundown of some things to keep in mind if you’re planning Alexa control of your device. More detailed information is available on the documentation pages for the Alexa Skills Kit from Amazon.
To add control to any device into Alexa, you start by building what Amazon calls a skill—akin to an app on a mobile platform. Users then add skills to their own Alexa account via the Alexa Skills store.
By far the easiest way to integrate your device into Alexa is to tie into Amazon’s pre-defined smart home skill API. This approach only works for some relatively simple devices, however: switches, light bulbs, connected plugs, and thermostats, although this is not an exhaustive list. Using the Smart Home Skill API, there are only three parameters a user can control:
1) Setting whether a device is on or off (useful for a wide range of devices)
2) Setting a device’s percentage (designed for dimmable lights, but potentially useful for devices like humidifiers)
3) Setting what the target temperature is (useful for thermostats, heaters, and air conditioners)
On the development side, creating a smart home skill is pretty easy, because all that needs to be written is the glue logic that ties together the Alexa smart home skills API with your existing cloud. Usually, this is a pretty small amount of work.
However, creating a smart home skill for Alexa can be a bit of a double-edged sword for device vendors. On the positive side, it is relatively easy to create these skills, and users can quickly understand how to interact with Alexa to control your device, because it works exactly like other devices. On the negative side, it can be really hard to differentiate your device from your competition—exactly because all devices controlled by the smart home skill API behave identically.
If you want to color outside the relatively narrow lines offered by the smart home skill API, you will need to create what Amazon calls a custom skill. There is a little more work involved here because the developer must define what parameters are controllable; what the user can say to control these parameters (called the voice user interface); what Alexa might say back to the user when, for instance, the user doesn’t fully specify a command in one sentence; and finally, the glue logic that ties Alexa into your existing cloud. To build a high-quality custom skill, developers need to spend time defining rich vocabulary and command permutations so people can discover (or be guided into discovering) capabilities, can interact naturally with the service, and do not feel constrained by overly rigid syntax that is hard to remember and get right.
Creating a custom skill can be a bit harder to get right than extending the smart home skill API, but it also potentially allows a device vendor to differentiate from competitors by offering something unique.
Finally, it’s worth discussing briefly one thing Alexa can’t do—at least not yet. Alexa is like a well-behaved child: She only speaks when spoken to. There’s no way for Alexa to asynchronously alert the user to some condition. So, for instance, if you make a connected garage door opener, there’s no way (yet) for users to have Alexa tell them when the door is opening. There have been indications, though, that Amazon is working on providing notification capabilities to Alexa, and there are surely other features coming soon as well. All the buzz and interest in this service must be generating some interesting product development discussions at Amazon.