core: Sensor temperature reading doesn't match Z-wave reported value

The problem

A new Zooz ZSE40 700 series multi-sensor is reporting a temperature reading 90 degrees F higher than ambient temp. After a hub reboot (no waking of the device, just a hub reboot) the reported temp came back into reality for a couple hours and then shot back up to about 90 degrees over. The device’s temp reading follows the ups and downs during the day but are always about 90 degrees higher than ambient temp.

This is where it gets even more interesting. Looking at the Z-wave JS logs I can find the device’s logging and the reported temp is accurate. So while the z-wave communication suggests accurate readings, somewhere after that the temp reading gets ~90 degrees added to it.

Attached is an image of the history report for the device. Attached is the z-wave JS log showing the accurate temp being sent. Attached is the device page showing the bad reading.

ZSE40_700_temp_history_graph ZSE40_700_zwave_log.txt ZSE40_700_device_page

What version of Home Assistant Core has the issue?

2021.12.3

What was the last working version of Home Assistant Core?

No response

What type of installation are you running?

Home Assistant OS

Integration causing the issue

Z-wave JS (possibly)

Link to integration documentation on our website

No response

Example YAML snippet

No response

Anything in the logs that might be useful for us?

2021-12-18T23:21:22.831Z SERIAL « 0x011000040025083105014a1ba03105bb008d                              (18 bytes)
2021-12-18T23:21:22.832Z CNTRLR   [Node 037] [Multilevel Sensor] Air temperature: metadata updated  [Endpoint 0]
2021-12-18T23:21:22.833Z CNTRLR   [Node 037] [~] [Multilevel Sensor] Air temperature: 70.14 => 70.7 [Endpoint 0]
2021-12-18T23:21:22.833Z SERIAL » [ACK]                                                                   (0x06)
2021-12-18T23:21:22.834Z DRIVER « [Node 037] [REQ] [ApplicationCommand]
                                  └─[MultilevelSensorCCReport]
                                      type:  Air temperature
                                      scale: Fahrenheit
                                      value: 70.72

Additional information

This is the first 700 series z-wave device I have installed. I have 2 dozen other z-wave devices working fine, including 4 other temp\humidity sensors. All devices are z-wave plus. The device in question is about 25 feet from the hub with no barriers other than a closet wall.

Hub hardware is an Intel NUC10i7, Samsung 970 EVO Plus SSD, 16 GB DDR4, Zooz Z-Wave Plus S2 USB stick.

All HA updates and integration updates have been applied. Nothing in the HA logs looks out of the ordinary.

About this issue

  • Original URL
  • State: closed
  • Created 3 years ago
  • Comments: 30 (13 by maintainers)

Most upvoted comments

I think the unit of measurement of the entity is static after the entity has been created. If the unit in the driver changes during runtime, then HA does not recognize that, and so if the initial unit was fixed to C, any new F values would be incorrectly converted. The unit should either not be fixed, or HA should properly handle the "metadata updated" event, if the driver is properly sending that. Currently HA ignores that event if the value ID has already been discovered.

A restart of HA should also fix it if the units change.

zwave_js_dump.txt

I should have thought of including a network dump. It is attached here renamed with a txt extension.