Nest Thermostat Device Type w/Multi-Tile

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 https://graph.api.smartthings.com/ide/logs?

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 java.net.SocketException: 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:
setFirmwareVer(data?.device?.current_version)

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)

Anthony @tonesto7 could you just take over writing all the smart app please. This is beyond fabulous. Thank you!

Are you using Nest Manager?

Yes, I probably posted this in the wrong thread.

1 Like