Google Home has been losing features left and right. But those Nest speakers still sound great, and "Hey Google" is still the fastest way to control your home hands-free. The smart move? Connect Google Assistant to Home Assistant so you get reliable local automations AND keep your voice control. Here's exactly how to set it up.
Jump to a section
If you've been using Google Home for a while, you've probably noticed things breaking. Routines that used to work perfectly now fail randomly. Third-party integrations disappear without warning. Google keeps "sunsetting" features that people actually use.
Home Assistant fixes this by running everything locally. Your automations work whether Google's servers are having a bad day or not. And the best part: you don't have to throw away your Nest speakers. Just connect them to Home Assistant and you get the best of both worlds.
Every automation you build in Home Assistant keeps working even if Google removes another feature. Your smart home stops being dependent on one company's roadmap.
Home Assistant supports 2,700+ integrations. That Zigbee sensor, that local-only camera, that ESP32 project? Google can control them all through Home Assistant.
Google Home routines are limited. Home Assistant automations can use templates, conditions, time ranges, sensor thresholds, and multi-step logic that Google simply cannot do.
Device control happens locally on your network. Google only handles the voice recognition part. Your sensor data, camera feeds, and automation logic never leave your home.
This is the path 90% of people should take. Nabu Casa ($6.50/month) is the official cloud service from the Home Assistant team. It handles all the tricky cloud authentication between Google and your Home Assistant instance. Setup takes about 10 minutes.
Go to Settings > Home Assistant Cloud in your HA instance. Create an account or sign in. The first month is free.
In the Cloud settings page, find the Google Assistant section and flip the toggle to enable it. That's the Home Assistant side done.
Open the Google Home app on your phone. Tap + > Works with Google. Search for "Home Assistant Cloud by Nabu Casa". Sign in with your Nabu Casa credentials.
Back in Home Assistant, go to Settings > Home Assistant Cloud > Google Assistant. Select which entities Google can see. Start small and add more as needed.
Say "Hey Google, turn on the living room lights" (or whatever you exposed). If it works, you're done. The whole process takes under 10 minutes.
Why pay $6.50/month? Besides the easy Google setup, Nabu Casa gives you secure remote access to your Home Assistant from anywhere, Alexa integration, and text-to-speech. Plus you're directly funding Home Assistant development. It's the best deal in smart home.
If you don't want a monthly subscription, you can connect Google Assistant to Home Assistant for free by creating your own Google Cloud project. Fair warning: this takes 2 to 3 hours and involves several moving parts.
https://your-ha-domain:8123/api/google_assistantconfiguration.yamlDon't expose everything. Google doesn't need access to your system monitor sensors or your automation debugging switches. Be selective for a cleaner experience.
| Entity Type | Voice Command Example | Expose? |
|---|---|---|
| Lights | "Turn on kitchen lights" | โ Yes |
| Switches | "Turn off the coffee maker" | โ Yes |
| Climate/Thermostat | "Set temperature to 21" | โ Yes |
| Covers/Blinds | "Close the bedroom blinds" | โ Yes |
| Locks | "Lock the front door" | โ ๏ธ With PIN |
| Scenes | "Activate movie time" | โ Yes |
| Scripts (as switches) | "Turn on goodnight routine" | โ Yes |
| Sensors | "What's the temperature?" | ๐ธ Some |
| Cameras | "Show front door on TV" | โ With Chromecast |
Once Google Assistant is connected to Home Assistant, you can trigger complex automations with simple voice commands. Here are five that actually make daily life easier.
Create a Home Assistant script that turns on kitchen lights at 80%, starts the coffee maker, sets the thermostat to 21C, and plays your morning playlist on the kitchen speaker. Expose the script as a switch in Google, name it "good morning".
script:
good_morning:
alias: "Good Morning"
sequence:
- action: light.turn_on
target:
entity_id: light.kitchen
data:
brightness_pct: 80
color_temp_kelvin: 4000
- action: switch.turn_on
target:
entity_id: switch.coffee_maker
- action: climate.set_temperature
target:
entity_id: climate.thermostat
data:
temperature: 21
- action: media_player.play_media
target:
entity_id: media_player.kitchen_speaker
data:
media_content_id: "spotify:playlist:your_playlist_id"
media_content_type: "playlist"Turns off all lights, locks the door, arms the security system, lowers the thermostat to 17C, and turns off any media playing. One command instead of checking every room.
script:
leaving_home:
alias: "I'm Leaving"
sequence:
- action: light.turn_off
target:
entity_id: all
- action: lock.lock
target:
entity_id: lock.front_door
- action: alarm_control_panel.alarm_arm_away
target:
entity_id: alarm_control_panel.alarmo
- action: climate.set_temperature
target:
entity_id: climate.thermostat
data:
temperature: 17
- action: media_player.turn_off
target:
entity_id: allDims the living room lights to 10%, closes the blinds, turns on the TV via HDMI-CEC, sets the soundbar to the right input, and pauses any music playing on other speakers.
script:
movie_time:
alias: "Movie Time"
sequence:
- action: light.turn_on
target:
entity_id: light.living_room
data:
brightness_pct: 10
color_temp_kelvin: 2700
- action: cover.close_cover
target:
entity_id: cover.living_room_blinds
- action: media_player.turn_on
target:
entity_id: media_player.tv
- action: media_player.pause
target:
entity_id: media_player.kitchen_speakerIf you have a camera in Home Assistant and a Chromecast on your TV, Google can cast the camera feed directly. Expose the camera entity and assign it to a room. Works with Reolink, Amcrest, UniFi, and any camera with an RTSP stream.
# In configuration.yaml, expose camera to Google:
google_assistant:
project_id: your-project-id
service_account: !include google_service_account.json
entity_config:
camera.front_door:
name: "Front Door Camera"
room: "Hallway"Turns off all downstairs lights, sets bedroom lights to a warm 5% glow, locks all doors, checks that the garage is closed (sends you a notification if it's open), arms the night alarm, and sets the thermostat to sleeping temperature.
script:
bedtime:
alias: "Bedtime"
sequence:
- action: light.turn_off
target:
area_id: downstairs
- action: light.turn_on
target:
entity_id: light.bedroom
data:
brightness_pct: 5
color_temp_kelvin: 2200
- action: lock.lock
target:
entity_id: all
- if:
- condition: state
entity_id: cover.garage_door
state: "open"
then:
- action: notify.mobile_app
data:
message: "Garage door is still open!"
- action: alarm_control_panel.alarm_arm_night
target:
entity_id: alarm_control_panel.alarmo
- action: climate.set_temperature
target:
entity_id: climate.thermostat
data:
temperature: 18Home Assistant has its own voice assistant called Assist. It runs entirely locally, no internet needed, no cloud dependency. But it's younger and less capable than Google Assistant. Here's when to use each.
| Feature | Google Assistant | HA Assist |
|---|---|---|
| Natural language | Excellent | Good, improving |
| Works offline | No | Yes |
| Music/Podcasts | Built in | Via Music Assistant |
| Timers/Alarms | Built in | Limited |
| Privacy | Cloud-based | 100% local |
| Speaker hardware | Nest speakers | ESP32, ATOM Echo |
| Intercom/Broadcast | Yes | Coming soon |
| Cost | Free (hardware) | $3-13 per room |
Use Google speakers in the kitchen and living room where you want music, timers, and natural conversation. Put cheap ESP32 Assist satellites in the garage, bathroom, and bedrooms for quick device control without sending anything to the cloud. As Assist improves, you can gradually shift more rooms over.
After adding or renaming entities, say "Hey Google, sync my devices" to force Google to re-read your Home Assistant. Changes don't show up automatically.
In the Google Assistant entity config, you can add multiple aliases for the same device. So "bedroom light", "bedside lamp", and "reading light" all control the same entity. Match how different family members talk.
Assign every device to a room in Google Home. This way, "turn off the lights" in the bedroom speaker only affects bedroom lights. Without rooms, Google tries to turn off everything.
Google Home routines can trigger Home Assistant scripts AND do Google-only things (play news, set alarms, read calendar). Combine both for routines that neither platform could do alone.
Google requires a PIN for lock and security operations. Set this in your entity config. It prevents guests (or kids) from accidentally unlocking doors with a voice command.
Check Settings > Integrations > Google Assistant periodically. If the connection breaks (Google tokens expire, Nabu Casa has an issue), you'll see an error there before you notice voice commands failing.
Not sure which of your devices will work? Run our free compatibility scan first. It takes 30 seconds and shows you exactly what you can control through Home Assistant.
Run the Free ScanYes. Once connected (through Nabu Casa or manual setup), Google can control any device you choose to expose. Lights, switches, thermostats, locks, covers, fans, scripts, and scenes all work. You control exactly which entities Google sees.
No, but it is the easiest option. Nabu Casa ($6.50/month) handles all the authentication automatically. Without it, you need to set up a Google Cloud project, configure OAuth, and maintain your own HTTPS endpoint. The manual route is free but takes 2 to 3 hours.
Partially. Your voice command always goes through Google's cloud for speech processing. Google then sends the intent to Home Assistant, which executes the command locally on your network. Voice recognition needs internet, but device control is local.
Not entirely, but Google has been removing features and deprecating APIs since 2023. Many integrations and automations that used to work no longer function. The trend is clear: Google is pulling back from the smart home space. Adding Home Assistant gives you a safety net.
You don't have to choose. Run both. Use Home Assistant as the brain that controls everything locally, and keep your Google speakers for voice commands and music. If Google removes another feature, your automations keep working through Home Assistant.
Yes. Any Home Assistant entity exposed to Google appears in the Google Home app and can be used in routines. You can also expose HA scripts as switches, so a single Google routine phrase triggers complex multi-step automations in Home Assistant.
Yes. If your camera is in Home Assistant and you expose it to Google, you can say "Hey Google, show me the front door" and it will cast the camera feed to any Chromecast or Nest Hub display. Works with Reolink, Amcrest, and any camera with RTSP support.
Home Assistant has a native Nest integration that works with Nest thermostats, cameras, and doorbells. Once these devices are in Home Assistant, you get much more powerful automations than what Google Home offers natively.
Full comparison of both platforms
Step-by-step migration guide
HA Assist for privacy-first voice
The Alexa integration guide
Inspiration for what to build next
Everything you need to get started