Skip to main content
← All Guides | Partial Compatibility
Google Nest

Nest Thermostat + Home Assistant

Official SDM API integration guide

~30 minutes Verified: 2026-01-31 $5 one-time fee HA 2026.1+

Complex Setup Required

Nest integration requires a $5 fee, Google Cloud Console configuration, and OAuth setup. This is significantly more complex than most Home Assistant integrations. Consider Ecobee if you haven't purchased a thermostat yet.

Quick Summary

  • ! Compatibility: Partial. Requires paid API and cloud connection
  • ! Cost: $5 USD one-time fee to Google
  • Google Workspace: Not supported. Consumer Gmail accounts only
  • Features: Temperature control, mode switching, eco/away modes

1. Prerequisites

Before starting, verify you have:

  • Home Assistant with SSL configured (required for OAuth)
  • Nest thermostat set up in the Google Home app
  • Consumer Google account (gmail.com). Google Workspace accounts are not supported
  • Credit/debit card for the $5 API access fee

Not supported: Google Workspace accounts, Advanced Protection Program users, and European Nest E thermostats cannot use this integration.

Supported Models

  • Nest Learning Thermostat (all generations)
  • Nest Thermostat E (US version only)
  • Nest Thermostat (2020 model)

2. Google Cloud Setup

Step 1: Create a Google Cloud Project

  1. Go to Google Cloud Console
  2. Click the project dropdown at the top and select New Project
  3. Name it something like "Home Assistant Nest"
  4. Click Create and wait for it to finish
  5. Note your Project ID (you'll need this later)

Step 2: Enable Required APIs

  1. In your new project, go to APIs & Services → Library
  2. Search for and enable Smart Device Management API
  3. Search for and enable Cloud Pub/Sub API

Step 3: Configure OAuth Consent Screen

  1. Go to APIs & Services → OAuth consent screen
  2. Select External and click Create
  3. Fill in the required fields (app name, support email)
  4. Add your email as a test user
  5. Important: Set publishing status to Production (otherwise tokens expire after 7 days)

Step 4: Create OAuth Credentials

  1. Go to APIs & Services → Credentials
  2. Click Create Credentials → OAuth client ID
  3. Application type: Web application
  4. Add authorized redirect URI: https://my.home-assistant.io/redirect/oauth
  5. Save the Client ID and Client Secret

3. Device Access Console

Step 1: Pay the API Fee

  1. Go to Device Access Console
  2. Agree to the terms of service
  3. Pay the $5 USD one-time fee

Step 2: Create a Device Access Project

  1. Click Create project
  2. Enter a project name
  3. Paste your OAuth Client ID from the previous step
  4. Enable events (you'll configure the Pub/Sub topic next)
  5. Note your Device Access Project ID

4. Pub/Sub Configuration

Pub/Sub enables real-time updates from your thermostat.

Step 1: Create a Pub/Sub Topic

  1. Go to Cloud Pub/Sub in Google Cloud Console
  2. Click Create Topic
  3. Topic ID: home-assistant-nest
  4. Leave default settings and click Create

Step 2: Grant Publisher Permission

  1. Click on your new topic
  2. Go to the Permissions tab
  3. Click Add Principal
  4. Add: cloud-device-manager@system.gserviceaccount.com
  5. Role: Pub/Sub Publisher

Step 3: Link Topic to Device Access

  1. Return to the Device Access Console
  2. Edit your project
  3. Add the Pub/Sub topic: projects/YOUR_PROJECT_ID/topics/home-assistant-nest
  4. Save the project

5. Home Assistant Setup

Step 1: Add Application Credentials

  1. In Home Assistant, go to Settings → Devices & Services
  2. Click the three-dot menu → Application Credentials
  3. Add credentials for Nest
  4. Enter your OAuth Client ID and Client Secret

Step 2: Configure the Integration

  1. Go to Settings → Devices & Services
  2. Click + Add Integration
  3. Search for Nest
  4. Enter your Device Access Project ID
  5. Follow the OAuth flow to authorize with your Google account
  6. Grant permissions for thermostats

Step 3: Verify Connection

After authorization, your thermostat should appear with climate and sensor entities.

6. Available Features

Climate Control

  • Read current temperature
  • Set target temperature
  • Switch modes (heat, cool, heat-cool, off)
  • Control HVAC fan
  • Eco/Away mode activation

Sensors

  • Current temperature
  • Current humidity
  • HVAC state (heating, cooling, idle)

7. Automation Ideas

Eco Mode When Away

automation:
  - alias: "Eco mode when everyone leaves"
    trigger:
      - platform: state
        entity_id: group.family
        to: "not_home"
        for: "00:15:00"
    action:
      - service: climate.set_preset_mode
        target:
          entity_id: climate.nest_thermostat
        data:
          preset_mode: "eco"

Resume Schedule When Home

automation:
  - alias: "Resume when someone arrives"
    trigger:
      - platform: state
        entity_id: group.family
        to: "home"
    action:
      - service: climate.set_preset_mode
        target:
          entity_id: climate.nest_thermostat
        data:
          preset_mode: "none"

Pre-Heat Before Waking

automation:
  - alias: "Pre-heat in morning"
    trigger:
      - platform: time
        at: "06:00:00"
    condition:
      - condition: state
        entity_id: input_boolean.workday
        state: "on"
    action:
      - service: climate.set_temperature
        target:
          entity_id: climate.nest_thermostat
        data:
          temperature: 72

8. Troubleshooting

Authentication Errors

  • Verify OAuth consent screen is set to Production, not Testing
  • Ensure redirect URI exactly matches: https://my.home-assistant.io/redirect/oauth
  • Check that you're using a consumer Google account (gmail.com)

Devices Not Appearing

  • Verify thermostat is visible in Google Home app
  • Check that you granted thermostat permissions during OAuth
  • Try removing and re-adding the integration

Token Expiring After 7 Days

  • Your OAuth consent screen is in Testing mode
  • Go to Google Cloud Console → OAuth consent screen
  • Click Publish App to move to Production

Pub/Sub Events Not Working

  • Verify the service account has Publisher role on your topic
  • Check that the topic name in Device Access matches exactly
  • Subscriptions expire after 31 days of inactivity

9. Frequently Asked Questions

Does Nest work offline with Home Assistant?

No. Nest thermostats require a cloud connection to communicate with Home Assistant. The SDM API relies on Google's servers, so if your internet goes down or Google's services are unavailable, Home Assistant cannot control your thermostat. The Nest will continue to function locally with its built-in schedule, but remote control is lost.

Why does Nest integration cost $5?

Google charges a one-time $5 USD fee for access to the Smart Device Management (SDM) API through their Device Access Console. This fee helps cover API infrastructure costs and reduces abuse. It's a one-time payment that grants permanent access to control your Nest devices through the API.

Is Nest worth it for Home Assistant users?

If you already own a Nest thermostat, the $5 fee and complex setup are worthwhile for basic climate control. However, if you're buying a new thermostat specifically for Home Assistant, consider Ecobee instead. Ecobee offers easier setup via HomeKit (local control, no fees) and better long-term support for smart home integration.

What are better thermostat alternatives for Home Assistant?

Ecobee is the top recommendation for Home Assistant. It supports local control via HomeKit, requires no API fees, and setup takes about 10 minutes. Other excellent options include Z-Wave thermostats (Honeywell T6 Pro, GoControl) that work 100% locally, or any Zigbee-compatible thermostat with a Zigbee coordinator.

Can I still use the Google Home app with Home Assistant?

Yes! The Nest integration with Home Assistant doesn't affect your ability to use Google Home. You can continue using voice commands through Google Assistant, the Google Home app schedules, and all other Google ecosystem features. Home Assistant simply adds another control layer on top.

10. Sources

This guide was compiled from official documentation:

Last verified: 2026-01-31 against Home Assistant 2026.1. If you find outdated information, let us know.

Need help with thermostat setup?

We configure Home Assistant systems throughout Oklahoma, including Nest and Ecobee thermostats. Skip the complexity with professional installation.