OpenZWave Climate - Unnecessary Temperature Conversion

Hello,

Somewhat recently I’ve been observing that the “Current Temperature” value of my ZWave thermostats is being displayed incorrectly and sometimes target temperature is set incorrectly in HA.

I use Fahrenheit scale and when the OpenZWave (beta) integration starts it appears that the current temperature values is being converted from Celsius to Fahrenheit despite not needing to be. (Current temperature is displayed as 158 when it should be 70, for example). This same conversion seems to happen when setting temperatures but in reverse (I have an automation to drop the temperature to 68F over night but got set to 20F - that was a cold morning :sweat_smile: ).

The weird part is that eventually the issue sorts itself out after an hour or so and the temperature units all line up as expected. I don’t know the exact timing, unfortunately otherwise I would provide it.

I have multiple thermostats and all behave like this upon a restart HA or OpenZWave(beta).
I’ve verified that the OpenZWave (beta) integration sees the device settings correctly configured as Fahrenheit. I’m not sure what else to do to troubleshoot this.

My HA instance is enrolled in beta updates but I believe this started prior to the latest set of beta releases.

Is there any logs I can provide or configurations I can check to sort this out?

Thanks in advance!

1 Like

Similar problem. The air temperature reads correctly: 72F in the air is 72F on all displays, but the temperature setpoint is wrong. If I set the thermostat to 162F via HA, the thermostat is set to 72F. If I manually set my thermostat to 72F, HA thinks the setpoint is 162F. I’ve only had the thermostat paired for a few hours now, so I don’t know about the temperature units being resolved after a while as OP has observed.

I’ve got a TH6320ZW2003 T6 Pro thermostat connected to a Zooz ZST10 controller, and I have HA OS on a raspi3 and I’m using the OpenZWave beta.

(162 - 32) * 5/9 = 72. The device thinks your units are ºC. So what units are set on your device? What units are set on your home assistant?

Obviously can’t speak for the OP, but both of mine are set in Fahrenheit. My HA is set to Imperial/Fahrenheit via the gui in Configuration > General. Both HA and my thermostat display everything in Fahrenheit. Interestingly, the related entity sensor.downstairs_thermostat_air_temperature_unitsshows a value of 0, label: Celsius. Yet, the air sensor temperature properly displays as Fahrenheit in HA and on the thermostat for me, it’s only the temperature setpoint that has problems.

you’d need to see what it’s providing to the openzwave client via the information being passed back and forth in mqtt or the OpenZwave Admin panel

Not sure if this is what you mean, but I listened on # and saw this:

Message 233 received on OpenZWave/1/node/4/instance/1/commandclass/67/value/281475049111570/ at 5:06 PM:
{
    "Label": "Heating 1",
    "Value": 40,
    "Units": "F",
    "ValueSet": true,
    "ValuePolled": false,
    "ChangeVerified": false,
    "Min": 0,
    "Max": 0,
    "Type": "Decimal",
    "Instance": 1,
    "CommandClass": "COMMAND_CLASS_THERMOSTAT_SETPOINT",
    "Index": 1,
    "Node": 4,
    "Genre": "User",
    "Help": "Set the Thermostat Setpoint Heating 1",
    "ValueIDKey": 281475049111570,
    "ReadOnly": false,
    "WriteOnly": false,
    "Event": "valueRefreshed",
    "TimeStamp": 1609711594
}

40F is the minimum temperature setpoint on my thermostat. If I set the temperature through HA as 72F, the thermostat will display 40F as the temperature setpoint.

Here’s a partial paste of the mqtt messages: https://hastebin.com/uzilojayah.yaml

In received message 212, I see this:

    "Label": "Air Temperature",
    "Value": 22,
    "Units": "C",

not sure how to filter out the irrelevant protocol stuff or how to see what I’m sending when I change the temperature through HA

Message 221 received on OpenZWave/1/node/4/instance/1/commandclass/67/value/1970324909375506/ at 5:06 PM:
{
    "Label": "Furnace",
    "Value": 0,
    "Units": "C",
    "ValueSet": false,
    "ValuePolled": false,
    "ChangeVerified": false,
    "Min": 0,
    "Max": 0,
    "Type": "Decimal",
    "Instance": 1,
    "CommandClass": "COMMAND_CLASS_THERMOSTAT_SETPOINT",
    "Index": 7,
    "Node": 4,
    "Genre": "User",
    "Help": "Set the Thermostat Setpoint Furnace",
    "ValueIDKey": 1970324909375506,
    "ReadOnly": false,
    "WriteOnly": false,
    "Event": "valueAdded",
    "TimeStamp": 1609710628
}

Notice how the setpoint has units C? Now you’d need to figure out if this is a bug in openzwave or if this is a zwave setting for your device. Do you know how to look at the parameters for your device using openzwave admin?

Here’s an example of parameters on one of my zwave devices:

Took me a moment reading the documentation to figure out how to get in. Setting ozw-admin port config to 1983 took a few restarts of the add-on for it to take.

Yep, I see this in the System Values tab:

and this in the User Values tab:

In the Config Values tab, Temperature Scale is set to Fahrenheit.

Looks like the setpoints here are shown as Fahrenheit and the air temperature reported is in Celsius.

Try changing it all to f. I’m not sure how to make your device take the setting. That will depend on your device. If that doesn’t work, the best you can do is log a bug or maybe hop on the discord channel and ask some others there. Maybe someone has your exact device.

1 Like

Yep, the setting took after a few minutes. Thanks for the help! Should I still file a bug report for it not automagically detecting the temperature setting?

Interestingly, I have the same model as @kenblu24.
When trying to use the OpenZWave admin panel I keep getting disconnected when trying to open the connection. I’ll sort through that to verify the Air Temperature setting.

Thanks for the tips!

Had the same problem. In the Configuration tab for the OpenZWave add-on, check that your ozw-admin port’s Host field is set. chrome_2021-01-03_21-05-35 Then, restart the add-on. For some reason mine didn’t set/restart properly, so I had to repeat this process two more times.

To get into the admin panel, check that the “Remote Host” field leads to your Home Assistant setup. If you’re accessing through the web-ui, the default setting of localhost and 1983 should work. Then, click the start button in the Remote OZWDaemon section, not the Local Client section.

Additionaly instructions are in the Documentation tab of the OpenZWave add-on, or on the associated GitHub page.

1 Like

Personally, I use the windows version of the admin app. Much better than the tiny console provided in the addon

Yep - got it working with the Linux .appimage version.

I did change the Air Temperature Units value in System Values to Fahrenheit but it doesn’t appear to be persisting. When I check again after some time it’s set back to Celsius.

I just set them back to Fahrenheit and I’ll leave it be for the day, maybe it just needs some time to bake (I tend to be a little impatient and start restarting services if changes aren’t in effect immediately, so that might be part of my issue).

Not sure what kind of device that this is, but typically devices need to be awake in order to push changes to parameters.

Sadly, the change does not seem to hold after a restart of HA.