Device States

The different states that Alexa Connect Kit (ACK)-based devices can cycle through are: ready for setup, device connected, device in-use, device unregistered, and device disconnected.

ACK-based devices transition between these states in response to any user-initiated triggers you program or other relevant external changes, such as losing Wi-Fi connectivity. You should indicate these state changes through hardware or software changes, such as blinking on-device LEDs or by using buzzers to produce sound.

Ready for setup

Your device is in this ready for setup state when a user hasn't set it up yet, for example, when they first power on the device after unboxing it. A user can also activate this state on an existing device if they performed a factory reset. In this state, a device isn't connected to a Wi-Fi network or the internet, isn't registered with Alexa, and can't communicate with Alexa Built-in devices or the Alexa app. When your device is in ready for setup mode, the user must activate one of your setup triggers to register it with Alexa.

If you're already developing your device, this state is reported as ACK_LIFECYCLE_IN_SETUP_MODE by the ACK Device SDK.

When you design your ready for setup experience, make sure you understand the differences between the Amazon Frustration-Free Setup (FFS) setup modes, including Zero-Touch Setup (ZTS), Barcode Setup (BCS), and User-Guided Setup (UGS). After you understand how these processes work, consider the following questions:

How do users know they're in setup mode?

It must be clear to users how they can enter setup mode on your device. For example, you must display your UGS instructions in the Alexa app.

After the device enters setup mode, it should clearly indicate the state to users, such as by repeatedly blinking a red LED or by playing a unique sound or tone.

Pop-up prompt of device auto-discovery during guided setup

Where do you place your setup barcodes?

You must place your setup barcodes in an easily accessible area. Otherwise users might have trouble finishing the setup process. For example, you might place the inner barcode on the back of your device or in your quick-start guide. To help identify this barcode, you can also add an FFS icon to your label.

To enable ZTS, your device packaging must include the outer barcode. If you have multiple devices in the same packaging, you should accommodate that appropriately. For more details about barcode placement, see Multi Device Pack DHA Enabled Devices.

How do users enter UGS?

It must be clear to users how they can active UGS on your devices. The ACK uses UGS as a fallback registration method if ZTS and BCS fail. For example, you display these instructions in the Alexa app and can also include them in your quick-start guide or support webpage. Some examples of how users activate UGS include holding your device's power button down for 15 seconds or toggling your device on and off three times.

After users trigger UGS, you should provide a success indicator, such as a blinking LED light or an on-device buzzer.

Device unregistered

Your device enters this state if it fails to complete a previously initiated setup mode, or the setup process times out. In this state, your device still has limited functionality because it's not connected to Alexa. To restart the setup process, users might have to power off and on the device or trigger UGS. Indicate to your users that your device is in this state in an unobtrusive way. For example, by using an LED that slowly blinks for a long time.

If you're already developing your device, this state is reported as ACK_LIFECYCLE_NOT_REGISTERED by the ACK Device SDK.

Device connected

Your device enters this state after users register the device with the Alexa app. In this state, your device is fully functional, connected to Alexa services, and users can interact with Alexa Built-in devices or the Alexa app.

You should indicate to your users that your device is in this state. For example, by displaying a solid green LED somewhere on your device. It's also important to consider that your device might switch back and forth between this state and the device-disconnected state.

If you're already developing your device, this state is reported as ACK_LIFECYCLE_CONNECTED_TO_ALEXA by the ACK Device SDK.

Device disconnected

Your device enters this state if it was previously registered and connected to Alexa, but lost its connection somehow. For example, due to Wi-Fi or other connectivity issues. In this state, your device is still registered as a product, but has limited functionality because it's not connected to Alexa. You should indicate to your users that your device lost connectivity. For example, by rapidly blinking a series of LEDs.

Your device leaves this state when users fix the connection problem and reconnect to Alexa services. If the problem persists even after troubleshooting, users might have to factory reset the device. Doing so transitions the device back to the ready for setup state.

If your device includes the Wi-Fi Simple Reconnect (WSR) feature, your on-device application might receive additional information about the connection status. For example, the application might indicate that the device is trying to use the incorrect Wi-Fi password. Your device might also start the WSR distress beaconing process to try to reconnect the Wi-Fi network.

If you're already developing your device, this state is reported as ACK_LIFECYCLE_NOT_CONNECTED_TO_ALEXA by the ACK Device SDK.

Device in-use

Your HMCU application should indicate to the ACK Device SDK when it's in the in-use state. Some examples of this state include when a microwave is cooking food, when a fan is actively running, or when a lighting device turns on.

Consider the following tips for handling the in-use state:

  • When your device is in use, it should postpone any actions that might disrupt the overall device operation, such as an over-the-air (OTA) update.
  • Smart plugs and similar products are in the on state for most of their device lifetime. If you report that a smart plug is in-use while the device is on, it might not receive OTA updates.
    • You can also design your device to retain its state between host microcontroller unit (HCMU) reboots. For example, a lighting device can retain its brightness and color after HMCU restart or a smart plug can retain its power supply load between reboots. This approach helps minimize the impact of the OTA update process on users

For more details about managing the in-use state, see the ACK Device SDK documentation bundled with the SDK Download.

Example: Device states for a fan

The following example provides a mock template to define the device states of a fan.

Device state Description Indication of state SDK Implementation

Ready for setup

Device is in setup mode

LED blinks at 3 Hz to indicate setup mode

ACK_LIFECYCLE_IN_SETUP_MODE

Device unregistered

Device isn't registered with Alexa

None

ACK_LIFECYCLE_NOT_REGISTERED

Device connected

Device is registered and connected to Alexa services

LED is a solid green color

ACK_LIFECYCLE_CONNECTED_TO_ALEXA

Device disconnected

Device is registered but not connected to Alexa services. For example, due to a poor Wi-Fi connection

LED blinks at 1 Hz to indicate that there is a loss of connection

ACK_LIFECYCLE_NOT_CONNECTED_TO_ALEXA