Smart Home Skill Device Templates


You can connect virtually any type of device to Alexa by using the Smart Home API. You describe your device endpoints and capabilities by using the standard discovery mechanism described in About Alexa Discovery. In your discovery response, you identify the smart home interfaces that each device supports.

To help you get started, review the device templates to find the ones that match your device type. Each template recommends a set of smart home interfaces to implement for the device type. You can modify these recommendations by adding or removing interfaces to suit the needs of your specific device. Every template includes the required top-level Alexa interface and recommends that you implement the Alexa.EndpointHealth interface to report the health of your device to Alexa. Also, each template recommends a display category. The display category determines the icon and placement of your device in the Alexa app.

For details about Smart Home skills, see Understand the Smart Home Skill API.

Blinds

In addition to the pre-built voice-interaction model, you can use semantics to enable additional utterances. The blinds in this example use semantics with a mode controller so the user can say "open", "close", "raise", and "lower" to control the blinds. For details, see the semantics object.

The user can interact with the blinds in this example by using utterances, such as the following.

Alexa, open the blinds.
Alexa, close the blinds.
Alexa, raise the blinds.
Alexa, lower the blinds.

In your Alexa skill, Amazon recommends that you use INTERIOR_BLIND as the display category.

If your blinds can raise and lower to a range of positions, Amazon recommends that you implement the following interfaces. For an example discovery response, see example with semantics for blinds.

Interface Purpose
RangeController Create a range controller named Blind.Lift so the user can control height of the blinds.
EndpointHealth Report the connectivity status of the device to Alexa.
Alexa The base interface for all Alexa skills.

If your blinds only fully open and fully close, Amazon recommends that you implement the following interfaces. For an example discovery response, see example with semantics for blinds.

Interface Purpose
ModeController Create a mode controller named Blinds.Position, with modes named Position.Up and Position.Down so the user can open and close the blinds.
EndpointHealth Report the connectivity status of the device to Alexa.
Alexa The base interface for all Alexa skills.

Camera

The user can interact with a camera by using utterances, such as the following.

Alexa, talk to my front door camera.
Alexa, show the last activity at my front door.

In your Alexa skill, Amazon recommends that you use CAMERA as the display category and implement the following interfaces. For an example discovery response that includes support for these interfaces, see discovery response example for a camera that supports pan, tilt, and zoom.

Interface Purpose
RTCSessionController The user can communicate remotely with the camera.
RangeController "Camera.Pan" If the camera can physically pan left and right, create a range controller named Camera.Pan so the user can pan the camera view.
RangeController "Camera.Tilt" If the camera can physically tilt up and down, create a range controller named Camera.Tilt so the user can tilt the camera view.
RangeController "Camera.Zoom" If the camera can physically zoom in and out, create a range controller named Camera.Zoom so the user can zoom the camera view.
EndpointHealth Report the connectivity status of the device to Alexa.
Alexa The base interface for all Alexa skills.

Color-changing light bulb

The user can interact with a color-changing light bulb by using utterances, such as the following.

Alexa, turn on the Living Room Light.
Alexa, set the Living Room Light to blue.
Alexa, set the Living Room Light to fifty percent.
Alexa, make the Living Room Light warm white.

In your Alexa skill, Amazon recommends that you use LIGHT as the display category and implement the following interfaces.

Interface Purpose
PowerController The user can turn the device on and off.
ColorController The user can control the color of the light.
BrightnessController The user can control the brightness of the light.
ColorTemperatureController The user can control the color temperature of the light.
EndpointHealth Report the connectivity status of the device to Alexa.
Alexa The base interface for all Alexa skills.

Dimmable light bulb

The user can interact with a light bulb that can be dimmed by using utterances, such as the following.

Alexa, turn on the Kitchen Light.
Alexa, set the Kitchen Light to eighty percent.

In your Alexa skill, Amazon recommends that you use LIGHT as the display category and implement the following interfaces.

Interface Purpose
PowerController The user can turn the device on and off.
BrightnessController The user can control the brightness of the light.
EndpointHealth Report the connectivity status of the device to Alexa.
Alexa The base interface for all Alexa skills.

Dimmer switch

The user can interact with a dimmer switch by using utterances, such as the following.

Alexa, turn on the Bedroom Light.
Alexa, set the Bedroom Light to twenty percent.

In your Alexa skill, Amazon recommends that you use SWITCH as the display category and implement the following interfaces.

Interface Purpose
PowerController The user can turn the device on and off.
BrightnessController The user can control the brightness of the light.
EndpointHealth Report the connectivity status of the device to Alexa.
Alexa The base interface for all Alexa skills.

Entertainment device

The user can interact with an entertainment device, such as a television, streaming device, or game console, by using utterances, such as the following.

Alexa, turn on the Living Room TV.
Alexa, change the input to HDMI three on the Living Room TV.
Alexa, change channel to twelve on the Living Room TV.
Alexa, set the volume of the Living Room TV to twenty-five.
Alexa, pause the Living Room TV.

In your Alexa skill, use TV, STREAMING_DEVICE, GAME_CONSOLE, SPEAKER, or other appropriate display category. Amazon recommends that you implement the following interfaces. For an example discovery response that includes support for these interfaces, see discovery response example for an entertainment device.

Interface Purpose
PowerController The user can turn the device on and off.
InputController The user can change the input of the device.
ChannelController The user can change the channel of the device.
Speaker The user can set, adjust, mute, and unmute the volume of the device.
PlaybackController The user can play, stop, and pause the device.
EndpointHealth Report the connectivity status of the device to Alexa.
Alexa The base interface for all Alexa skills.

Garage door opener

In addition to the pre-built voice-interaction model, you can use semantics to enable additional utterances. The garage door in this example uses semantics with a mode controller so the user can say "open" and "close" to control the garage door. For details, see Use semantics to enable additional utterances.

The user can interact with the garage door opener in this example by using utterances, such as the following.

Alexa, open the garage door.
Alexa, close the garage door.

Amazon recommends that you implement the following interfaces for a garage door opener. You must use both the ModeController interface and the GARAGE_DOOR display category in your Alexa skill. For an example discovery response, see example with semantics for a garage door opener.

Interface Purpose
ModeController Create a mode controller named GarageDoor.Position, with modes named Position.Up and Position.Down so the user can open and close the garage door.
EndpointHealth Report the connectivity status of the device to Alexa.
Alexa The base interface for all Alexa skills.

Guitar amplifier

The following shows how to connect a smart guitar amplifier to Alexa. The device in this example is fictional, but provides an example for how to connect any device to Alexa. As with other devices, this example chooses the most specific interfaces, such as PowerController, Speaker, and EqualizerController whenever possible. This example then leverages the flexibility of the ToggleController, RangeController, and ModeController interfaces to cover of all its functions.

The user can interact with the guitar amp in this example by using utterances, such as the following.

Alexa, turn on the Awesome Amp.
Alexa, set the volume of the Awesome Amp to six.
Alexa, set the bass on the Awesome Amp to three.
Alexa, turn on overdrive on the Awesome Amp.
Alexa, set the gain on the Awesome amp to four.
Alexa, set the Awesome Amp to Metal.
Alexa, boost the gain.
Alexa, make me sound like Pearl Jam.
Alexa, what do all these dials do?

In your Alexa skill, Amazon recommends that you use SPEAKER as the display category and implement the following interfaces. For an example discovery response that includes support for these interfaces, see discovery response example for a guitar amp.

Interface Purpose
PowerController The user can turn the device on and off.
Speaker The user can set, adjust, mute, and unmute the volume of the device.
EqualizerController The user can set and adjust the bass, mid, and treble of the device.
ToggleController Create a toggle controller named Overdrive so the user can turn the overdrive feature of the amplifier on and off.
RangeController Create a range controller named Gain so the user can control the gain (also called drive) of the amplifier.
ModeController Create a mode controller named Preset so the user can select pre-defined or user-saved settings.
EndpointHealth Report the connectivity status of the device to Alexa.
Alexa The base interface for all Alexa skills.

Lock

The user can interact with a lock by using utterances, such as the following.

Alexa, lock the Front Door.

In your Alexa skill, Amazon recommends that you use SMARTLOCK or DOOR as the display category and implement the following interfaces.

Interface Purpose
LockController The user can lock and unlock the device.
EndpointHealth Report the connectivity status of the device to Alexa.
Alexa The base interface for all Alexa skills.

Plug

The user can interact with a plug by using utterances, such as the following.

Alexa, turn on the End Table Lamp.

In your Alexa skill, Amazon recommends that you use SMARTPLUG as the display category and implement the following interfaces.

Interface Purpose
PowerController The user can turn the device on and off.
EndpointHealth Report the connectivity status of the device to Alexa.
Alexa The base interface for all Alexa skills.

Remotes and buttons

The user interacts with a smart button or remote switch manually to trigger a routine, such as dim the light 25 percent and close the blinds. There are no user utterances for these types of devices.

In your Alexa skill, Amazon recommends that you use REMOTE as the display category and implement the following interfaces.

Interfaces Purpose

Alexa.SimpleEventSource

Model stateless events, such as a button press on a remote or an occupant entering a room. Users can connect the events to Alexa Routines.

Alexa.EndpointHealth

Report the connectivity status of the device to Alexa.

Alexa

The base interface for all Alexa skills.

Switch

The user can interact with a switch by using utterances, such as the following.

Alexa, turn on the Bathroom Fan.

In your Alexa skill, Amazon recommends that you use SWITCH as the display category and implement the following interfaces.

Interface Purpose
PowerController The user can turn the device on and off.
EndpointHealth Report the connectivity status of the device to Alexa.
Alexa The base interface for all Alexa skills.

Tower fan

The user can interact with the tower fan in this example by using utterances, such as the following.

Alexa, turn on the Living Room Fan.
Alexa, turn on Oscillate on the Living Room Fan.
Alexa, set the Living Room Fan Speed to five.
Alexa, turn up the Speed on the Living Room Fan.
Alexa, set the air Speed on the Living Room Fan to Maximum.

In your Alexa skill, Amazon recommends that you use FAN as the display category and implement the following interfaces. For an example discovery response for a fan that supports oscillation and speed, see example with both range and toggle controllers.

Interface Purpose
PowerController The user can turn the device on and off.
ToggleController "Oscillate" Create a toggle controller named Oscillate so the user can turn the oscillate feature of the fan on and off.
RangeController "Fan Speed" Create a range controller named Fan Speed so the user can control the speed of the fan.
EndpointHealth Report the connectivity status of the device to Alexa.
Alexa The base interface for all Alexa skills.

Wall thermostat

The user can interact with a wall thermostat by using utterances, such as the following.

Alexa, set thermostat to 20.
Alexa, make it warmer in here.

In your Alexa skill, Amazon recommends that you use THERMOSTAT as the display category and implement the following interfaces.

Interface Purpose
ThermostatController The user can control a device that controls temperature.
TemperatureSensor The device senses and reports temperature.
ThermostatController.Schedule The user can set a weekly schedule.
ThermostatController.Configuration The thermostat device supports installation and setup in the Alexa app.
EndpointHealth Report the connectivity status of the device to Alexa.
Alexa The base interface for all Alexa skills.

Water heater

You can model a water heater as described following. In this example you use a ToggleController to support Alexa hunches. For details about hunches, see What Are Alexa Hunches? and Enable Alexa to Proactively Act on Hunches Without Customers Needing to Ask.

This example also uses DeviceUsage.Meter to help users manage their energy usage with the Alexa energy dashboard. For details, see Smart Home Energy Overview.

In your Alexa skill, Amazon recommends that you use WATER_HEATER as the display category. Implement the interfaces in the following table that correspond to the behavior of your device. For an example discovery response that includes support for these interfaces, see discovery response example for a water heater.

Interface Purpose
ThermostatController The user can set one or more target temperatures for the water in the water heater.
TemperatureSensor The device senses and reports the temperature of the water in the water heater.
ToggleController "EnergySaverMode" Create a toggle controller named EnergySaverMode to control the energy saver mode of the water heater.
DeviceUsage.Meter The user can view an estimate of the energy usage of the water heater.
PowerController The user can turn the water heater on and off.
EndpointHealth Report the connectivity status of the water heater to Alexa.
Alexa The base interface for all Alexa skills.

Wi-Fi router

You can model a Wi-Fi router as described following. You can also use the Alexa.Networking APIs if they better suit the needs of your specific device. For details, see Understand Networking and Wi-Fi Skills.

The user can interact with a Wi-Fi router by using utterances, such as the following.

Alexa, turn on Guest Wi-Fi on the Wireless Router.
Alexa, turn on Guest Wi-Fi.
Alexa, set the Traffic Priority on the Guest Wi-Fi to Video Games.
Alexa, set the Guest Wi-Fi to Movies.

In your Alexa skill, Amazon recommends that you use OTHER as the display category and implement the following interfaces. For an example discovery response that includes support for these interfaces, see discovery response example for a Wi-Fi router.

Interface Purpose
ToggleController Create a toggle controller named Guest Network so the user can turn the router on and off.
ModeController Create a mode controller named Traffic Priority so the user can select which type of traffic the router assigns the highest priority.
EndpointHealth Report the connectivity status of the device to Alexa.
Alexa The base interface for all Alexa skills.

Window air conditioner (AC) unit

The user can interact with an air conditioner by using utterances, such as the following.

Alexa, set the AC to twenty-five degrees for four hours.
Alexa, make it cooler in here.

In your Alexa skill, Amazon recommends that you use THERMOSTAT as the display category and implement the following interfaces. If your air conditioner has a fan setting that blows cold air at different speeds, you can also implement the RangeController interface. For an example discovery response, see discover response example for an air conditioner.

Interface Purpose
PowerController The user can turn the device on and off.
ThermostatController The user can control a device that controls temperature.
TemperatureSensor The device senses and reports temperature.
EndpointHealth Report the connectivity status of the device to Alexa.
Alexa The base interface for all Alexa skills.

Last updated: Jan 26, 2023