Nest device type with a bunch of new features

@notoriousbdg - this is awesome! thanks so much for putting it together.
I think I’m right at the 1 yard line, but keep getting “Error: an unexpected error occurred” in the iOS app when I try to refresh.

Live Logging points to line 521 where it appears to be trying to login to the nest website with my device properties.
Debug message indicates "need to login"
Error message indicates "groovyx.net.http.HttpResponseException: Bad Request @ line 514"
which is where login parameters are defined.

I’m wondering if the Nest login url (https://home.nest.com/user/login) is no longer valid? Not sure what else could be the issue.

Many thanks for all the hard work - sorry I’m not sure where I’ve gone wrong.

Noob.
Cannot for the life of me figure out where to put in the Nest serial number to get it to connect.
If I wanted to turn on debug mode to see what is happening what would I do in the code?
That way I could at least see what it thinks the serial number is and find that data to replace the correct data with to get it to connect.

Followed all the way through till the bottom when the directions get kinda vague for someone starting out.

Like Robert, this is all very new to me. I was able to complete all of the steps up to entering my Nest serial number. I’m having trouble figuring out where to put it.

Thanks!
Todd

This is more a question about the Nest API as it appears the current device type doesn’t support it, but it is possible to control humidity for the Nest through the API?

Jeff

This code is so awesome. Thank you so much. I still cannot get a temperature reading on the tile and when I use buttons vs. sliders, I’m not able to go past 67 (higher, e.g. 68, 69) on heat mode. So I changed it back to sliders. It looks like the code I’m using is the latest, so just wanted to see why these issues could persist if it looks like updates to the code fixed it.

Once again, thank you!

Adam

If you followed everything correctly, then click on the thing tile for Nest, go to the bottom to preferences, and you’ll enter your login/serial there. The first time I did not follow everything correctly and I didn’t have this option under preferences. I found copying/pasting code exactly was the best way to get it working

Thanks Adam. After copying and pasting the code, I saw the preferences options. Working great now!

Thanks,
Todd

This is great. I have one issue…when I go to change the current thermostat settings(I.e: it’s set at 69 and want to make it 68), I hit the down arrow and sometimes it works, sometimes it doesn’t. I had this issue with @Dianoga’s original code too but his threw an error in the app when that happened. I did not have this issue with @pstuart’s Nest device type, but couldn’t get temperature sensor working with other apps on his. Any ideas why it works sporadically?

I’m having a similar issue with Dianoga’s version of the Nest device type. I was testing a Hello, Home action where the heating temp would be set to 68 when executing the action. I manually set the temp to 67 degrees. I then manually executed the action. It said the temp was set to 68 degrees. However, when I opened and refreshed the Nest device, it was still at 67 degrees. The same issue occurred if I pressed the temp up button, and it often wouldn’t change. However, if I changed to the action temp setpoint to 69 degrees, it worked. Give the two versions are fairly similar, it seems the issues are similar.

I’m not certain if this is related, but it appears I could more often change the temp when the device status was idle. If it was heating, I had trouble changing the temp setpoint from 67 to 68.

This is great work - Thank you for the updated device type code! I have updated the device type for my two Nests and they work great now.

Some open questions:

  1. I am using the iOS app: I can’t get the background colors for the control tiles (I am using the up/down arrows) to show? It works in the simulator but not in the app. Also I got it to work for other device types (e.g. switches) to change based on their state. Any ideas?

  2. The code works great in “Auto” (e.g. 50-90) but when I change to “Cool” (and tap the refresh tile) the coolingSetpoint tile shows “–” and the heatingSetpoint tile shows the previous heatingsetpoint value (90). Same when I switch to “Heat”, the heatingSetpoint tile shows “–” and the coolingSetpoint tile shows the previous coolingsetpoint value (50). Has anyone else found this? I tried to look through the code but did not find how to fix this.

  3. Any idea what triggers the devicetype update to be pushed to the app in iOS? I save, pulish to self, run the simulator, edit my devices… but it does not always push the update to the app? Also waiting a couple of hours does not always help.

Thank you!

@Mbhforum and @cdallum, I just checked in a fix to the error preventing setting the setpoint to 68 F.

I was not able to get it to work on Android either.

I can’t speak for IOS, but for Android swiping the app away on the task switcher and relaunching the app is pretty reliable. Is there a way you can close and reload the app on IOS?

I’m not seeing the same behavior on Android. I have seen odd behavior if you change the device type and don’t restart the SmartThings app to ensure the latest version is being used.

Looks good now. I will keep you posted. Thanks!

I will give your device type a try over the weekend. Thanks for such great work!

I tried the updated code, and I can now successfully change the heat setpoint to 68 F. Looks great, thanks!

I’ve been using this code for some time and things have been going very well.

I’m in LA and the weather recently got hot so I switched my nest to cooling mode. Now all of the triggers (mostly hello home phrases) I have set up to change the nest temperature no longer work.

I checked the log and I am getting a

java.lang.NumberFormatException @ line 442

any ideas?

I’m using the latest code from github.

I am pretty new to code/smartthings but have this set up so I can see it on my Android device and was able to enter my credentials. I am now getting the following error:

error java.lang.NullPointerException: Cannot get property ‘uri’ on null object @ line 525

I am mostly looking to be able to control Home/Away on the Nest with the automatic mode changes based on my wife’s and my presence. All of the other things are just a bonus to me.

To remedy this in the meantime I am running a Tasker profile that is triggered off the notification from smartthings to perform this with virtual taps.

Any help would be greatly appreciated.

As of yesterday afternoon, ST stopped communicating with my Nest thermostat. If I change the temperature setting, nothing happens. I haven’t changed anything on ST nor the Nest. Anyone else seeing a similar issue?

I’m having the same error in logging that fattymatty20 is having, sadly. I believe I followed the instructions on GH correctly. When I hit refresh on the device, I also get a “Logged in” message along with some Nest user info fyi, so I think I entered the credentials properly.

After posting on this thread, I found another thread discussing a recent ST platform update that appears to have broken connecting to Nest. Here is the thread:

1 Like

So out of nowhere and not doing anything else after my post from a day or two ago everything is now working! I am at work but changes made from the ST app are reflected almost immediately (couple of second delay) in the nest app. I am very happy. Thank you for the work to get this up and running for us.