Quick Answer
The easiest way to connect Home Assistant to Google Assistant is through the official Home Assistant Cloud (Nabu Casa) subscription at $6.50/month — it takes under 5 minutes and requires zero port forwarding. The free alternative uses Google's Smart Home Action and manual OAuth setup, which works but takes 30–60 minutes and requires a publicly reachable HA instance.
Contents
Which Method Should You Use?
| Factor | Nabu Casa ($6.50/mo) | Manual Google Action (Free) |
|---|---|---|
| Setup time | ~5 minutes | 30–60 minutes |
| Port forwarding needed | No | Yes (or reverse proxy) |
| Reliability | Excellent | Good (depends on your setup) |
| Maintenance | Zero | Medium (cert renewal, etc.) |
| Cost | $6.50/month | Free |
| Privacy | Cloud relay | Can be fully self-hosted |
The best method is Nabu Casa for 90% of users — the time saved and reliability gained easily justify $6.50/month. The manual method is for advanced users who specifically want to avoid any cloud relay.
Method 1: Setting Up Google Assistant via Nabu Casa
Nabu Casa is the official cloud service built by the Home Assistant team. It creates an encrypted tunnel from Google's servers to your Home Assistant — no port forwarding, no SSL certificate headaches.
Step 1: Subscribe to Home Assistant Cloud
- In Home Assistant, go to Settings → Home Assistant Cloud
- Click Get Started and create a Nabu Casa account
- Enter payment details ($6.50/month or $65/year — there's a 30-day free trial)
- Confirm your email address
Step 2: Enable Google Assistant in Nabu Casa
- In Home Assistant Cloud, scroll to Google Assistant
- Toggle it ON
- Click Manage entities to choose which devices Google can see
Step 3: Link in Google Home App
- Open the Google Home app on your phone
- Tap + → Set up device → Works with Google
- Search for "Home Assistant" and tap it
- Sign in with your Nabu Casa credentials
- Your HA devices will appear in Google Home within 30 seconds
Method 2: Manual Google Smart Home Action (Free)
This method connects Google Assistant directly to your Home Assistant instance without Nabu Casa. It requires a publicly reachable URL (via port forwarding or a reverse proxy like Nginx Proxy Manager) with a valid SSL certificate.
Prerequisites
- Home Assistant accessible at a public HTTPS URL (e.g.,
https://home.yourdomain.com) - A Google account
- A Google Developer Console project (free)
Step 1: Enable Google Assistant Integration in HA
Add this to your configuration.yaml:
google_assistant:
project_id: YOUR_GOOGLE_PROJECT_ID
service_account: !include service_account.json
report_state: true
exposed_domains:
- light
- switch
- climate
- media_player
- scene
- script
Step 2: Create a Google Developer Project
- Go to console.actions.google.com
- Create a new project
- Select Smart Home as the project type
- Under Develop → Invocation, set a display name (e.g., "My Home")
- Under Develop → Actions, set the Fulfillment URL to:
https://home.yourdomain.com/api/google_assistant
Step 3: Create Service Account Credentials
- In Google Cloud Console, go to APIs & Services → Credentials
- Create a Service Account with the Service Account Token Creator role
- Download the JSON key file and save it as
service_account.jsonin your HA config directory - Enable the HomeGraph API in your Google Cloud project
Step 4: Link Account in Google Home
- In Google Home app → Set up device → Works with Google
- Search for [test] Your Project Name
- Sign in with your HA user account
- Devices sync automatically
How Do You Choose Which Devices to Expose?
Exposing every single entity to Google Assistant leads to a cluttered mess of switches, sensors, and helper entities cluttering your Google Home. Be selective.
Best practice with Nabu Casa: Go to Settings → Home Assistant Cloud → Google Assistant → Manage Entities. Toggle off sensor entities, input helpers, and any devices you control only through automations.
Expose these entity types for the best Google experience:
- Lights (
light.*) — full brightness and colour control - Switches (
switch.*) — on/off voice control - Climate (
climate.*) — thermostat voice control ("set the living room to 21 degrees") - Media players (
media_player.*) — play/pause/volume - Scenes (
scene.*) — "Hey Google, activate Movie Time" - Scripts (
script.*) — trigger automations by voice
What Voice Commands Work with Home Assistant?
Once linked, these commands work reliably with Google Assistant and Home Assistant entities:
- "Hey Google, turn on the kitchen lights"
- "Hey Google, dim the bedroom to 40%"
- "Hey Google, set the thermostat to 22 degrees"
- "Hey Google, turn off all the lights"
- "Hey Google, activate Movie Time" (scene)
- "Hey Google, is the garage door open?" (binary sensor)
- "Hey Google, what's the temperature in the living room?" (sensor)
- "Hey Google, lock the front door" (lock entity)
Room assignments in Google Home (not HA areas) determine grouping. Say "Hey Google, turn off the bedroom" to control all devices assigned to the Bedroom room in Google Home.
Common Problems & Fixes
Devices not syncing after changes
Say "Hey Google, sync my devices" or go to Google Home → Settings → Works with Google → Home Assistant → Sync. New entities added in HA don't auto-sync immediately.
"That doesn't work" error
Usually means Google can't reach your HA instance (manual method) or the Nabu Casa connection dropped. Check HA logs (Settings → Logs) for Google Assistant errors. For Nabu Casa, check Settings → Home Assistant Cloud for connection status.
Devices showing wrong state
Enable report_state: true in configuration.yaml (manual method) or ensure Nabu Casa is connected. State reporting pushes HA state changes to Google in real-time, keeping Google Home in sync.
Our Verdict
Nabu Casa is the definitive way to connect Home Assistant to Google Assistant — 5-minute setup, zero maintenance, and rock-solid reliability for $6.50/month. If you're already using Home Assistant seriously, the subscription also funds HA development, making it doubly worthwhile. The manual method is viable for advanced users who want full control, but the setup complexity and ongoing maintenance aren't worth the cost savings for most people.
Frequently Asked Questions
Does Home Assistant work with Google Home without a subscription?
Yes — the manual Google Smart Home Action method is free and doesn't require Nabu Casa. It requires a publicly accessible HA URL with SSL and some technical setup in the Google Developer Console, but it works reliably once configured.
Can I control Home Assistant automations with Google Assistant?
You can trigger scripts and activate scenes via Google Assistant. You can't directly trigger automations by voice, but wrapping an automation's action in a script entity gives you voice access to it.
Does Google Assistant integration work locally or through the cloud?
All Google Assistant communication goes through Google's cloud servers — there's no local protocol for Google Assistant. Nabu Casa adds an encrypted relay; the manual method goes directly to your public URL. Neither is fully local.
Why are my devices showing as "unavailable" in Google Home?
This usually means your Home Assistant instance is offline or unreachable. With Nabu Casa, check the Cloud connection status. With the manual method, verify your public URL is accessible and your SSL certificate is valid.
Can I use Google Routines with Home Assistant devices?
Yes — once devices are linked, they appear in Google Home and can be used in Routines. For example, "Good morning" routine could turn on HA lights, set a specific scene, and read the weather.
What HA entities are supported by Google Assistant?
Supported: lights, switches, sensors (read-only), climate, covers (blinds/garage), locks, media players, fans, vacuums, scenes, and scripts. Input booleans and most helper entities aren't directly supported but can be exposed as switches.
SmartWired participates in the Amazon Associates Programme. We may earn a commission from qualifying purchases at no extra cost to you.