In September, we announced the updated Smart Home Skill API (Preview), which included several changes that enable you to integrate any feature of any device with Alexa. Today, we are happy to announce that some of these changes - the new Mode, Range, and Toggle capability interfaces - are now generally available in the US. You can configure these capability interfaces to model many different features, though they are particularly well-suited to device settings and modes such as fan speed, oscillation, auto mode, and many others.
Mode controllers set one value from a group of settings that are ordered (Low, Medium, High) or unordered (Auto, Heavy, Normal, Turbo). This allows commands like "Alexa, set the dishwasher to auto" or "Alexa, set the wash cycle to cottons." If the controller is ordered, your customers can say things like "Alexa, increase the fan speed" where a fan endpoint defines an ordered Alexa.ModeController called speed that supports values of Low, Medium, and High.
Range controllers enable interaction with a numeric range. This allows setting a numeric value like "Alexa, set the living room fan speed to 5." Ranges also support custom, named presets like "Alexa, set the fan speed on the living room fan to maximum" where the value of maximum maps to a value of 10 in the range. You can use a Range controller to report the state of a range like "Alexa, what is the speed of the living room fan?" and configure each instance by defining a minimum, maximum, precision, and unit of measure like gallons, meters, pounds, liters, and more. This allows for very specialized commands like "Alexa, set the blinds angle to 45 degrees" where the unit of measure is Alexa.Unit.Angle.Degrees with a supported range of 30-60 in precision increments of 5.
Toggle controllers turn features on or off. They support commands like "Alexa, turn off oscillate on the fan" or "Alexa, turn on overdrive on the guitar amp."
You can use multiple instances of each controller interface on a single endpoint, which gives you extra flexibility in the way you model your device to Alexa. You give each instance a friendly name such as “zone 1” or “zone 2” for two toggles on a sprinkler system. You can also provide additional friendly names, so your customers have the flexibility to use any names that make sense. For example, the Alexa.ToggleController for “zone 1” of the sprinkler system might have alternate names of “zone A,” “backyard,” or “roses.” By providing multiple names, customers can use utterance variations like "turn off sprinkler zone 1," or "turn off the roses sprinkler." For more details, see the resources and assets documentation.
While these new capabilities allow you to customize many of the supported utterances for your devices, they don't give you full flexibility to define any custom utterance. If you want to provide custom utterances like “water the lawn,” “brew the coffee,” or “wash my clothes,” you can create a custom model to provide these utterances. However, in order to use both custom and smart home models in a single skill, you will need to sign up for the updated Smart Home Skill API Preview. For a deeper look at the technical details and to apply to the preview, please see Understanding the Updated Smart Home Skill API (Preview).
If you currently have a smart home skill, or are just getting started with Alexa Smart Home, you can now incorporate the new interfaces as part of your discovery message.
If you currently have a custom skill and are thinking about making the switch to a smart home skill to take advantage of these new APIs, we recommend you don't create an additional smart home skill that your customers would need to enable separately. Instead, please apply for the Smart Home Skill API (Preview) in order to support smart home utterances and custom utterances in a single skill. If you already have both a custom skill and a smart home skill today, apply for the Smart Home Skill API (Preview) in order to combine them into a single skill.
A few device makers participating in the Smart Home Skill API (Preview) are already using these new APIs to add new functionality to their existing skills. Kenmore is using the new ModeController to give their customers a set of additional wash cycle presets that are voice exclusive to Alexa. Netgear is using ToggleControllers for guest Wi-Fi. Moen is using all three new APIs to add fully native voice and routines support for their smart showers. Michael Poloha, Group Manager Digital & IoT, Moen Incorporated shared, "The new Amazon Smart Home APIs have allowed us to add new functionality to the U by Moen shower. These new APIs give consumers the ability to integrate their shower into groups and routines to create an even better showering experience, all while using natural voice commands to activate and control their shower."
To learn more about these new capabilites, check out our AWS re:Invent session: Connect Any Device to Alexa & Control Any Feature:
We can't wait to see what you build.