Sonoff SNZB-06P Tasmota
Overview
In my setup I am using a Sonoff Zigbee Bridge Pro flashed with Tasmota and Coordinator firmware. With this exercise we are exploring using the SNZB-06P with the bridge and sending commands to the device to configure it. You will notice my device ID is 0x1941
, yours will obviously be something else.
First put your bridge in pairing mode by selecting “Zigbee Permit Join” from the main menu. Then power on the device with a USB connection, press and hold the button on the SNZB-06P. In a few seconds you should see the device appear on the main menu

You should also see some entries related to the device in the console
SENSOR = {"ZbReceived":{"0x1941":{"Device":"0x1941","Occupancy":1,"FC11/2001":0,"Endpoint":1,"LinkQuality":10}}}
This device has a cluster identifier of 0x0406
which is a Occupancy
The cluster supports a number of attributes that can be read or written
0x0020
– The UltrasonicOccupiedToUnoccupiedDelay attribute is 16 bits in length and specifies the time delay, in seconds, before the Ultrasonic sensor changes to its unoccupied state after the last detection of movement in the sensed area.0x0021
– The UltrasonicUnoccupiedToOccupiedDelay attribute is 16 bits in length and specifies the time delay, in
seconds, before the Ultrasonic sensor changes to its occupied state after the detection of movement in the
sensed area.0x0022
– The UltrasonicUnoccupiedToOccupiedThreshold attribute is 8 bits in length and specifies the number of movement detection events that must occur in the period UltrasonicUnoccupiedToOccupiedDelay, before the Ultrasonic sensor changes to its occupied state
Detection Unoccupied delay
Read the current UltrasonicOccupiedToUnoccupiedDelay attribute (0x0020
)
ZbSend {"device":"0x1941","cluster":"0x0406", "Read": "0x0020"} RESULT = {"ZbSend":"Done"} SENSOR = {"ZbReceived":{"0x1941":{"Device":"0x1941","0406/0020":15,"Endpoint":1,"LinkQuality":80}}}
Update the value to 15 seconds (0x0F
). The data type of the value (%21
) is uint16
.
ZbSend {"device":"0x1941","Write": {"0406/0020%21": "0x0F"}} RESULT = {"ZbSend":"Done"} RESULT = {"ZbResponse":{"Device":"0x1941","Command":"0406_04","Status":0,"StatusMessage":"SUCCESS","Endpoint":1,"LinkQuality":120}}
Detection Occupied Delay
Read the current UltrasonicUnoccupiedToOccupiedDelay attribute (0x0021
)
ZbSend {"device":"0x1941","cluster":"0x0406", "Read": "0x0021"} RESULT = {"ZbSend":"Done"} SENSOR = {"ZbReceived":{"0x1941":{"Device":"0x1941","0406/0021":0,"Endpoint":1,"LinkQuality":120}}}
Update the value to 1 second (0x01
). The data type of the value (%21
) is uint16
.
ZbSend {"device":"0x1941","Write": {"0406/0021%21": "0x01"}} RESULT = {"ZbSend":"Done"} RESULT = {"ZbResponse":{"Device":"0x1941","Command":"0406_04","Status":0,"StatusMessage":"SUCCESS","Endpoint":1,"LinkQuality":120}}
Detection Sensitivity
Read the current UltrasonicUnoccupiedToOccupiedThreshold attribute (0x0022
)
ZbSend {"device":"0x1941","cluster":"0x0406", "Read": "0x0022"} RESULT = {"ZbSend":"Done"} SENSOR = {"ZbReceived":{"0x1941":{"Device":"0x1941","0406/0022":3,"Endpoint":1,"LinkQuality":120}}}
- represents low sensitivity with a detection distance of 2.5m.
- represents medium sensitivity with a detection distance of 3.5m.
- represents high sensitivity with a detection distance of 4m.
Update the sensitivity to max (0x03
). The data type of the value (%20
) is uint8
ZbSend {"device":"0x1941","Write": {"0406/0022%20": "0x03"}} RESULT = {"ZbSend":"Done"} RESULT = {"ZbResponse":{"Device":"0x1941","Command":"0406_04","Status":0,"StatusMessage":"SUCCESS","Endpoint":1,"LinkQuality":120}}
Environment Light State
This device also reports on cluster 0xFC11
an attribute 0x2001
which reports the environment lights state with sent along with occupation updates. If the value is 1
the room is bright, of the value of 0
the room is darker