Nest Thermostat Integration - Ready for newbies?

I'm a recent Wink convert and learning my way around HE. I've discovered the Hubitat package manager and through HPM found that there is a recent app to allow access to Google Nest devices - Google SDM API - Nest Integration.
I'd like my HE to have some Nest features for my 3 thermostats, but after adding the app through the package manager and reading through some of the discussions here in the community, I'm wondering if this is over my head.
Right off the bat after installation, I need to provide input for "Google Device Access - Project ID" and "Google credentials.json"
I can follow documentation if there are step-by-step guides, but without that, I'm lost.
Is this still part of the world of the guys that know the magic of scripting and code? Or is there hope for non code-monkeys like me?
Any help is greatly appreciated,
KC

1 Like
1 Like

Iā€™d say the Hubitat side is pretty straightforward but Google has made it confusing on their side.

The above linked thread has a good tutorial and is active with help.

1 Like

This worked for me, but it was probably the most complex thing I've ever setup for home automation. It didn't help that I didn't follow directions (missed a step somewhere along the line).

The README file outlines the steps to setup, with links to Google documentation. Note that this requires that you have migrated your Nest devices to a Google account, and registered for the Device Access program (a one-time $5 fee to Google). If you run into trouble, reply to the main thread (linked above) and I'll try to help narrow down the problem.

I am having issues pasting the json I paste it and it creates an error

Can you share the error and any logs generated around the same time, to troubleshoot?

Not sure what Techie85 is getting, but I'm getting: app:13552021-05-25 01:49:50.347 pm errorgroovy.json.internal.Exceptions$JsonInternalException: unexpected character c on line 168 (mainPage)

1 Like

Would you mind sending me a DM with the JSON you are pasting? Seems like the code is unable to parse it...

This integration is very detail oriented. I have my Nest thermostat controlled from Hubitat and the complexity is mostly on the Google side. I can try and help others, but as pointed out, there are a lot of trivial details that have to align to make this work

Were you able to resolve the error? I'm getting a similar error: groovy.json.internal.Exceptions$JsonInternalException: unexpected character k on line 191 (mainPage)

3 Likes

Double-check that your credentials file is valid JSON. If you're not sure, you can DM me the contents and I would be happy to double-check it.

1 Like

Just circling back with an answer for any who may come later - in DMs we identified that the full JSON file had not been pasted in the input field (only a part), which led to this error

1 Like

So, I got everything installed no errors, everything looks good, but it isn't actually altering the state of my thermostat. I have the new 2020 Google thermostat, I am wondering if maybe it's a driver issue. Do you happen to know anything about it? Thank you by the way, super complicated process but your readme made it very easy!

Is the issue that device changes in Hubitat don't actually adjust the physical thermostat, or that the thermostat changes don't update in Hubitat?

If the latter, it sounds like an issue with the Google event subscription. Enabling debug logs from the App page will log each event as it is received - you should get one for each change on the thermostat, e.g. setpoint changes, ambient temperature, active cooling/heating/idle.

If not, then from the App page, click on debug buttons, then subscribe to events. This is executed automatically during authorization but may have failed. After invoking the debug button check the logs for any errors that may have been generated.

Thank you! I'll work on it and see what I can figure out.

I've followed the excellent instructions and it seems to work mostly. I can turn the thermostat on and off, but manually or programatically setting a temperature doesn't seem to work at all.

My thermostat is only controlling heat, no cooling, and so if I go to SetHeatingSetpoint and punch in a temp and click the button, the Nest app on my phone doesn't reflect that temperature change.

I can turn the heater on and off from there though. Any thoughts?

For any commands that are failing, can you make sure debug logs are enabled for both the Device and App, run the attempted command, and capture the relevant logs?

well it's weird I turned on logging but there's nothing there, although the data is shown in the thermostats status. I currently have a Rule Machine 5 rule that's supposed to trip when the thermostat temp dips below 40, it's at 39.5 now and it hasn't run. So I'm trying to figure out what went wrong.

Next I turned it on for Google SDM API and now I'm getting somwehre it says that I don't have Cloud Pub/Sub API has not been used or is disabled and gives me a URL. This was the one part of the instructions that didn't seem to line up, there was only a setting which said "Enable" near Pub/Sub and I made sure it was on (it was by default) the other instructions around this didn't match anything there so I thought it was okay.

clicking the URL I've now set up permissions so we'll see if it works. Weirdly I was able to trip most functions manually from the controls on the device, so I thought this was working. I did not even get the notification from my Rule that the temp had fallen.

After waiting a bit I see the pub/sub subscription has occurred. no error, just debug and info now so I think that end is working, waiting to see if the next temp event causes this to run or not?

Pretty sure this was the problem with the events though because now I see log events from the thermostats that I wasn't seeing before. Will further debug the temp set point thing not working in a bit. Thank you for this awesome work!