Home Assistant + Google Assistant: The Complete Integration Guide

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.

Check Your Devices HA vs Google Home

Why Connect Google Assistant to Home Assistant?

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.

๐Ÿ›ก๏ธ

Insurance Against Google

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.

๐ŸŽฏ

Way More Devices

Home Assistant supports 2,700+ integrations. That Zigbee sensor, that local-only camera, that ESP32 project? Google can control them all through Home Assistant.

โšก

Smarter Automations

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.

๐Ÿ”’

Better Privacy

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.

Method 1: Nabu Casa (Recommended)

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.

Step-by-Step Setup

1

Subscribe to Nabu Casa

Go to Settings > Home Assistant Cloud in your HA instance. Create an account or sign in. The first month is free.

2

Enable Google Assistant

In the Cloud settings page, find the Google Assistant section and flip the toggle to enable it. That's the Home Assistant side done.

3

Link in Google Home App

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.

4

Choose Your Entities

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.

5

Test It

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.

Method 2: Manual Setup (Free, More Work)

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.

What You Need

  • HTTPS access to your Home Assistant: Google requires a secure public URL. Use a domain with SSL, Cloudflare Tunnel, or a reverse proxy with Let's Encrypt.
  • Google Cloud Console account: Free tier works fine. You'll create a project with the HomeGraph API enabled.
  • Actions on Google project: This is how you register your custom smart home "action" that Google links to your HA instance.
  • Service account JSON key: Downloaded from Google Cloud, placed in your Home Assistant config directory.

High-Level Steps

  1. Create a new project in the Google Cloud Console
  2. Enable the HomeGraph API
  3. Create a service account and download the JSON key
  4. Go to the Actions on Google Console and create a new Smart Home project
  5. Set the fulfillment URL to https://your-ha-domain:8123/api/google_assistant
  6. Configure Account Linking with your HA OAuth credentials
  7. Add the Google Assistant integration to your configuration.yaml
  8. Link the action in your Google Home app under test mode

Pros of Manual Setup

  • Completely free (no monthly cost)
  • Full control over every aspect
  • No dependency on Nabu Casa servers
  • Good learning experience

Cons of Manual Setup

  • 2 to 3 hours initial setup
  • Must maintain your own HTTPS/SSL
  • Google Cloud Console can be confusing
  • Service accounts can expire, need renewal
  • No auto-updates when HA changes APIs

Choosing What Google Can Control

Don'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 TypeVoice Command ExampleExpose?
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

Naming Tips for Voice Control

  • Use room names: "Living room lamp" works better than "light.hue_color_lamp_1"
  • Avoid duplicates: If you have "lamp" in two rooms, Google gets confused. Be specific.
  • Assign rooms in Google Home: After linking, drag each device to the correct room in the Google Home app. This lets you say "turn off the lights" and Google knows which room you mean based on which speaker you're talking to.
  • Keep it natural: Name things the way you'd say them out loud. "Bedroom fan" beats "master_bedroom_ceiling_fan_switch".

5 Powerful Automations to Build

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.

1. "Hey Google, Good Morning"

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"

2. "Hey Google, I'm Leaving"

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: all

3. "Hey Google, Movie Time"

Dims 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_speaker

4. "Hey Google, Show Me the Front Door"

If 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"

5. "Hey Google, Bedtime"

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: 18

Google Assistant vs Home Assistant Assist: Which to Use?

Home 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.

FeatureGoogle AssistantHA Assist
Natural languageExcellentGood, improving
Works offlineNoYes
Music/PodcastsBuilt inVia Music Assistant
Timers/AlarmsBuilt inLimited
PrivacyCloud-based100% local
Speaker hardwareNest speakersESP32, ATOM Echo
Intercom/BroadcastYesComing soon
CostFree (hardware)$3-13 per room

The Smart Play: Run Both

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.

Pro Tips for Google + Home Assistant

Sync After Changes

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.

Use Aliases

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.

Room Assignment Matters

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.

Use Google Home Routines Too

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.

PIN Protection for Locks

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.

Monitor the Connection

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.

Ready to Connect Google and Home Assistant?

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 Scan

Frequently Asked Questions

Can Google Assistant control Home Assistant devices?

Yes. 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.

Do I need Nabu Casa for Google Assistant?

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.

Does Google Assistant work locally with Home Assistant?

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.

Is Google Home shutting down?

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.

Should I replace Google Home with Home Assistant?

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.

Can I use Google Home routines with 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.

Can I show cameras on my Nest Hub or Chromecast?

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.

What about Nest thermostats and other Google devices?

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.