Zigbee2MQTTZigbee2MQTT
  • Getting started
  • Supported Adapters
  • Supported Devices
  • Installation
  • Configuration
  • Usage
  • FAQ
Devices
  • Zigbee

    • Zigbee network
    • Improve network range and stability
    • Sniff Zigbee traffic
    • Create a CC2530 router
  • Support new devices

    • Support new devices
    • Support new Tuya devices
    • Find Tuya Data Points
  • Remote Adapter

    • Connect to a remote adapter
    • Connect to a remote Sonoff ZBBridge
  • More

    • 3D cases
    • External converters
    • External extensions
    • Switch to the dev branch
    • Get Tuya and Xiaomi OTA url
  • Forum
  • Discord
  • Issues
  • Donate
GitHub
GitHub (docs)
  • Getting started
  • Supported Adapters
  • Supported Devices
  • Installation
  • Configuration
  • Usage
  • FAQ
Devices
  • Zigbee

    • Zigbee network
    • Improve network range and stability
    • Sniff Zigbee traffic
    • Create a CC2530 router
  • Support new devices

    • Support new devices
    • Support new Tuya devices
    • Find Tuya Data Points
  • Remote Adapter

    • Connect to a remote adapter
    • Connect to a remote Sonoff ZBBridge
  • More

    • 3D cases
    • External converters
    • External extensions
    • Switch to the dev branch
    • Get Tuya and Xiaomi OTA url
  • Forum
  • Discord
  • Issues
  • Donate
GitHub
GitHub (docs)

SONOFF SNZB-02DR2

ModelSNZB-02DR2
VendorSONOFF
DescriptionTemperature and humidity sensor with display and relay control
Exposesbattery, 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
PictureSONOFF SNZB-02DR2

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).

  1. Set temperature_sensor_select to external to switch the display to the external source (set it back to internal to show the built-in sensor with the min/max view).
  2. Push readings to external_temperature and external_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.4 or 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 of 0 and with a maximum value of 3

  • humidity_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 of 0 and with a maximum value of 3

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 %.

Help to make the docu better and edit this page on Github ✌
Page was last updated on: 6/30/26, 7:20 PM