Flashing
Firmware
Download the following firmware:
https://github.com/arendst/Tasmota/releases/download/v9.5.0/tasmota-zbbridge.bin
Wiring
Connect your USB to Serial adaptor to the the locations depicted on the picture below. See reference section for details.
Flashing
For flashing this device, it is easiest to use Tasmotizer.
See https://github.com/tasmota/tasmotizer
With the wiring connected, start up tasmotizer. Perform the following steps:
- Select the port
- Click BIN file under select image and point it to the formware file downloaded earlier. Optionally, you can click "Release" and find the zbbridge firmware in that list.
- Click Tasmotize!
Flash Zigbee Chip
There is a second chip on the Sonoff Zigbee bridge which needs to be flashed.
See https://zigbee.blakadder.com/Sonoff_ZBBridge.html
Homebridge Integration
We will integrate our Zigbee bridge with Hoomebridge using MQTT.
MQTT
On your Zigbee bridge device, configure MQTT:
After configuring you will have messages being sent to MQTT on various topics:
- tele/zigbee/SENSOR
- tele/zigbee/RESULT
Adding a Device
To pair a device, first go Tasmota UI for the Zigbee bridge and click the"Zigbee Permit Join" button.
You should now see a message stating "Devices allowed to join". If you don't you may need to install the firmware for the zigbee chip
...
Tasmota Commands
Command | Syntax | Example |
---|---|---|
Set Name for Device | ZbName <device>, <friendlyName> | ZbName 0x0321,Motion_Sensor |
Delete Device | ZbForget <device> or ZbForget <name> | ZbForget 0x0321 |
Send Command to Device | ZbSend { "device":"0x4773", "send":{"Power":"On"} } | |
Set Group for Device | ZbSend {"device":"Ikea_Bulb","Send":{"AddGroup":100}} | |
Bind device to group (Required for IKEA BULBS) | ZbBind {"Device":"Ikea_Remote","ToGroup":100,"Endpoint":1,"Cluster":6} ZbBind {"Device":"Ikea_Remote","ToGroup":100,"Endpoint":1,"Cluster":8} ZbBind {"Device":"Ikea_Remote","ToGroup":100,"Endpoint":1,"Cluster":5} | |
Bind device to device | ZbBind {"Device":"<device>", "Endpoint":<endpoint>, "Cluster":<cluster>, "ToDevice":"<to_device>", "ToEndpoint":<to_endpoint>, "ToGroup":<to_group> } | ZbBind {"Device":"0xAAAA","ToDevice":"0xBBBB","Endpoint":1,"ToEndpoint":1,"Cluster":6} |
Unbind a device | ZbUnbind {"Device":"<device>", "Endpoint":<endpoint>, "Cluster":<cluster>, "ToDevice":"<to_device>", "ToEndpoint":<to_endpoint>, "ToGroup":<to_group> } | ZbUnbind {"Device":"<device>", "Endpoint":<endpoint>, "Cluster":<cluster>, "ToDevice":"<to_device>", "ToEndpoint":<to_endpoint>, "ToGroup":<to_group> } ZbUnbind {"Device":"Ikea_Remote","ToDevice":"Ikea_Bulb","Endpoint":1,"ToEndpoint":1,"Cluster":6} |
Homebridge
Motion Sensor - Sonoff Model SNZB-03
MQTT Message
JSON Message sent via MQTT on topic tele/zigbee/SENSOR
{ "ZbReceived":{ "0x6373":{ "Device":"0x6373", "0500<00":"000000010000", "ZoneStatusChange":0, "ZoneStatusChangeZone":1, "Occupancy":0, "Endpoint":1, "LinkQuality":136 } } }
Homebridge Configuration
{ "accessory": "mqttthing", "type": "occupancySensor", "name": "sonoff-occupancy", "url": "http://192.168.1.50:1883", "topics": { "getOccupancyDetected": { "topic": "tele/zigbee/SENSOR", "apply": "return JSON.parse(message).ZbReceived['0x6373'].Occupancy;" } }, "integerValue": "true" },
Switch - IKEA Tradfri ON/OFF Switch
MQTT Message
JSON Message sent via MQTT on topic tele/zigbee/SENSOR
{ "ZbReceived":{ "0x0321":{ "Device":"0x0321", "0006!00":"", "Power":0, "Endpoint":1, "LinkQuality":102 } } }
Homebridge Configuration
{ "accessory": "mqttthing", "type": "switch", "name": "ikea-onoff", "url": "http://192.168.1.50:1883", "topics": { "getOn": { "topic": "tele/zigbee/SENSOR", "apply": "return JSON.parse(message).ZbReceived['0x0321'].Power;" } }, "integerValue": "true" },
Light - IKEA Tradfri Dimmer
MQTT Message
JSON Message sent via MQTT on topic tele/zigbee/SENSOR
{ "ZbReceived":{ "0xE3E9":{ "Device":"0xE3E9", "Name":"Ikea_Bulb", "X":30138, "Y":26909, "CT":370, "ColorMode":2, "RGB":"FAAF5A", "RGBb":"AB773D", "Endpoint":1, "LinkQuality":147 } } } { "ZbReceived":{ "0xE3E9":{ "Device":"0xE3E9", "Name":"Ikea_Bulb", "Power":1, "Dimmer":173, "X":30138, "Y":26909, "CT":370, "ColorMode":2, "RGB":"FAAF5A", "RGBb":"AB773D", "Endpoint":1, "LinkQuality":144 } } }
Homebridge Configuration
{ "accessory": "mqttthing", "type": "lightbulb", "name": "ikea-lightbulb", "url": "http://192.168.1.50:1883", "topics": { "getOn": { "topic": "tele/zigbee/SENSOR", "apply": "return JSON.parse(message).ZbReceived['0xE3E9'].Power;" }, "setOn": { "topic": "cmnd/zigbee/ZbSend", "apply": "return '{\"device\":\"0xE3E9\", \"send\":{\"Power\":' + message + '}}'" } }, "integerValue": "true" },
References
Reference | URL |
---|---|
Sonoff Zigbee Bridge | How to flash with Tasmota and setup in Home Assistant with ZHA | https://www.youtube.com/watch?v=SDynPbCGvS0 |
Tasmota Releases | https://github.com/arendst/Tasmota/releases |
Tasmota Zigbee | https://tasmota.github.io/docs/Zigbee/ |
Zigbee Commands | https://tasmota.github.io/docs/Commands/#zigbee |
MQTTThing Homebridge Plugin | https://github.com/arachnetech/homebridge-mqttthing |