Nest Thermostat Device Type w/Multi-Tile

Sorry i’ve been silent I’m up north with the family for the holidays…

Are you seeing any errors in logs?

No nothing shows up in the live logging. The app just crashes and closes when I try to open that device. It appears it might be something I’m doing wrong because others have commented that it looks great…

Thanks, just saw this mentioned in the 2.0.8 thread… looks great. but a bit broken on my android with 2.0.8

Fonts are all random sizes :frowning:

That’s a SmartThings issue that they are working on.

This looks awesome though, brings the unofficial Nest Thermostat integration up to date with a more modern look! Will we be able to properly tie ST modes to Nest modes?

1 Like

I got this up and running only issue i have is that its not refreshing temperature until i manually press refresh button. Any way to do this automatically?

right now you will need to use:

How did you fix the crash? I am seeing this as well

I actually got it to work… not sure what I did to be honest.

One question… would it be possible to add two sets of toggles for the cool & heat multi-mode?

Those of us in Florida have occasion to need both

This may not be the ultimate solution but switch to cool mode set the temp and then heat and set the temp. Switch mode to auto and it should use those hot and cold temps.

Doesn’t seem to work. I set the individual temps but when I go back to dual mode the old values repopulate.

Any other suggestions?

Hmm… Sorry about that I thought that would work.
Well myself and a couple others in the community are working on an all new Nest app and devices. I’m hoping to have something out within the next few weeks for testing so I will make sure to add that to the list of items we address.

Is there a reason not to set this through the Nest app? Do you change these settings often through rules? Just want to know the scenario.

Setting them through ST takes time to make the call, there is some delays built in, so if you make to many changes it may not get pushed up to Nest.

I am looking at tweaking the layout, I like the Multi-tile, but it takes up a lot of real estate.

This device type does not use multi-tile and has separate heat and cool settings:

So, I attempted to use @tonesto7’s code above and it crashes the ST iOS app when I attempt to open the device for editing (to add S/N, password, etc…). Unsure why…

It’s crashing for me too. I filled in the nest email, password, and serial using the graph.api.smartthings to be sure it wasn’t a login issue, but still didn’t work. Does anyone have it working for iOS?

Are you seeing any error in

If you have that running when it crashes it could go a long way towards getting this fixed for you…

Yeah, just tried, but nothing shows up in the logs.

Actually just tried a few more times and noticed this…

5:40:38 PM: error Connection reset @ line 261

is there a way to change the temperatureUnit? i want Celsius.

If I remember correctly that value is coming from your Nest account. So if you see celcius on the nest app you should see celsius on the device.

Hi tonesto. The patch below makes the device type work in Celcius too (it wasn’t reading the location temp units properly, and forcing Fahrenheit via a single =). Apologies for the diff looking a bit odd… it was generated online… don’t currently have git going at home. Also, I’m not a Groovy programmer so if you do want to integrate it, maybe do a sanity-check first :slightly_smiling:

Out of interest, what does the question mark do in lines like:

Anyways, it would be great at some point if, when in Celsius, we could adjust by the half-degree (like the Nest does)… maybe at some point I’ll give it a go. Thanks for creating this branch!

67 67 command "coolingSetpointDown"
68 - command "setFahrenheit"
69 - command "setCelsius"
70 68 command “setTemperature”

315 314 }
316 - poll()
317 - }
318 -
319 - def setFahrenheit() {
320 - def temperatureUnit = "fahrenheit"
321 - log.debug "Setting temperatureUnit to: ${temperatureUnit}"
322 - sendEvent(name: “temperatureUnit”, value: temperatureUnit)
323 - poll()
324 - }
325 -
326 - def setCelsius() {
327 - def temperatureUnit = "celsius"
328 - log.debug "Setting temperatureUnit to: ${temperatureUnit}"
329 - sendEvent(name: “temperatureUnit”, value: temperatureUnit)
330 315 poll()

471 456 def cur = device.latestValue(“temperatureUnit”)
472 - def value = (unit = “F”) ? “fahrenheit” : “celsius”
457 + def value = (unit == “F”) ? “fahrenheit” : “celsius”
473 458 if (!cur || (value != cur)) {

513 498 }
514 - //log.debug "data.structure: " + data.structure
499 + log.debug "data.location.temperatureScale: ${location.temperatureScale}"
515 500

518 503
519 - setTempUnit(data?.temperature_scale?.toString())
504 + setTempUnit(location?.temperatureScale)
520 505 setFirmwareVer(data?.device?.current_version)