Manufacturer | |
Model | Nest Thermostat |
Driver Name | NestThermostat |
Driver Version | 24.07.27.00 |
Document / Driver Revision | May 2, 2025 |
Core Min / Max Tested | 8.9.xx |
This is a driver to control and get feedback from Google Nest Thermostat. The driver does NOT require the Magic Cube. It is a native driver to Nice. The driver is capable of controlling on / off, Set Point, Climate Modes, Fan Modes and poll to keep track of events that happen outside of Nice. While the driver is not endorsed or verified by Google, The driver uses security and OAuth calls against Google’s cloud services, which have to be approved by the end user making it secure and authorized. This driver is NOT reverse engineered.
Supported Features
THE FOLLOWING OPTIONS ARE SUPPORTED :
THE FOLLOWING OPTIONS ARE NOT SUPPORTED :
Any feature not specifically noted as supported should be assumed to be unsupported.
NOTE: This Setup will take approximately 30 minutes to complete. You must have all your client’s credentials available at the time of installation. Your client might have to approve security requests from Google.
IMPORTANT NOTE: Do not use your dealer or personal google account credentials. Either use the client’s account that is used to control the Nest Thermostats or create a special house account and transfer the thermostats to them. Do this prior to this process.
It is recommended that you turn off scheduling in either Nice or the Nest thermostat. Do not activate both, the thermostat will behave erratically. Use only one scheduling platform.
SETUP INSTRUCTIONS FOR GOOGLE NEST THERMOSTAT.
By the end of this section you will have a Cloud Project with the necessary APIs enabled
By the end of this section you will have configured the OAuth Consent Screen, needed for giving Nice access to your cloud project.
By the end of this section you will have the OAuth Client ID and Client Secret needed for Application Credentials setup.
The steps below use Web Application Auth with Nice to handle Google’s strict URL validation rules like requiring SSL and a publicly resolvable redirect URL. Desktop Auth has been deprecated by Google to improve security, and it can no longer be used with Nice.
https://auth.innovo.net/
You now have OAuth Client ID and OAuth Client Secret needed by Nice.
NOTE: You will need these two values and long one more described below to complete the integration.
Now that you have authentication configured, you will create a Nest Device Access Project which requires a US$5 fee. Once completed, you will have a Device Access Project ID.
It's highly recommended that you use the same email as the home account user you created at the start.
The Nest Device Access Console Pub/Sub setup process has changed as of January 23rd 2025. Please make sure you are using the latest version of Home Assistant..
This section describes how to configure your Device Access Project with a Pub/Sub topic to publish events for devices in your home. Home Assistant and the Device Access Project must be configured to use the Topic Name otherwise you will not receive events.
If you previously set up events, then your Device Access Project may have already created a topic for you and you can use that topic name. For new projects, or if you disable events, you need to create the topic yourself following the instructions below.
Go to the Pub/Sub Google Cloud Console.
Select Create Topic.
Enter a Topic ID such as nice-nest
. You may leave the default settings.
Select Create to create the topic.
You now have a Topic Name needed by the Device Access Console and Home Assistant. The full Topic Name that contains your Cloud Project ID and the Topic ID such as projects/<cloud console id>/topics/home-assistant-nest
.
Next, you need to give the Device Access Console permission to publish to your Topic. From the Pub/Sub Topic page select Add Principal.
NOTE: Save (copy and paste somewhere in a document, the Subscription Name, you will need to enter that in a few steps to complete the link between the Nest Thermostat and the Google Account)
In New Principals enter sdm-publisher@googlegroups.com
In Assign Roles under Pub/Sub select Pub/Sub Publisher and Create.
Now Visit the The Subscription Name Link and obtain the Topic Name. You will need that in the next step
Visit the Device Access Console.
If this is your first project, Click on Create Project:
If you have already done this in the past and just need to update it see the next section.
Give your project a name (this is not important but for your sanity keep it the same as the main project name. I like to use Nice-Nest)
Enter OAuth ID and click Next. This is the OAuth ID you created in the first project. This is a very long number ending in
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.apps.googleusercontent.com
Enter your Events Topic that you save from the previous step. Click on Create project
You should see the project page. Copy the project ID on the top, you will need this for the driver.
NOTE: This is the Project ID that you need to enter into the driver under project id. Do not use the project id from the OAuth screen setup.
If you have already create the project previously then you need to modify it as below. Otherwise skip this section.
Select the Device Access Project you previously created. It should show the Pub/Sub topic as disabled. If there is an existing topic shown, then you may delete it and use the one you just created to avoid getting them mixed up.
Select … next to Pub/Sub topic, then Enable events with PubSub topic.
Enter the full Pub/Sub Topic Name and select Add & Validate. If you see an error, then review the previous steps again and configure the topic and permissions.
NOTE: This is the Project ID that you need to enter into the driver under project id. Do not use the project id from the oauth screen setup.
In this section you will authorize Nice and Innovo to access your account by generating an Authentication Token.
See Troubleshooting below for steps to resolve the common misconfigurations that result in errors such as Can’t link… or Error 400 from Google.
The Google Nest permissions screen will allow you to choose which devices to configure and lets you select devices from multiple homes. You likely want to enable everything, however, you can leave out any feature you do not wish to use with Nice.
To Add / Change Thermostats, Repeat all the steps in Section 5 starting with Step 4.
• | You can manage devices and permissions granted to Nice in the Nest Partner Connections Manager. Repeat Steps in Section 5 starting with Step 4 to add / change tstats. See the SDM API Troubleshooting documentation for more details. |
• | Error 400: invalid_request plus a message about not complying with Google’s OAuth Policy for keeping accounts secure is shown when using App Auth or Desktop Auth or OOB Auth which has been deprecated by Google. Follow the steps in the previous section to upgrade Niceand restore access. |
• | Error 400: redirect_uri_mismatch means that your OAuth Client ID is not configured to match the callback URL. |
Google applies strict Redirect URI validation rules to keep your login credentials secure. In practice, this means that you must access the web app over SSL and a public top-level domain. See the documentation on Securing and note that you don’t actually need to enable remote access.
The OAuth Client ID used must be consistent, so check these:
e.g. double-check the photo and account name in the top right of the screen
Details about reauthentication issues
How to restart thermostat
• | No devices or entities are created if the SDM API is not returning any devices for the authorized account. Doublecheck that GCP is configured correctly to Enable the API and authorize at least one device in the OAuth setup flow. If you have trouble here, then you may want to walk through the Google instructions and issue commands directly against the API until you successfully get back the devices. |
• | Error 403: access_denied means that you need to visit the OAuth Consent Screen and add your Google Account as a Test User. |
• | Error: invalid_client no application name means the OAuth Consent Screen has not been fully configured for the project. Enter the required fields (App Name, Support Email, Developer Email) and leave everything else as default. |
• | Not receiving updates typically means a problem with the subscriber configuration. Make sure to check the logs for any error messages. Changes for things like sensors or thermostat temperature set points should be instantly published to a topic and received by the Nice subscriber when everything is configured correctly. |
• | View Messages You can see stats about your subscriber in the Cloud Console which includes counts of messages published by your devices, and how many have been acknowledged by your Nice View Messages subscriber. You can also to see examples of published. Many old unacknowledged messages indicate the subscriber is not receiving the messages and working properly or not connected at all. |
This guide is heavily adopted from here. There are a lot more troubleshooting tips. Visit this for further information or open a ticket at https://innovo.net/ticket