Nest device type with a bunch of new features

I found that you need to close the SmartThings app and open it again for the changes to show immediately. On Android, just swiping the app from recent tasks list is enough to close the app.

I am using iOS, I see colors in acitvity/log but not in app tile.

I’m having the issue that tamaracks is having with the home/away toggle. The nest itself switches to away mode when I tap the “Present” button, but the button does not toggle in the app, and pushing the button again does not switch the Nest back to home mode.

1 Like

I’m having an issue where none of the available Nest device types seem to accurately report the home/away state of my thermostat. I use a SmartApp to trigger away mode when I’m out of the house yet the nest device in my SmartThings app almost always still shows the thermostat as being “home”. Anyone know why this is? I also get confused by all the different fan states, such as circulating, fan only, auto, etc…

I am using iOS. I could have sworn I tried killing the app and relaunching it yesterday, but I tried it again today and this time I did get the tiles to update. Go figure. So that’s working now.

I am still having trouble with the presence tile. It shows present, even though the Nest is currently away. I’m not sure why it would work for some people but not others.

I have same issue. I have 3 nests … could multiple nest be an issue ?

I have 2 Nests and home/away is working fine. I’m starting to suspect that the issue might be an IOS vs. Android issue. If you toggle to away mode then kill and restart SmartThings app, does it still report the wrong state?

Tapping present when the Nest is in Home mode changes it to Away but does not change the tile. Killing the iOS app and restarting it does not reset the present tile to away. Tapping the present tile again (while the Nest is in away mode) does not do anything after restarting.

I believe I found the issue, but since I can repro the issue on my phone, can you please test the latest version i just updated at https://github.com/notoriousbdg/device-type.nest?

That works for me. I still have to toggle to C/F selector to get the initial reading, but after that, changing the target temp and adjusting the presence works as expected. Thank you!

Seems close, though there’s something I’m not sure about.

Is there a difference in the state between away and auto-away? My Nest was in auto-away, according to the Nest app on my phone. When I loaded up the new device type code in the SmartThings app, the presence tile still said that it was present. I tapped it once, and the tile changed to Away.

I tapped the tile again, and it changed to present, but when I checked the Nest app, it was still in auto-away. I am not 100% certain about that, though. There’s a possibility that it was just a timing thing and I needed to wait longer.

So, potentially, I see an issue with the SmartThings device type not recognizing that a Nest is already auto-away, and an issue with it not setting the Nest to Home when it’s in auto-away. I’ll have to do more testing, but that requires waiting until the Nest is in auto-away again.

1 Like

Works for me now. Great work! Thanks!

I run my Nests in Auto mode. They have both heating setpoints and cooling setpoints active.
I can set the cooling setpoint just fine. When I move the heating setpoint slider I get the following error in Live Logging and the heating setpoint does not change:

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

Since your Github did not have issue tracking enabled, I found that @Dianoga appears to have incorporated this code into his Nest device type, so I filed an issue on his Github for the Nest Device Type.

Are you running the latest version of the device type? I fixed an issue with the heating setpoint last week.

Yes, I pulled the latest code and was testing it out. That’s when I found the issue and posted about it.

It doesn’t seem to occur every time. For example, I just launched the SmartThings App on my phone (iPhone) after not being in it for some time today, went to Things, clicked on one of my Nests and moved the heat slider from 69 to 49 just testing and received the error message in the logs that I posted earlier. I waited a second and tried again and it worked. I backed out and went back into the Nest and tried again and it worked. I’m not sure what the pattern is.

When it doesn’t work, the degree indicator for heat in the device type to the left of the slider doesn’t change to the new temperature and the Nest doesn’t show the new temperature setting, however the slider stays at the new desired setting. I have been able to just grab the slider from the now mismatched setting and move it again and have everything (slider, degree indicator, and Nest’s display) finally change. I have also been able to back out of the Nest device, then go back into it and change it successfully after this happens.

Here are 2 logs events back to back. The top was the second change that succeeded. The bottom is the first change attempt that didn’t work. I removed tokens and such from the logs and replaced with a comment that I removed that information.

82905b0e-498d-43d1-a6f0-1b94ad4692bc 5:47:06 PM: debug [touched_by:[:], auto_away:0, auto_away_learning:ready, hvac_heat_x3_state:false, compressor_lockout_enabled:false, hvac_alt_heat_state:false, target_temperature_type:range, hvac_heater_state:false, hvac_emer_heat_state:false, can_heat:true, compressor_lockout_timeout:0, hvac_cool_x2_state:false, target_temperature_high:23.3333333333, hvac_aux_heater_state:false, hvac_heat_x2_state:false, target_temperature_low:17.2222222222, hvac_ac_state:false, target_temperature:23.3333333333, hvac_fan_state:false, target_change_pending:true, name:Living Room, $timestamp:1415663226433, $version:-15730, current_temperature:20.87, hvac_alt_heat_x2_state:false, can_cool:true]
82905b0e-498d-43d1-a6f0-1b94ad4692bc 5:47:06 PM: debug Calling get : /v2/mobile/user.294972 : []
82905b0e-498d-43d1-a6f0-1b94ad4692bc 5:47:06 PM: debug Logged in
82905b0e-498d-43d1-a6f0-1b94ad4692bc 5:47:06 PM: debug Executing 'poll’
82905b0e-498d-43d1-a6f0-1b94ad4692bc 5:47:06 PM: debug Calling post : /v2/put/shared.02AA01AB46120E5W : [target_change_pending:true, target_temperature_low:17.2222222222]
82905b0e-498d-43d1-a6f0-1b94ad4692bc 5:47:06 PM: debug Logged in

82905b0e-498d-43d1-a6f0-1b94ad4692bc 5:46:56 PM: error java.lang.NullPointerException: Cannot get property ‘uri’ on null object @ line 496
82905b0e-498d-43d1-a6f0-1b94ad4692bc 5:46:56 PM: debug Logged in
82905b0e-498d-43d1-a6f0-1b94ad4692bc 5:46:56 PM: debug [limits:[smoke_detectors_per_structure:18, thermostats:10, thermostats_per_structure:10, smoke_detectors:36, structures:2], is_staff:false, email:removed email, urls:[direct_transport_url:https://transport01-rts05-iad01.transport.home.nest.com:443, weather_url:http://weather.nest.com/weather/v1?query=, transport_url:https://transport01-rts05-iad01.transport.home.nest.com:443, support_url:https://nest.secure.force.com/support/webapp?, log_upload_url:https://log-rts05-iad01.devices.nest.com/upload/user, rubyapi_url:https://api-rts05-iad01.home.nest.com/], weave:[service_config:removed random characters, access_token:removed random characters, pairing_token:removed random characters], is_superuser:false, userid:removed userid, expires_in:1418255216000, language:en_US, user:removed userid, access_token:removed random characters…[TRUNCATED]
82905b0e-498d-43d1-a6f0-1b94ad4692bc 5:46:56 PM: debug Calling post : /v2/put/shared.02AA01AB46120E5W : [target_change_pending:true, target_temperature_low:8.8888888889]
82905b0e-498d-43d1-a6f0-1b94ad4692bc 5:46:56 PM: debug Logged in

This is very cool. Thanks for making this!

I did some testing, and I am only able to repro the error below 50 F and above 95 F. Those also happen to be the limits within the Nest app too. I think the best way to fix this is to not let set points go out of the supported range. Are you seeing the error when you set the temperatures between 50 F and 95 F?

1 Like

I believe you are right. I moved the slider down below 50 and received the error as long as I tried to set the temperature below 51. If I went to 51 on the heat, it saved without an error. On cooling, I saw the same if I went above 89.

I am not sure why our points that cause the error are different (my lowest heat without error = 51, yours = 50, my highest cool without error = 89, yours 95), but at least I know how to prevent the issue. I thought it might be related to the “Safety Temperature” that I have configured in my thermostat but my values do not match where the error begins. My Safety Temp values are lowest heat 45, highest heat 95.

Nonetheless, it’s not realistic to set the sliders to such a low/high temp. I think you are correct, a max/min on the sliders would prevent the error from happening when someone like myself just tests it out by sliding beyond it’s capability.

You are correct. I had a typo with 95 F. I updated the device type to not allow setting temperatures < 51 F and > 89 F and < 9 C and > 32 C.