What it exposes
| Feature | Property | Values | Control |
|---|---|---|---|
| Identify | identify | identify | settable |
| Light (1) | state, brightness | on / off, brightness | settable |
| Light effect (1) | effect_1 | blink, breathe, okay, channel_change, finish_effect, stop_effect | settable |
| After power loss (1) | power_on_behavior_1 | off, on, toggle, previous | settable |
| Motion (2) | occupancy_2 | — | read only |
| Illuminance (3) | illuminance_3 | lx | read only |
| Network join search count | network_join_search_count | 1…255 | settable |
| Light pwm frequency | light_pwm_frequency | 0…65535 | settable |
| Dimming brightness curve | dimming_brightness_curve | linear, gamma_1_5, gamma_1_8 | settable |
| Start up on off | start_up_on_off | off, on, last_state | settable |
| Motion sensor lux threshold | motion_sensor_lux_threshold | 0…65535 | settable |
| Motion sensor operation mode | motion_sensor_operation_mode | auto, manual | settable |
| Motion sensor sensitivity | motion_sensor_sensitivity | 0…15 | settable |
| Motion sensor microwave detection | motion_sensor_microwave_detection | disabled, enabled | settable |
| Touchlink onoff broadcast | touchlink_onoff_broadcast | do_not_send, send | settable |
| Brightness module enable | brightness_module_enable | disabled, enabled | settable |
| Light on time | light_on_time | s · 0…65535 | settable |
| Pwm brightness value | pwm_brightness_value | lux · 0…1000 | settable |
| Pwm output percentage | pwm_output_percentage | % · 0…254 | settable |
| Light status after first delay | light_status_after_first_delay | % · 0…254 | settable |
| Second delay time | second_delay_time | s · 0…65535 | settable |
| Light status after second delay | light_status_after_second_delay | % · 0…254 | settable |
| Linearity error ratio lux | linearity_error_ratio_lux | 100…10000 | settable |
| Fixed deviation lux | fixed_deviation_lux | -100…100 | settable |
| Action (button press) | action | recall_1, store_1, add_1, remove_1, remove_all_1, on, off, toggle … | 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:
{
"state_1": "ON",
"brightness_1": 180,
"power_on_behavior_1": "off",
"occupancy_2": false,
"illuminance_3": 120,
"network_join_search_count": 128,
"light_pwm_frequency": 32768,
"dimming_brightness_curve": "linear",
"start_up_on_off": "off",
"motion_sensor_lux_threshold": 32768,
"motion_sensor_operation_mode": "auto",
"motion_sensor_sensitivity": 8,
"motion_sensor_microwave_detection": "disabled",
"touchlink_onoff_broadcast": "do_not_send",
"linkquality": 120
}
Send commands to zigbee2mqtt/my_device/set:
mosquitto_pub -t zigbee2mqtt/my_device/set -m '{"state_1":"ON","brightness_1":180}'
mosquitto_pub -t zigbee2mqtt/my_device/set -m '{"state_1":"OFF","transition":2}'
mosquitto_pub -t zigbee2mqtt/my_device/set -m '{"power_on_behavior_1":"on"}'
mosquitto_pub -t zigbee2mqtt/my_device/set -m '{"dimming_brightness_curve":"gamma_1_5"}'
mosquitto_pub -t zigbee2mqtt/my_device/set -m '{"start_up_on_off":"on"}'
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: "Light at sunset"
mode: single
triggers:
- trigger: sun
event: sunset
offset: "-00:15:00"
actions:
- action: light.turn_on
target:
entity_id: light.my_device
data:
brightness_pct: 70
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.