SONOFF SNZB-02DR2
| Model | SNZB-02DR2 |
| Vendor | SONOFF |
| Description | Temperature and humidity sensor with display and relay control |
| Exposes | battery, voltage, temperature, humidity, temperature_sensor_select, external_temperature, external_humidity, comfort_temperature_min, comfort_temperature_max, comfort_humidity_min, comfort_humidity_max, temperature_units, temperature_calibration, humidity_calibration |
| Picture | ![]() |
Notes
Displaying readings from an external sensor
This device can show temperature and humidity coming from another sensor instead of its own built-in sensor (for example showing an outdoor sensor on the screen).
- Set
temperature_sensor_selecttoexternalto switch the display to the external source (set it back tointernalto show the built-in sensor with the min/max view). - Push readings to
external_temperatureandexternal_humidity. Values are in °C / % (e.g.external_temperature: 25.5,external_humidity: 88).
Notes:
- Humidity on the external display requires device firmware
1.0.4or later. - This is a battery-powered sleepy device, so writes are applied on the next poll/check-in; press the button on the back to wake it for an immediate update.
Example Home Assistant automation mirroring another sensor onto the display:
alias: SNZB-02DR2 external display
triggers:
- trigger: state
entity_id:
- sensor.outdoor_temperature
- sensor.outdoor_humidity
conditions:
- condition: template
value_template: >-
{{ states('sensor.outdoor_temperature') not in ['unknown', 'unavailable', 'none']
and states('sensor.outdoor_humidity') not in ['unknown', 'unavailable', 'none'] }}
actions:
- action: mqtt.publish
data:
topic: zigbee2mqtt/FRIENDLY_NAME/set
payload: >-
{
"temperature_sensor_select": "external",
"external_temperature": {{ states('sensor.outdoor_temperature') | float | round(1) }},
"external_humidity": {{ states('sensor.outdoor_humidity') | float | round(0) }}
}
mode: single
OTA updates
This device supports OTA updates, for more information see OTA updates.
Options
How to use device type specific configuration
temperature_calibration: Calibrates the temperature value (absolute offset), takes into effect on next report of device. The value must be a number.temperature_precision: Number of digits after decimal point for temperature, takes into effect on next report of device. This option can only decrease the precision, not increase it. The value must be a number with a minimum value of0and with a maximum value of3humidity_calibration: Calibrates the humidity value (absolute offset), takes into effect on next report of device. The value must be a number.humidity_precision: Number of digits after decimal point for humidity, takes into effect on next report of device. This option can only decrease the precision, not increase it. The value must be a number with a minimum value of0and with a maximum value of3
Exposes
Battery (numeric)
Remaining battery in %. Value can be found in the published state on the battery property. To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"battery": ""}. It's not possible to write (/set) this value. The minimal value is 0 and the maximum value is 100. The unit of this value is %.
Voltage (numeric)
Reported battery voltage in millivolts. Value can be found in the published state on the voltage property. To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"voltage": ""}. It's not possible to write (/set) this value. The unit of this value is mV.
Temperature (numeric)
Measured temperature value. Value can be found in the published state on the temperature property. To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"temperature": ""}. It's not possible to write (/set) this value. The unit of this value is °C.
Humidity (numeric)
Measured relative humidity. Value can be found in the published state on the humidity property. To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"humidity": ""}. It's not possible to write (/set) this value. The unit of this value is %.
Temperature sensor select (enum)
Data source shown on the display. Set to 'external' to enable the external display and show the values written to external_temperature and external_humidity; set to 'internal' to show the built-in sensor again.. Value can be found in the published state on the temperature_sensor_select property. To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"temperature_sensor_select": ""}. To write (/set) a value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"temperature_sensor_select": NEW_VALUE}. The possible values are: internal, external.
External temperature (numeric)
Temperature value to display when temperature_sensor_select is set to 'external'. Push readings here from another sensor (e.g. via an automation).. Value can be found in the published state on the external_temperature property. It's not possible to read (/get) this value. To write (/set) a value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"external_temperature": NEW_VALUE}. The minimal value is -50 and the maximum value is 125. The unit of this value is °C.
External humidity (numeric)
Relative humidity value to display when temperature_sensor_select is set to 'external'. Push readings here from another sensor. Requires device firmware 1.0.4 or later.. Value can be found in the published state on the external_humidity property. It's not possible to read (/get) this value. To write (/set) a value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"external_humidity": NEW_VALUE}. The minimal value is 0 and the maximum value is 100. The unit of this value is %.
Comfort temperature min (numeric)
Minimum temperature that is considered comfortable. The device will display ❄️ when the temperature is lower than this value. Note: wake up the device by pressing the button on the back before changing this value.. Value can be found in the published state on the comfort_temperature_min property. To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"comfort_temperature_min": ""}. To write (/set) a value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"comfort_temperature_min": NEW_VALUE}. The minimal value is -10 and the maximum value is 60. The unit of this value is °C.
Comfort temperature max (numeric)
Maximum temperature that is considered comfortable. The device will display 🔥 when the temperature is higher than this value. Note: wake up the device by pressing the button on the back before changing this value.. Value can be found in the published state on the comfort_temperature_max property. To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"comfort_temperature_max": ""}. To write (/set) a value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"comfort_temperature_max": NEW_VALUE}. The minimal value is -10 and the maximum value is 60. The unit of this value is °C.
Comfort humidity min (numeric)
Minimum relative humidity that is considered comfortable. The device will display ☀️ when the humidity is lower than this value. Note: wake up the device by pressing the button on the back before changing this value.. Value can be found in the published state on the comfort_humidity_min property. To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"comfort_humidity_min": ""}. To write (/set) a value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"comfort_humidity_min": NEW_VALUE}. The minimal value is 5 and the maximum value is 95. The unit of this value is %.
Comfort humidity max (numeric)
Maximum relative humidity that is considered comfortable. The device will display 💧 when the humidity is higher than this value. Note: wake up the device by pressing the button on the back before changing this value.. Value can be found in the published state on the comfort_humidity_max property. To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"comfort_humidity_max": ""}. To write (/set) a value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"comfort_humidity_max": NEW_VALUE}. The minimal value is 5 and the maximum value is 95. The unit of this value is %.
Temperature units (enum)
The unit of the temperature displayed on the device screen. Note: wake up the device by pressing the button on the back before changing this value.. Value can be found in the published state on the temperature_units property. To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"temperature_units": ""}. To write (/set) a value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"temperature_units": NEW_VALUE}. The possible values are: celsius, fahrenheit.
Temperature calibration (numeric)
Offset to add/subtract to the reported temperature. Value can be found in the published state on the temperature_calibration property. To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"temperature_calibration": ""}. To write (/set) a value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"temperature_calibration": NEW_VALUE}. The minimal value is -50 and the maximum value is 50. The unit of this value is °C.
Humidity calibration (numeric)
Offset to add/subtract to the reported relative humidity. Value can be found in the published state on the humidity_calibration property. To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"humidity_calibration": ""}. To write (/set) a value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"humidity_calibration": NEW_VALUE}. The minimal value is -50 and the maximum value is 50. The unit of this value is %.

