What it exposes
| Feature | Property | Values | Control |
|---|---|---|---|
| Ballast minimum level (l1) | ballast_minimum_level_l1 | 1…254 | settable |
| Ballast maximum level (l1) | ballast_maximum_level_l1 | 1…254 | settable |
| Dimmer mode (l1) | dimmer_mode_l1 | RC, RL | settable |
| Light (l1) | state, brightness, level_config | on / off, brightness, level settings | settable |
| Light effect (l1) | effect_l1 | blink, breathe, okay, channel_change, finish_effect, stop_effect | settable |
| After power loss (l1) | power_on_behavior_l1 | off, on, toggle, previous | settable |
| Indicator mode (s1) | indicator_mode_s1 | reverse_with_load, consistent_with_load, always_off, always_on, flash_on_click | settable |
| Indicator mode (s2) | indicator_mode_s2 | reverse_with_load, consistent_with_load, always_off, always_on, flash_on_click | settable |
| Indicator mode (s3) | indicator_mode_s3 | reverse_with_load, consistent_with_load, always_off, always_on, flash_on_click | settable |
| Indicator mode (s4) | indicator_mode_s4 | reverse_with_load, consistent_with_load, always_off, always_on, flash_on_click | settable |
| Switch actions (s1) | switch_actions_s1 | light, light_opposite, dimmer, dimmer_opposite, standard_shutter, standard_shutter_opposite, schneider_shutter, schneider_shutter_opposite … | settable |
| Switch actions (s2) | switch_actions_s2 | light, light_opposite, dimmer, dimmer_opposite, standard_shutter, standard_shutter_opposite, schneider_shutter, schneider_shutter_opposite … | settable |
| Switch actions (s3) | switch_actions_s3 | light, light_opposite, dimmer, dimmer_opposite, standard_shutter, standard_shutter_opposite, schneider_shutter, schneider_shutter_opposite … | settable |
| Switch actions (s4) | switch_actions_s4 | light, light_opposite, dimmer, dimmer_opposite, standard_shutter, standard_shutter_opposite, schneider_shutter, schneider_shutter_opposite … | settable |
| Action (button press) | action | on, off, brightness_move_up, brightness_move_down, brightness_stop, recall_* | 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:
{
"ballast_minimum_level_l1": 128,
"ballast_maximum_level_l1": 128,
"dimmer_mode_l1": "RC",
"state_l1": "ON",
"brightness_l1": 180,
"power_on_behavior_l1": "off",
"indicator_mode_s1": "reverse_with_load",
"indicator_mode_s2": "reverse_with_load",
"indicator_mode_s3": "reverse_with_load",
"indicator_mode_s4": "reverse_with_load",
"switch_actions_s1": "light",
"switch_actions_s2": "light",
"switch_actions_s3": "light",
"switch_actions_s4": "light",
"linkquality": 120
}
Send commands to zigbee2mqtt/my_device/set:
mosquitto_pub -t zigbee2mqtt/my_device/set -m '{"state_l1":"ON","brightness_l1":180}'
mosquitto_pub -t zigbee2mqtt/my_device/set -m '{"state_l1":"OFF","transition":2}'
mosquitto_pub -t zigbee2mqtt/my_device/set -m '{"dimmer_mode_l1":"RL"}'
mosquitto_pub -t zigbee2mqtt/my_device/set -m '{"power_on_behavior_l1":"on"}'
mosquitto_pub -t zigbee2mqtt/my_device/set -m '{"indicator_mode_s1":"consistent_with_load"}'
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.