Closed idatum closed 1 year ago
As far as I see it, this problem consists of two parts:
metadata updated
event is emitted, in which applications are informed about the the new scale/unit of the value. You can see this (without the actual contents) in your log:
2023-04-03 15:44:29.886 INFO Z-WAVE: [Node 053] Metadata updated: 49-0-Air temperature
2023-04-03 15:44:29.890 INFO Z-WAVE: [Node 053] Value updated: 49-0-Air temperature 21.5 => 21.5
Looks like Z-Wave JS UI does not evaluate that event correctly, so you get a mismatch between the value and the scale/unit.
Is your problem within Home Assistant (Core or Z-Wave JS Integration)?
NO, my problem is NOT within Home Assistant or the ZWave JS integration
Is your problem within Z-Wave JS UI (formerly ZwaveJS2MQTT)?
Yes, my problem is within Z-Wave JS UI
Checklist
[X] I have checked the troubleshooting section and my problem is not described there.
[X] I have read the changelog and my problem was not mentioned there.
Describe the bug
What causes the bug? Starting with Z-Wave driver version 10.12.0, server version 1.27.0, my Honeywell T6 Pro thermostat returns a Celsius value for [53-49-0-Air temperature] (air temperature) instead of Fahrenheit. I have [53-112-0-2] Temperature Scale set to Fahrenheit (value 0). Either hitting Refresh in Z-Wave JS UI Multilevel Sensor v5 or a reinterview causes the value to incorrectly switch. Also, it will periodically switch values on its own (no manual steps).
What do you observe? I can rule out Home Assistant since both the Z-Wave JS logs (debug logs attached) and MQTT values show the incorrect C value. The value will sometimes correctly show F, then incorrectly switch to C, and so no. A manual refresh or reinterview will always incorrectly show C. I can temporarily fix by toggling temperature scale F --> C --> F. Workaround: Add "Air temperature: Fahrenheit (°F)" to Preferred scales under Z-Wave Settings.
What did you expect to happen? Z-Wave JS should always return Fahrenheit values for thermostats if temperature scale is explicitly set to Fahrenheit. I should not have to set Preferred scales as a workaround.
Steps to reproduce the behavior:
T6_thermostat_F_issue.log
Device information
Manufacturer: Honeywell Model name: T6 Pro Z-Wave Programmable Thermostat TH6320ZW Node ID in your network: 53
How are you using
node-zwave-js
?zwave-js-ui
(formerlyzwavejs2mqtt
) Docker image (latest)zwave-js-ui
(formerlyzwavejs2mqtt
) Docker image (dev)zwave-js-ui
(formerlyzwavejs2mqtt
) Docker manually built (please specify branches)ioBroker.zwave2
adapter (please specify version)HomeAssistant zwave_js
integration (please specify version)pkg
node-red-contrib-zwave-js
(please specify version, double click node to find out)Which branches or versions?
version: 10.12.0
node-zwave-js
branch:zwave-js-ui
branch:Did you change anything?
no
If yes, what did you change?
No response
Did this work before?
Yes (please describe)
If yes, where did it work?
I previously did not need to set Preferred sacle to get the correct Fahrenheit air temperature value. This has worked for several versions (almost 2 years).
Attach Driver Logfile
zwavejs_current.log