Z-Wave Thermostat Reporting C as F

I am trying to move from my Vera Z-wave controller to HA. After removing two devices from Vera and moving them to HA, I was able access both in HA, but with different quirks.

Focusing on the one issue, my thermostat reports the current temperature using a Celsius reading, but calling it Fahrenheit.

Since I have a docker setup of HA, I installed zwavejs2mqtt. With that, I can see zwavejs2mqtt recognizing the current temperature as being reported in Celsius. However, instead of HA converting this to Fahrenheit, it just labels it as Fahrenheit.

It is interesting that the temperature I set the thermostat to is correctly displayed, but not the current temperature reading.

which zwave integration are you using?

I am using WS Server

Edit: Do what @freshcoast says below first. THEN other intervention

You are using ZWaveJS2MQTT. That switch is whether the Websockets server for ZWave JS is active or not.

OK that helps.

ZWaveJS2MQTT uses ZWave JS to do its work. Zwave JS has a ‘driver’ for the XL624: node-zwave-js/xl624.json at master · zwave-js/node-zwave-js (github.com) THere are some folks complaininng how the 624’s driver isn’t up to snuff with the Trane equiv. (the XR524) even though they’re identical.

What I DON’T see is anyone else using JS complaining about a 624 - so I’m making a bet this is unique to something in your setup. Maybe as simple as a bad join or bad interview.

First thing I’d do is go into the ZwaveJS2MQTT console - go to that device, select it and re-interview the node. See if it changes what it’s displaying. if not, try a rejoin

If either of those don’t help - go here Issues · zwave-js/node-zwave-js (github.com) and follow the instructions to open a ticket. AlCalzone is VERY responsive.

They said in the first post

1 Like

In the zwavejs2mqtt z-wave settings, there’s a preferred scales setting. What happens if you set temperature to F?

Be sure to click “Save” at the bottom. Then click on the “Refresh” button next to the “Multilevel Sensor” text as seen in your screenshot. Does that change the unit and value for the Air temperature to F?

If that works, then you might need to reload the Z-Wave JS integration for the unit change to be recognized. If the Air temperature reports in F, then it should fix the climate entity.


zwavejs2mqtt is not an integration. Some people use the MQTT functionality, so it’s not always clear which integration is being used.

From the device screenshots you can infer that the Z-Wave JS integration is being used though.


I reinterviewed and had the same problem, then excluded and reincluded in the zwave network and have the same problem.

1 Like

I set Fahrenheit as the preferred scale and restarted the whole server and it did not fix the issue. Could not find the multi sensor after re-adding the thermostat so that is why I restarted the server instead.

This is weird, I can see the multi sensor again in zwavejs2mqtt. It showed the Celsius temperature to start, but after hitting refresh, it showed the number value in Fahrenheit, but continuing to show the Celsius label. In HA however, it now shows up correctly, which is all I care about.

I think that fixed the issue for me.

Interesting. Does it recur if you restart HA?

What version of HA core are you on? There’s been some weird lovelace status display issues between 2021.12.5 and 2121.12.7

This is a common situation for these Trane thermostats, and maybe others. They report the temperature in one unit, then switch later on. There are open and closed issues in Github, it’s not a solved problem.

1 Like

I am on core-2021.12.7.

After restarting HA, the fix was persisted. However, now in zwavejs2mqtt, I am seeing the correct label of F with a correct Fahrenheit value.

1 Like

Understood. That is consistent with what I am seeing.

I know this is really old but I wanted to update with an issue I had.

I also had the celsius / Fahrenheit issue above but I had two thermostats. It was driving me crazy that one thermostat was fixed and the other was not.

Its probably obvious to most people, but if you have two thermostats you need to click refresh on each.

The fix is to configure the device under device info and set the temperature scale from F to C and back again.