Skip to content
This repository has been archived by the owner on May 17, 2021. It is now read-only.

[Nest] Bug: unable to set temperature to .5 °C values. #3944

Closed
oaksboard opened this issue Jan 31, 2016 · 7 comments
Closed

[Nest] Bug: unable to set temperature to .5 °C values. #3944

oaksboard opened this issue Jan 31, 2016 · 7 comments
Assignees

Comments

@oaksboard
Copy link

Setting temperature to say 19.5°C results in temperature set to 19.0°C. The half degree Celsius is always stripped away.

This is my item (as of binding example):
Number living_room_target_temperature_c { nest="=[thermostats(Living Room).target_temperature_c]" }

Even if sending the update command from console, after a short while it re-reads the set value as 19.0°C:
osgi> openhab update living_room_target_temperature_c 19.5 Update has been sent successfully. osgi> openhab status living_room_target_temperature_c 19.5 osgi> openhab status living_room_target_temperature_c 19.0

NB: if temperature is set from Nest App it is reported correctly everywhere, so the problem seems to be with sending the value to Nest, not handling it.

(openHAB 1.8.0 on debian RPi B+, org.openhab.binding.nest-1.8.0.jar)

@watou watou self-assigned this Feb 1, 2016
@watou
Copy link
Contributor

watou commented Feb 1, 2016

Do you have the Thermostat read/write permission set in your product? I am not presently able to test setpoint changes against a Nest thermostat, but if you could provide TRACE logging from the binding, it would help identify the issue. The binding sends whatever BigDecimal value you provide, so I would like to see the JSON.

@oaksboard
Copy link
Author

Hello watou, yes, i have read/write permission to the thermostat, because if I set the temperature to e.g. 20°C it works correctly.

Here the TRACE log of the command "set temperature to 19.5°C":
2016-02-01 11:19:49.759 [TRACE] [.o.b.nest.internal.NestBinding] - internalReceiveCommand(item='living_room_target_temperature_c', command='19.5')
2016-02-01 11:19:49.766 [DEBUG] [.o.b.nest.internal.NestBinding] - About to set property 'thermostats(Living Room).target_temperature_c' to '19.5'
2016-02-01 11:19:49.781 [TRACE] [.o.b.nest.internal.NestBinding] - Data model for update: DataModel[devices=DataModel.Devices[thermostats={REDACTED=Thermostat[device_id=<null>,name=<null>,locale=<null>,software_version=<null>,structure_id=<null>,name=<null>,name_long=<null>,last_connection=<null>,is_online=<null>,can_cool=<null>,can_heat=<null>,is_using_emergency_heat=<null>,has_fan=<null>,fan_timer_active=<null>,fan_timer_timeout=<null>,has_leaf=<null>,temperature_scale=<null>,target_temperature_f=<null>,target_temperature_c=19,target_temperature_high_f=<null>,target_temperature_high_c=<null>,target_temperature_low_f=<null>,target_temperature_low_c=<null>,away_temperature_high_f=<null>,away_temperature_high_c=<null>,away_temperature_low_f=<null>,away_temperature_low_c=<null>,hvac_mode=<null>,ambient_temperature_f=<null>,ambient_temperature_c=<null>,humidity=<null>,hvac_state=<null>]},smoke_co_alarms=<null>,cameras=<null>],structures=<null>]
2016-02-01 11:19:49.821 [TRACE] [b.n.i.messages.AbstractRequest] - About to execute 'https://developer-api.nest.com/?auth=REDACTED'
2016-02-01 11:19:50.449 [TRACE] [b.n.i.messages.AbstractRequest] - About to execute 'https://firebase-apiserver11-tah01-iad01.dapi.production.nest.com:9553/?auth=REDACTED'
2016-02-01 11:19:51.394 [TRACE] [b.n.i.messages.AbstractRequest] - {"devices":{"thermostats":{"REDACTED":{"target_temperature_c":19}}}}

And here a sequence (shortened for the post) where you can see, that setting temperature to 20.0°C works:
We received this event (item='living_room_target_temperature_c', state='19.0') from Nest, so we don't send it back again -> ignore!
About to set property 'thermostats(Living Room).target_temperature_c' to '19.5'
We received this event (item='living_room_target_temperature_c', state='19.0') from Nest, so we don't send it back again -> ignore!
About to set property 'thermostats(Living Room).target_temperature_c' to '19.5'
About to set property 'thermostats(Living Room).target_temperature_c' to '20.0'
We received this event (item='living_room_target_temperature_c', state='20.0') from Nest, so we don't send it back again -> ignore!
About to set property 'thermostats(Living Room).target_temperature_c' to '19.5'
We received this event (item='living_room_target_temperature_c', state='19.0') from Nest, so we don't send it back again -> ignore!

@watou
Copy link
Contributor

watou commented Feb 1, 2016

Interesting; thanks!

@watou
Copy link
Contributor

watou commented Feb 1, 2016

Would you mind giving this JAR a thorough workout to see if it fixes the problem and doesn't create new ones?

@oaksboard
Copy link
Author

OK, I will.
One question: as I installed openHAB by "apt-get" on debian, should I remove the bundle with "apt-get remove" first or simply rename the 1.8.0 jar file before copying the 1.9 snapshot over?

@watou
Copy link
Contributor

watou commented Feb 1, 2016

as I installed openHAB by "apt-get" on debian, should I remove the bundle with "apt-get remove" first or simply rename the 1.8.0 jar file before copying the 1.9 snapshot over?

Assuming you're on openHAB 1.x, I would just move the existing binding JAR out of the addons directory and move the test JAR into its place, without any file renaming.

@oaksboard
Copy link
Author

Yes, I am on openHAB 1.8.0.
With the test JAR in place everything works as expected! I can now set 19.5°C and it will show up on the thermostat.
No other issues detected, so far.
Thank you for your quick replies!

watou added a commit to watou/openhab that referenced this issue Feb 1, 2016
Signed-off-by: John Cocula <[email protected]>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants