Alexa Devices
The Alexa Devices integrationIntegrations connect and integrate Home Assistant with your devices, services, and more. [Learn more] lets you control Alexa-enabled devices connected to your Amazon account.
The integration provides information on connected devices and enables control of the main features.
Supported devices
There is support for the following device families within Home Assistant:
-
Amazon Echo Auto
-
Amazon Echo Dot
-
Amazon Echo Flex
-
Amazon Echo Plus
-
Amazon Echo Show
-
Amazon Fire TV Stick
-
Amazon Fire Tablet
-
Third-party devices with built-in Alexa capabilities.
This integration requires multifactor authentication using an authentication app (such as Microsoft Authenticator, for example). To enable MFA, in your Amazon account settings select Login & Security > 2-step verification > Backup methods > Add new app. See Amazon’s documentation
Configuration
To add the Alexa Devices hub to your Home Assistant instance, use this My button:
Manual configuration steps
If the above My button doesn’t work, you can also perform the following steps manually:
-
Browse to your Home Assistant instance.
-
In the bottom right corner, select the
Add Integration button. -
From the list, select Alexa Devices.
-
Follow the instructions on screen to complete the setup.
When trying to set up the integration, the form may show the message “Cannot connect”. This means that the specified country may need a special setting. Open a issue with all details to investigate
Actions
Available Actions
Available actions: notify.send_message
, alexa_devices.send_sound
, alexa_devices.send_text_command
Action notify.send_message
Devices with appropriate functionality will have speak and announce notify entities created. These can be used as the target for the notify.send_message
action.
Data attribute | Optional | Description |
---|---|---|
message |
no | Text to be output (see below for advanced markup) |
When sending notifications to multiple devices, you may experience delays due to rate limiting by Amazon. You can avoid this by sending notifications to speaker groups created in Alexa.
Advanced Message Markup
Amazon provide markup to control not only what is said but how it is said and to add additional option such as pausing and playing certain audio clips. Details of this are covered in Amazon’s documentation<speak>
and </speak>
elements into the message
parameter of the action).
Audio files must meet certain criteria on size, bit and sample rates and must be served over HTTPS (see documentation
Amazon provide a set of sounds you can use
Action alexa_devices.send_text_command
This action essentially allows you to control Alexa using text commands rather than speech. You should be able to request anything you would via speech using this action.
Data attribute | Optional | Description |
---|---|---|
device_id |
no | Device on which you want to run action |
text_command |
no | Command to send |
Action alexa_devices.send_sound
This action allows you to play one of the built-in Alexa sounds. The full list of sounds is available in Amazon’s documentation (needs authentication)
Data attribute | Optional | Description |
---|---|---|
device_id |
no | Device on which you want to play sound |
sound |
no | The name of the sound to play |
Examples
Send announcement when you arrive home
automation:
- alias: "Alexa Announce"
id: "alexa_announce"
triggers:
- platform: state
entity_id: person.simone
to: "home"
actions:
- action: notify.send_message
data:
message: Welcome home Simone
target:
entity_id: notify.echo_dot_livingroom_announce
Ask the time
action: alexa_devices.send_text_command
data:
device_id: 037d79c1af96c67ba57ebcae560fb18e
text_command: whats the time
Play BBC Radio 6
action: alexa_devices.send_text_command
data:
device_id: 037d79c1af96c67ba57ebcae560fb18e
text_command: play BBC Radio 6
Play a doorbell sound
action: alexa_devices.send_sound
data:
sound: amzn_sfx_doorbell_chime_01
device_id: 037d79c1af96c67ba57ebcae560fb18e
Using advanced markup in a notification
action: notify.send_message
data:
message: >
Hello, lets have some examples.
<amazon:emotion name="excited" intensity="medium"> This is me being mildly excited! </amazon:emotion>
The farmer's dog was called <say-as interpret-as='spell-out'>bingo</say-as>.
<prosody pitch='high'> I can sing high </prosody> <prosody pitch='low'> and I can sing low </prosody>
target:
entity_id: notify.study_dot_speak
action: notify.send_message
data:
message: >
Stop! <break time='3s'/> Hammer Time. Watch out
<audio src="soundbank://soundlibrary/scifi/amzn_sfx_scifi_laser_gun_battle_01"/>
Shields up! <audio src="soundbank://soundlibrary/scifi/amzn_sfx_scifi_shields_up_01" />
<amazon:effect name="whispered">
<prosody rate="x-slow"><prosody volume="loud">Enough now</prosody></prosody>
</amazon:effect>
target:
entity_id: notify.study_dot_speak
Data updates
This integration pollsData polling is the process of querying a device or service at regular intervals to check for updates or retrieve data. By defining a custom polling interval, you can control how frequently your system checks for new data, which can help optimize performance and reduce unnecessary network traffic. [Learn more] data from the device every 30 seconds by default.
Supported functionality
The Alexa Devices integrationIntegrations connect and integrate Home Assistant with your devices, services, and more. [Learn more] provides the following entities:
- Binary sensor - main and Bluetooth connectivity
- Notify - Speak and Announce notifications
- Sensor - temperature and illuminance sensors
- Switch - Do not disturb
Known limitations
This integration requires multifactor authentication using an authentication app (such as Microsoft Authenticator). To enable MFA, in your Amazon account settings, select Login & Security > 2-step verification > Backup methods > Add new app. See Amazon’s documentation
Troubleshooting
Can’t set up the integration
Symptom: “Not found”
When trying to set up the integration, the form shows the message “Not found”.
Description
This appears to indicate that your Alexa devices aren’t owned by you, but are connected through Amazon Family. This setup isn’t supported by the Alexa Mobile app, so it’s not supported by this integration. Move the devices to your primary account.
Removing the integration
This integration follows standard integration removal. No extra steps are required.
To remove an integration instance from Home Assistant
- Go to Settings > Devices & services and select the integration card.
- From the list of devices, select the integration instance you want to remove.
- Next to the entry, select the three dots
menu. Then, select Delete.