What it exposes
| Feature | Property | Values | Control |
|---|---|---|---|
| CO₂ | co2 | ppm | read only |
| Voc index | voc_index | VOC Index points | read only |
| Temperature | temperature | °C | read only |
| Humidity | humidity | % | read only |
| Pressure | pressure | hPa | read only |
| Illuminance | illuminance | lx | read only |
| Display rotate | display_rotate | horizontal, vertical | settable |
| Display inversion | display_inversion | black_on_white, white_on_black | settable |
| Temperature display mode | temperature_display_mode | celsius, fahrenheit | settable |
| Temperature offset | temperature_offset | °C · -5…5 | settable |
| Read interval | read_interval | Sec · 5…600 | settable |
| Enabling co2 control | enabling_co2_control | — | settable |
| Low co2 | low_co2 | ppm · 400…2000 | settable |
| High co2 | high_co2 | ppm · 400…2000 | settable |
| Enabling voc control | enabling_voc_control | — | settable |
| Low voc | low_voc | VOC index points · 1…500 | settable |
| High voc | high_voc | VOC index points · 1…500 | settable |
| Switch actions | switch_actions | off, on | settable |
| Brightness | brightness | 0…255 | settable |
| Enabling sound | enabling_sound | — | settable |
| Frc co2 correction | frc_co2_correction | ppm | read only |
| Features sensors | features_sensors | — | read only |
| Life time | life_time | h | read only |
MQTT: state and commands
Zigbee2MQTT publishes the device state to zigbee2mqtt/my_device (my_device is the name you give the device). An example message:
{
"co2": 640,
"voc_index": 0,
"temperature": 21.6,
"humidity": 46.2,
"pressure": 1012,
"illuminance": 120,
"display_rotate": "horizontal",
"display_inversion": "black_on_white",
"temperature_display_mode": "celsius",
"temperature_offset": 0,
"read_interval": 303,
"enabling_co2_control": false,
"low_co2": 1200,
"high_co2": 1200,
"linkquality": 120
}
Send commands to zigbee2mqtt/my_device/set:
mosquitto_pub -t zigbee2mqtt/my_device/set -m '{"display_rotate":"vertical"}'
mosquitto_pub -t zigbee2mqtt/my_device/set -m '{"display_inversion":"white_on_black"}'
mosquitto_pub -t zigbee2mqtt/my_device/set -m '{"temperature_display_mode":"fahrenheit"}'
mosquitto_pub -t zigbee2mqtt/my_device/set -m '{"enabling_co2_control":true}'
mosquitto_pub -t zigbee2mqtt/my_device/set -m '{"enabling_voc_control":true}'
Watch the topics live from the browser: MQTT client.
Home Assistant automation example
Zigbee2MQTT creates Home Assistant entities from the device name. If it is called my_device, an automation in automations.yaml can look like this:
- alias: "Room too warm"
mode: single
triggers:
- trigger: numeric_state
entity_id: sensor.my_device_temperature
above: 26
for: "00:10:00"
actions:
- action: notify.notify
data:
message: "Temperature above 26 °C"
Check the YAML: YAML checker.
How to pair it
- In Zigbee2MQTT click Permit join.
- Put the device in pairing mode: usually a long press of the reset button (5–10 s) until the LED blinks; bulbs: switch the power off and on 5–6 times.
- Keep the device close to the coordinator or a router while pairing.
- Give it a clear name: MQTT topics and Home Assistant entities are built from it.
Exact procedure and model notes: the device page in the Zigbee2MQTT docs. No coordinator yet: coordinator picker.