Zigbee2MQTT Devices Reporting Temperature in Celsius Despite System Set to Fahrenheit

Hi everyone,

I’m having an issue with temperature units after migrating my Zigbee devices from one controller using ZHA to a new one using Zigbee2MQTT. All devices join fine via MQTT, but any that support temperature (like sensors) are reporting in Celsius, while my other non-MQTT devices show in Fahrenheit as expected.

I’ve confirmed that in Settings > System > General, the Temperature unit is set to °F. I even tried switching it to Celsius and back to Fahrenheit, but no change for the MQTT devices. Restarting Home Assistant didn’t help either.

For context, this is my first time using Zigbee2MQTT (though I’ve been using HA for years), so sorry if this is a noob question. Am I missing something in the Zigbee2MQTT config, MQTT discovery, or HA entity setup? Maybe a way to force conversion for these entities?

Any advice would be appreciated—thanks!

Are you talking about the devices seen in the MQTT dashboard, the HA Device Info page, or in the HA Dashboard?

Even though I have Fahrenheit selected in HA System/General settings, my temperature devices report a Celsius temperature in the MQTT dashboard. But in my Device Info screen and in my HA dashboards, the same devices report in Fahrenheit.

Zigbee2mqtt does not support fahrenheit natively. HA converts it for you inn HA. But if you go into z2m GUIs, you will only ever see Celsius.

1 Like

Thank you, good to know.