Wrong unit conversion used for temperature reporting on Aeon 4-in-1 Multsensor (dsb05) via Zwave-JS

Hey folks,
I’m trying to give some new life to an old gen5 Aeon Labs multisensor (dsb05).
It seems to be reporting temperatures back that have been inappropriately converted.
For example, if it is ~69F in a room, the sensor reports ~157F, which just so happens to be about 69C. I’m guessing that the temperature value HA is getting from the device is already in F, but it’s “converting” it to F, again, incorrectly.

I can live with this - honestly I’m just going to use this to alert on a very cold part of the house with the potential for pipes freezing, so the values aren’t so important, it would just be nice not to have to do math to figure out what temperature the sensor was reading.

The forum is telling me I can only put two links in a post, so I guess I’ll follow up with the research I’ve done.

1 Like

I’ve done some poking around, and found some stuff:

I just added one of these to my newly created HA z-wave network (moving from HS -Z-NET) and had the same results. After about 2 hours, it started displaying the correct temp. in F.

I did change reporting group 1 members and timing. I also changed Motion Sensor Report Type to Send to “Binary Sensor CC Report”

I have an Aeon multisensor 6. It is supported according to the database.

https://devices.zwave-js.io/

I do not see the multisensor dsb05. Is Z-Wave js recognizing it as a ZW100? Have your tried adjusting parameter 64?

From the DB

64
Read/Write Automatic Temperature Reporting Unit

Possible Values:


Value        Label
1            Celsius
2           Fahrenheit

Yeah, saw that. Different sensor.
This is what I have. Z-Wave JS Config DB Browser

This has been going overnight, still wrong.

Is there any chance the 157 is actually 15,7/15.7. That would put the temperature at 60.3 F. Any chance the sensor is off a little bit? I remember that I had sensors that did this. Could be completely off base.

You probably already have it, but here is the GEN 5 manual for the 4 in 1

It is still on the AeoTec website. No mention of changing units in there. Thanks though.

I don’t think so. Here’s the readout from the Multisensor:
image
And then the thermostat about 5’ away is reading 66.8 for the same time.

The multisensor would be about 69F if it was double-converted as I suspect.
If it’s 15.64 as - that would be about 60F - which is further away from the target temp.
I suppose I can put it somewhere cold overnight to confirm.

Confirmed that the reading is 1.8 * the actual temp + 32.
Definitely thinks the reading is in C and is helpfully converting it.

Have you thought about a template sensor? Like this:

#--------------------------------------------------------------------------------------------------
#  Fix temperature sensor
#--------------------------------------------------------------------------------------------------

template:
  - sensor:
      - name: "Aeon converted temperature"
        unit_of_measurement: "°C"
        state: >
          {% set orig_temp =  states('sensor.yourtemp') | float %}
          {% set final_temp = ((orig_temp - 32) / 1.8) - 32) / 1.8 %} 
          {{ (final_temp | round(1, default=0) }}type or paste code here

This will make it C and it should convert to F

The entity will be sensor.aeon_converted_temperature

I didn’t know that existed - and I’m sure I’ll check it out at some point… but this just happened.
image
I think it started reported correctly after a hard reboot (full power off).
Maybe the z-wave stick itself needed power cycling?
Or just a full reboot of HA?

It may be helpful to look at the whole conversation for multi sensor.

per z-wave standards…
4.68.4 Multilevel Sensor Get Supported Scale Command

It sort of looks multi-sensors need to be interrogated for scales they support (presumably by our application) Then we have to have some knowledge, if there is more than one scale available which one we prefer to use. Then when we poll for the value we request the value in that scale.

4.68.6 Multilevel Sensor Get Command
Scale (2 bits)
This field is used to request a node to report a reading with a particular scale for the actual Sensor Type.

It would help to know if the conversation is getting supported scales and requesting a preferred one, or if is just getting the first (0) scale and converting after that (in the cases of temperature 0=C 1=F)