Nest Integration with Home Assistant
If you are getting strange errors or errors related to your application credentials OR you have done this integration before but are starting over, you need to delete your application credentials.
Select Application Credentials from the Home Assistant Integrations page. You can type "c" on your keyboard for a shortcut menu to navigate to the integrations page.
Once on the Application Credentials page, select the Nest credentials you already have stored and click the "Remove Selected" option.
This will erase the credentials and allow you to store the new credentials you create during the integration process.
With the above out of the way, continue reading the rest of the content below!
If you follow along with my YouTube channel, you'll know that I published a video on how to integrate Nest with Home Assistant "the easy way". Soon after publishing that video, Nest (Google) deprecated the desktop app auth, and anyone who hadn't already set things up before Feb 2022 had issues authenticating. The only way it would work is to use test mode and that requires re-authenticating every 7 days. Who wants that?
So what happened? It's best explained by the Home Assistant alerts page. Below is a snippet from that page.
The OAuth out-of-band flow was designed to support native applications that cannot support a redirect URI like a Web application, which was convenient for Home Assistant since it is difficult for end Home Assistant users to set up SSL certificates and DNS needed for a secure Web endpoint. However, Google has deprecated the OOB flow as it introduces a phishing risk. New users are no longer allowed to create new Desktop auth credentials and existing users will no longer work starting October 3, 2022.
2022.6 the Web Auth OAuth2 flow uses the My Home Assistant redirect URL which handles SSL. This is what allows new signups for Web Auth as the new recommended approach.
Fast forward to July 2022 and there is now a working, and hopefully permanent, solution. Of course, this is all dependent on the big tech and cloud players working with us to NOT break things as they change their methods. Local control and local APIs are ALWAYS the best ways, but not always available.
As noted above, using the "My Home Assistant" button is the easiest way to make all this work now. You no longer need to worry about SSL certificates, DNS, open router ports, etc. You simply use the URI: https://my.home-assistant.io/redirect/oauth as your authorized redirect URI.
Clicking the Add Integration button will start you through the process of installing the integration and configuring things on the Google side.
This is going to be much more beneficial if you watch my latest video since I go through each step of the setup process.
There is also an official wiki page that goes through everything step-by-step. Included in that wiki is a troubleshooting section. If you run into issues setting this up, make sure you check there for solutions to the most common problems.
As I was setting this up, I did make a fairly common mistake and that is because of terminology. Make sure you do not confuse the Device Access Console project ID with the Google Cloud Project ID. When setting up the integration, there will be specific spots to fill in both of these items. Pay attention to which one is asked for.
Device Access Console Project ID Example
Google Cloud Project ID Example
One final note about this integration. There is specific hardware that Google makes available via this API. These three are the only ones available as of this writing.
Smoke and CO Alarms or Security systems are not currently supported by the SDM API. I have been waiting a long time for my Nest Protects to be supported, but I'm going to have to stop holding my breath on this as I don't know if they ever will be.
Take a moment to watch the video, subscribe to the channel AND this newsletter, and let me know what you think in the YouTube comments or over at my Discord server.