Table of Contents
Amazon Alexa and Home Assistant make a powerful combination. Connect them and every device in your HA setup — lights, locks, thermostats, switches, sensors — becomes controllable by voice through any Alexa device. You can also use Alexa Routines as triggers for complex HA automations.
This guide covers both setup methods: the simple Nabu Casa approach and the more advanced manual method using a custom Alexa skill and AWS Lambda.
Overview
Unlike Google Home, Alexa doesn't have a direct local protocol for Home Assistant. All Alexa integrations route through Amazon's cloud — but your actual device control still happens locally via your Home Assistant instance. The cloud is just the middleman for voice commands.
This means you do need your Home Assistant to be reachable from the internet for Alexa to work. Nabu Casa handles this automatically; the manual method requires you to set up your own external access.
Method 1: Nabu Casa
Nabu Casa is the official subscription service from the Home Assistant team. At $6.50/month, it includes Alexa integration, Google Assistant integration, and secure remote access.
Step 1: Enable Nabu Casa
In Home Assistant, go to Settings → Home Assistant Cloud. Sign up or log in to your Nabu Casa account.
Step 2: Enable Alexa
Once logged in, scroll to the Alexa section and toggle it on. You can choose which entity domains to expose.
Step 3: Link in the Alexa App
Open the Alexa app on your phone. Go to More → Skills & Games. Search for "Home Assistant". Select the skill and tap "Enable to Use". You'll be redirected to sign in with your Nabu Casa account to authorise the connection.
Step 4: Discover Devices
Say "Alexa, discover devices" or tap "Discover Devices" in the Alexa app. All exposed Home Assistant entities will appear.
Method 2: Custom Alexa Skill (Manual)
The manual method is free but requires creating an AWS Lambda function and an Amazon Developer account. It's a significant setup investment but costs nothing ongoing.
What You Need
- Amazon Developer account (free)
- AWS account with Lambda access (free tier is sufficient)
- Home Assistant accessible from the internet
- A long-lived access token from HA
High-Level Steps
- Create an Alexa Smart Home skill in the Amazon Developer Console
- Create an AWS Lambda function using the HA Alexa Smart Home handler code
- Link the Lambda to the Alexa skill
- Set up OAuth 2.0 with your HA instance
- Configure the Alexa integration in
configuration.yaml
Configuration YAML
Add this to your configuration.yaml for the manual method:
alexa:
smart_home:
filter:
include_domains:
- light
- switch
- climate
- lock
- cover
What to Expose to Alexa
You control exactly what Alexa sees from Home Assistant. Best practices:
- Include lights, switches, climate, locks, and covers
- Exclude sensors, binary sensors, and automations (they can't be controlled by voice meaningfully)
- Use entity aliases to give devices natural names like "Kitchen Main Light" instead of "light.kitchen_ceiling_1"
- Assign devices to Alexa Groups matching your HA Areas for room-based commands
Alexa Routines with HA
One of the best features of this integration is using Alexa Routines as triggers for HA scenes and scripts. In the Alexa app, create a routine that:
- Triggers when you say "Alexa, good night"
- Controls HA devices: dim all lights, lock the front door, set thermostat to 68°F
- Speaks a custom message: "Good night! Your home is secured."
You can also trigger Alexa Routines from Home Assistant using the notify.alexa_media service if you have the Alexa Media Player HACS integration installed.
Useful Voice Commands
Once connected, these voice commands work with your HA devices:
- "Alexa, turn on the bedroom lights"
- "Alexa, dim the living room to 40%"
- "Alexa, set the thermostat to 70"
- "Alexa, lock the front door"
- "Alexa, turn on Movie Time" (HA scene)
- "Alexa, is the garage door open?"
- "Alexa, turn off everything in the kitchen"
Troubleshooting
Devices Not Found After Discovery
Check that the entities are exposed to Alexa in HA. Navigate to Settings → Voice Assistants → Alexa and verify your exposed entities. Then say "Alexa, discover my devices" again.
Alexa Says "Device is Not Responding"
This usually means Home Assistant can't be reached. Check your Nabu Casa connection status or verify your external URL is accessible. Restart the HA Cloud integration if needed.
Wrong Device Names in Alexa
Alexa uses the friendly name from Home Assistant. Update entity names in HA (Settings → Devices & Services → select entity → edit name) and then rediscover devices in Alexa.
Bottom Line
Nabu Casa makes the Alexa-Home Assistant integration simple and reliable. If you value your time, the $6.50/month is well worth it — especially since it also covers Google Home and remote access. The manual method is a solid free alternative if you enjoy the DIY challenge and don't mind the setup complexity.
SmartWired participates in the Amazon Associates Programme. We may earn a commission from qualifying purchases at no extra cost to you.