Part of Complete Smart Home Guide
Nest Thermostat + Home Assistant
Choose Matter or Google SDM for your thermostat
Check the model before paying for API access
If you have the Nest Thermostat (2020) or Nest Learning Thermostat (4th gen), start with the Matter option for local temperature control. The Google Nest integration uses a different route: Google's SDM API, a paid developer registration and a cloud connection. Both are covered below.
1. Models and prerequisites
| Thermostat | Connection to consider | Before setup |
|---|---|---|
| Nest Thermostat (2020) | Matter or SDM | Complete Google Home setup and check for the Matter option. |
| Nest Learning Thermostat (4th gen) | Matter or SDM | Use Matter for temperature and mode control; compare exposed features if considering SDM. |
| Nest Learning Thermostat (3rd gen), Nest Thermostat E | SDM | Verify the thermostat is connected to the Google account you will authorize. |
| Nest Learning Thermostat (1st or 2nd gen) | Retired cloud support | Google ended connected features on October 25, 2025. |
Google's end-of-support notice covers first- and second-generation Learning Thermostats, including the European second-generation model. They can still be operated at the wall. Broad wording in older API guides about "all generations" should not be read as restoring their connected features.
Google documents Matter in the 2020 thermostat firmware history and the fourth-generation product announcement. For SDM, check the thermostat API documentation against your current device.
For the SDM route
- A connected thermostat already working with the appropriate Google Home or Nest app.
- A consumer Google account with access to that home. Workspace accounts are excluded, and Advanced Protection blocks the required SDM access.
- A payment method for Google's Device Access registration.
- A current Home Assistant installation and browser access to the instance during authorization.
The standard flow uses the My Home Assistant redirect service. You do not need to publish Home Assistant to the internet just to complete that flow. If you have disabled My Home Assistant or use a custom callback, follow the integration's callback instructions.
Matter setup for the 2020 and fourth-generation models
Matter controls the thermostat over the local network and avoids the SDM registration fee. It does not promise every Nest-specific feature. These thermostats use Wi-Fi for Matter, so a Thread border router is not required for this connection.
- Finish thermostat setup in Google Home. Make sure you can change the temperature there.
- Have Home Assistant's Matter integration and Matter Server ready, plus the current Home Assistant Companion app on your phone.
- In the Companion app, open the Matter add-device flow. Choose the option for a device that is already in use, then choose Google Home.
- Follow the sharing prompts and supply a fresh pairing code from the thermostat's linked Matter apps settings when requested.
- Open the resulting climate entity and verify a small setpoint change at the thermostat. Restore the original setting afterward.
Use Home Assistant's Matter sharing instructions for the current app path. Google also documents Nest Matter linking errors. If this gives you the controls you need, skip the Google Cloud sections and continue at available features.
2. Google Cloud setup
The rest of the setup uses SDM. Keep one browser profile signed into the intended account; switching accounts halfway through makes the two Google consoles easy to mix up.
Create the project and credentials
- In Google Cloud Console, create or select your project and record its Cloud Project ID.
- Enable the Smart Device Management API and Cloud Pub/Sub API.
- In Google Auth Platform, configure Branding with an app name, support email and developer contact. Choose an External audience and add your account as a test user.
- Set the publishing status to In production. Leaving it in Testing can cause authorization to expire after seven days.
- Create an OAuth client of type Web application. For Home Assistant's standard flow, enter
https://my.home-assistant.io/redirect/oauthas an authorized redirect URI. - Save the OAuth Client ID and Client Secret securely for the Home Assistant setup dialog.
Follow the Home Assistant configuration walkthrough for its callback URL. Google's general API examples use different callbacks for their examples. The Google authorization reference explains testing-mode token expiry.
3. Device Access Console
Google charges a one-time, non-refundable US$5 registration fee per account. Check the selected account before paying. This is separate from any Google Cloud Pub/Sub usage charges, and it is not a guarantee of indefinite product support.
- Open the Device Access Console with the same consumer account and complete registration.
- Create a project and enter the OAuth Client ID you made in Google Cloud.
- Leave events disabled until you have created the topic in the next section.
- Copy the Device Access Project ID. This is different from the Cloud Project ID.
Keep a short record with the two project IDs clearly labeled. Google's project setup reference explains the distinction. Pasting the wrong one can produce an account-linking failure that looks like a permissions problem.
4. Pub/Sub configuration
SDM sends changes to a topic, and Home Assistant receives them through a subscription. A successful login alone does not verify that this update path works.
- In your Cloud project's Pub/Sub console, create a topic such as
home-assistant-nest. - Open that topic's Permissions tab and add
sdm-publisher@googlegroups.comwith the Pub/Sub Publisher role. Grant it on the topic itself. - Copy the full topic name:
projects/YOUR_CLOUD_PROJECT_ID/topics/home-assistant-nest. - Return to your Device Access project, enable events with a Pub/Sub topic, and paste that full name. Use Add & Validate.
- During Home Assistant setup, select the same topic and choose an existing appropriate subscription or let the integration create one.
The publisher principal comes from Google's current event subscription instructions. Use the actual topic name shown in Cloud Console; a subscription path contains /subscriptions/ and is not interchangeable with a topic path.
The January 2025 change moved new setups to a topic in your own Cloud project. An older working Google-hosted topic does not need to be deleted just because you are reading a newer guide. Google warns that disabling it changes what happens when events are enabled again.
5. Home Assistant setup
- Go to Settings → Devices & services → Add integration and select Nest.
- Enter the OAuth credentials and correctly labeled project details when prompted.
- Authorize with the same Google account. Select the home, thermostat and capabilities you want to share.
- Complete the My Home Assistant link and the topic/subscription selection.
- Open the climate entity and confirm its current mode and target temperature.
Verify commands and incoming updates
Make a small target-temperature adjustment from Home Assistant and confirm it at the thermostat. Then change it at the thermostat and confirm the update returns to Home Assistant. Restore the original setting. If only the first test works, investigate Pub/Sub before rebuilding OAuth credentials.
Keep existing schedules enabled until you have verified the replacement behavior. Also decide which platform will own the schedule. A Google routine and a Home Assistant automation can each work correctly while continually undoing the other.
6. Available features
SDM supports temperature setpoints, supported heating/cooling modes, humidity, HVAC activity and fan functions when the device exposes them. Matter provides standardized thermostat controls; inspect the resulting entity for the features available on your model. Do not assume both routes produce identical sensors or presets.
Google's thermostat API reference defines the limits: manual Eco blocks setpoint changes, Eco thresholds cannot be changed through SDM, and heat/cool mode needs a temperature range. Turning Eco off returns to the previous standard mode. It is not a universal "resume schedule" command.
Additional Nest room sensors are not separate SDM devices. The reported temperature follows the active sensor selected by Nest. Check the Home Assistant sensor limitation before planning room-by-room charts.
7. Automation ideas
A useful first automation is an alert when the thermostat connection is unavailable. It does not alter your heating or cooling schedule. Create an empty automation and use its YAML editor for this example; replace the climate entity with yours.
alias: "Nest connection unavailable"
triggers:
- trigger: state
entity_id: climate.nest_thermostat
to: "unavailable"
for: "00:10:00"
conditions: []
actions:
- action: persistent_notification.create
data:
title: "Check the thermostat connection"
message: "Home Assistant has not been able to reach Nest for 10 minutes. Check the thermostat and integration."
mode: single This detects a reported unavailable state, not every possible stale reading. Check the automation trace after a test. A phone alert needs your own Companion app notification action.
Add temperature changes after the connection is reliable
For a workday schedule, use Home Assistant's visual action editor to select the climate entity and the controls it supports. Confirm the displayed units before entering a setpoint. Use upper and lower targets for heat/cool mode, and test how your schedule interacts with Eco. The climate action reference describes the available actions.
For presence-based adjustments, include everyone who lives in the home and leave room for guests. Start with a notification that says what would change, then enable temperature changes after the occupancy logic behaves as expected.
8. Troubleshooting
Google reports a redirect URI mismatch
Compare the authorized redirect URI with the URL used by the setup flow, character for character. For the standard My Home Assistant flow, use the callback shown above. Check that you edited the OAuth client whose ID is stored in Home Assistant.
The account links, then asks for authorization a week later
Open Google Auth Platform's Audience page and check the publishing status. Move out of Testing, then reauthenticate in Home Assistant. Google's authorization errors guide also covers revoked or expired credentials.
No devices appear
Confirm that the selected account can see the thermostat in its Google home, that it is a supported model, and that you granted thermostat access. Compare the OAuth Client ID in Cloud Console, Device Access and Home Assistant. These must match. An old Nest account must be migrated to a Google account for SDM.
No eligible Pub/Sub topics, or values stop changing
Check that events are enabled in Device Access, the full topic name matches, and the publisher has permission on that topic. Confirm the subscription selected in Home Assistant belongs to it. Generate a change at the thermostat and check for an incoming update. Use the integration diagnostics if the path still fails.
Matter pairing fails
Check that setup in Google Home is complete and use a fresh sharing code. Keep the phone and Home Assistant on a network that permits local communication. Guest isolation and blocked IPv6 or multicast traffic can interfere. Follow the Matter troubleshooting guide before resetting a thermostat that already controls your HVAC correctly.
9. Known limitations
SDM depends on Google's service and your internet connection. Matter's local control still depends on working Wi-Fi and Home Assistant. Keep the thermostat's own controls usable, and check its schedule directly after changing automation rules.
Neither the Matter label nor an SDM login gives Home Assistant every feature shown in Google Home. Check fan controls, presets and sensors on the device page. Nest Protect is not exposed through SDM, and camera support has separate model limits.
If you are buying a replacement, first check HVAC compatibility, wiring and the exact model's local-control options. Our Ecobee guide covers another route, and the smart home protocol comparison explains where Matter fits.
10. Sources
Documentation reviewed on 2026-09-08 for Home Assistant 2026.9. This review checks the published setup path and model restrictions; it does not claim a hardware test of every Nest generation.
- Home Assistant: Google Nest integration
- Google: Device Access registration and fee
- Google: Pub/Sub events and publisher permissions
- Google: first- and second-generation end of support
- Home Assistant: Matter setup and troubleshooting
For the wider setup, read our Home Assistant guide. For help connecting an existing thermostat, contact Leios.
Frequently Asked Questions
Does Nest work locally with Home Assistant?
The Nest Thermostat (2020) and Nest Learning Thermostat (4th gen) support Matter for local temperature and mode control. The Google Nest integration uses the cloud-based SDM API instead. Check the model and integration you are using before assuming it will work during an internet outage.
Do I have to pay $5 to connect Nest?
Google charges a one-time, non-refundable US$5 Device Access registration fee per account for the SDM route. That fee does not apply when you connect a compatible thermostat through Matter. Google Cloud Pub/Sub usage has separate terms and pricing.
Do first- and second-generation Nest Learning Thermostats still work?
They still provide controls at the thermostat, but Google ended their app and connected-service support on October 25, 2025. Do not buy one expecting the current Google Nest integration to restore those cloud features.
Why does the Nest integration ask me to sign in every week?
Check whether the OAuth app is still in Testing. Google's testing configuration can expire refresh tokens after seven days. Set the app to In production in Google Auth Platform, then complete Home Assistant's reauthentication prompt.
Can I use a Google Workspace account?
No. Device Access requires a consumer Google account. Gmail is one example, not a requirement that every eligible account must end in gmail.com. Use the same eligible account throughout the Google Cloud, Device Access and authorization steps.
Will every Nest temperature sensor appear in Home Assistant?
The SDM API does not expose separate Nest room sensors as individual devices. Home Assistant reports the temperature of the active sensor selected by Nest. Do not plan room-by-room automations around separate Nest sensor entities without first checking what your integration provides.
Can I keep using Google Home after connecting Home Assistant?
Yes. Adding Home Assistant does not require abandoning Google Home. Choose which system owns your temperature schedule, though. Two automations changing the same thermostat can undo each other's settings.
Need help with thermostat setup?
We configure Home Assistant systems throughout Oklahoma, including Nest and Ecobee thermostats. Tell us the thermostat model and what you need it to do.