How to Convert the Sonoff Zigbee Bridge into a Router / Repeater

 


Do you have a Sonoff Zigbee Bridge sitting in the drawer after switching over to the CC2652 series coordinator?  Don't toss it out!  Let's use it as a router/repeater to extend your Zigbee network!  If you haven't already converted it to open source with Tasmota check out this article first.  Already have Tasmota on it?  Let's go!

Open a web browser to the Zigbee Bridge IP address once it is connected to your WiFi network. First, it's not a bad idea to upgrade the firmware on it to the latest stable build of Tasmota.  Verify your OTA URL is using the tasmota-zbridge.bin file as it is required to upload the Zigbee Router firmware.  Use the Firmware Upgrade button on the GUI of the device. 



After it reboots into the latest version; click Configuration then Configure Module.  Select Sonoff ZbBridge (75) and Click Save.  If you do not see this module you need to upgrade to the tasmota-zbbridge.bin file version of Tasmota.


Download the efr32mg21_zigbee_router_signed-6.7.10.gbl.ota from Github (thanks xsp1989).  DO NOT right click and save as Github sends HTML files instead at times. 

Once the device reboots from Module selection above, click Firmware Upgrade; under "Upgrade by file upload" click Choose File and select the ota file downloaded from Github.  Click Start upgrade.


Be patient, it can take a minute or two to finish before saying Successful.


Once the Tasmota GUI is up again, click Consoles then Console.  Do not worry if you see an error about Zbstate something aborted.  This is good!  The router firmware is working!  


Next we need to enable the ability for the GUI and reset button to be used as the device pairing procedure.  Paste the following command into the console all on one line:

backlog template {"NAME":"Sonoff ZigRouter","GPIO":[320,5088,0,5120,257,256,0,0,0,576,0,0,32,0],"FLAG":0,"BASE":18} ; delay1 ; module 0

The bridge should reboot and come back up on the console.  The device is ready to be paired with your Zigbee network.  Go ahead and place it in the desired location of the home and power it up.  Enable pairing on your Zigbee Network as you would normally pair a regular sensor, switch, etc.  NOTE: Zigbee2MQTT users as of this time will need to add a custom file to support this router before pairing (see last section of this guide)

To place the device into pairing mode, simply use a paper clip to briefly push the reset button next to the USB power plug. 


The green LED will light up.  Allow 5-6 seconds to pass and press the button again, this will turn off the green LED and the device will be in pairing mode.


ZHA Users should see something like this



Another method of pairing is to press the "Toggle 1" button on the Tasmota GUI and leave it set to ON for 5-6 seconds then turn it back off.  This is the same as the reset button paper clip push method above. Toggle 2 is the Zigbee chipset reboot button, toggling it will reset the Zigbee chipset, do not leave it set to ON.



That's it! You now have another router on your network!  Congrats!  Check out our latest Zigbee Tips Video if you are bored enough....  https://youtu.be/1dcAXkJxzcY

Zigbee2MQTT Users will need to download this silabs.js file from Github, add it to their Z2M config folder, and add the custom converter to the configuration either via the GUI or YAML file.  This will not be necessary after the device is added into Z2M builds.  




Thanks to xsp1989 for building the firmware and Hedda's friendly nudging!

⚡Products We Use/Recommend
⚡Be Social!⚡
YouTube - https://youtube.digiblur.com
Discord Chat - https://discord.digiblur.com
Patreon - https://patreon.digiblur.com
Facebook - https://facebook.digiblur.com
Instagram - https://instagram.digiblur.com
Please note, the product links above could be affiliate links, using them could earn digiblurDIY a small commission of most purchases and helps with future video projects. Thank you!  As an Amazon Associate I earn from qualifying purchases.


Comments

  1. This comment has been removed by the author.

    ReplyDelete
  2. my zigbee2mqtt logs are filling up with

    warning Received message from unsupported device with Zigbee model 'UT-01' and manufacturer name 'easyiot'
    warning Please see: https://www.zigbee2mqtt.io/advanced/support-new-devices/01_support_new_devices.html

    do I need to be a dev branch of z2mqtt to support this?

    ReplyDelete
    Replies
    1. :facepalm: I didn't read to the end. sorry. Thanks for the awesome tutorials!

      Delete
    2. Someone posted the config to put it in supervisor...I'll see if I can find it.

      Delete
    3. for anyone else with the same issue: here you go:

      external_converters:
      - silabs.js

      Delete
    4. I tried the steps, but I don't think I was succesful. I only have one toggle in the GUI, also the paperclip doesn't result in a green light (just solid blue, nothing happens).

      I think the firmware update of tasmota-zbridge.bin didn't take, because I'm seeing a build date of 2020-10-02 (program version 8.5.1 zbbridge).

      Any hints?

      Delete
    5. Found my own answers :-)

      I was on the old version of Tasmota 8.5.1. This was the information I needed for upgrading the Tasmota firmware itself:
      https://tasmota.github.io/docs/Upgrading/#migration-path
      https://github.com/arendst/Tasmota/releases/tag/v11.0.0

      Delete
  3. I guess this might need a new "quirk" ZHA Device Handlers if using Home Assistant's ZHA integration? https://github.com/zigpy/zha-device-handlers

    ReplyDelete
    Replies
    1. Device support request to https://github.com/zigpy/zha-device-handlers/issues require "Device signature - this can be acquired by removing the device from ZHA and pairing it again from the add devices screen. Be sure to add the entire content of the log panel after pairing the device to a code block below this line."

      Delete
    2. There isn't any sensors to support on it that I know of.

      Delete
  4. Does this extend the network using Wifi in any way to extend the signal? Or is it just using Zigbee and Wifi is only to manage the device?

    ReplyDelete
    Replies
    1. The WiFi portion of the unit isn't even needed once the device is paired up.

      Delete
    2. It extend it just using Zigbee. Not WiFi

      Delete
  5. Hi! I followed the guide, I correctly installed the router firmware and give the backlog command, but I'm not able to add the device inside the zigbee network. I suppose you have to add it to the coordinator so I need to go to integration, ZHA (in my case), search the coordinator and add new device as son, right? What I'm doing wrong? Thanks

    ReplyDelete
    Replies
    1. Had the same problem... By any chance, was this device your former coordinator and you migrated it using the steps detailed here: https://github.com/zigpy/zigpy/wiki/Coordinator-Backup-and-Migration
      Talked to digiblueDIY on discord the other day, it might be that after that, both devices share the same EUI64 (a kind of MAC address for Zigbee), and as there is another device with the same on the network it doesn't let it pair. In my case, the discovery messages showed up in ZHA pairing "Show logs" but it wouldn't recognize the device.
      I ended up reverting all changes, and left it as a backup coordinator in a drawer x).

      Delete
    2. Yes if you cloned the address during a migration then you would need to change this address as well.

      Delete
  6. Zigbee Router firmware is also compatible with ZB-GW03 https://github.com/syssi/esphome-zb-gw03/issues/12

    ReplyDelete
  7. Hi All, I tasmotized the bridge OK, I am using Zigbee2MQTT so I added Silabs.js as a file into the Zibee2MQT folder.
    It appears as:
    external_converters:
    - silabs.js
    in the configuration.yaml file.
    I have added the router to 'devices' under Zigbee2MQTT and I can list its attributes, it is shown as supported, However, it is marked as disabled.
    Does anybody know how to fix the disabled to enable it please.

    ReplyDelete
    Replies
    1. Doesn't sound like your file is getting picked up.

      Will try to get the PR done soon so this step isn't needed.

      Delete
    2. I redid all of the steps in your tutorial and got no errors. On the Zigbee2MQTT 'map' it shows the router linked to the coordinator. Unfortunately another of my Zigbee 'scene' switches now shows disabled too and that was woring perefectly. I'll keep an eye out for the update PR, is there a way to know when it is done?

      Delete
    3. That's not due to this. Not sure how you disable a device.

      Delete
    4. Awesome! Will wait and keep an eye out for PR to zigbee-herdsman-converters

      Delete
  8. Thank again for all the hardwork with this. It guys like digiblurDIY that this sort of thing easy for guys like me.

    One question is that after a little while it drops off my Zigbee network. I use Zigbee2MQTT and it picks it up as supported and shows as a router in my ZigBee map but after a while it not in the list anymore.

    ReplyDelete
  9. Maybe I'm just too stupid but I followed the steps, added the router to ZHA awesome but how do I tell my Zigbee devices to go via the router or are the detecting the stronger signal and do the routing automatically? Cheers

    ReplyDelete
    Replies
    1. Short answer is that you do not choose yourself as Zigbee network mesh routing is meant to be fully automatic by design. That is how Zigbee is suppose to work, meaning that you are not suppose to manualy choose routing. But when you want to pair a new Zigbee device in ZHA you can go to a Zigbee router and pair it from from there (add new device via a specific router), but almost all Zigbee devices will automatically collect data on its neighbours and automatically switch every 24-hours or so to the Zigbee router which it have had the strongest signal for that period. One known exception is Aqara/Xiaomi devices which has a tendecy to be "sticky" and not switch after they been initially paired, and thus for them it can be a good idea to pair them with a specific router when you first join them. So the long answer is that you can choose router for some devices with badly written firmware like Aqara/Xiaomi, however you are then also likley to drop connector to those devices if the router goes down and the device does not automatically switch over to a other router.

      Delete
  10. HA Zibee2MQTT says Unsupported. I this the silabs.js is the problem.

    ReplyDelete
  11. Just to be clear, when you say "Zigbee2MQTT Users will need to download this silabs.js file from Github, add it to their Z2M config folder" are you referring to this folder: /config/zigbee2mqtt/

    When I place it there, add it as a External converter in the configuration GUI, Submit and restart, Zigbee2MQTT fails to load. The GUI gives me a Bad gateway error and none of my devices work. The only way to get it back is edit the entry out of configuration.yaml and restart.

    Any help is appreciated!

    ReplyDelete
    Replies
    1. Never mind. I saved the page instead of downloading the js file. Uggh

      Delete
  12. Can anyone please explain in details the required steps for zigbee2mqtt, I copied the code from github, created a new file under zigbee2mqtt folder in HA, pasted the code and named the file to silabs.js, went to zigbee2mqtt setting > external convertes> typed silabs.js >+ and submit.
    After several tries the bridge showed up under the zigbee2mqtt devices for few seconds then it went offline.

    What am I doing wrong? I'm new to zigbee2mqtt never used the external converter.
    Appreciate any help.
    Thanks.

    ReplyDelete
    Replies
    1. Try like this my friend,

      In Home Assistant ...,

      Configuration --> Add-ons, Backup & Supervisor

      Select Zigbee2mqtt ...,

      Select the Configuration Tab ...,

      You will see ... external_converters:[ ] ... get rid of the [ ] and press enter for a new line. Double space
      - silabs.js

      Should look like this ...

      external_converters:
      - silabs.js

      SAVE and Restart.

      Done ;)

      Like some comments above, I do not think this is yet " fully " supported. Something 'bout a PR.

      The device will show as a Z on your map.

      @digiblurDIY last picture shows the device as " Online "

      In the device Availability, mine shows as DISABLED ... Having said all that ... it is " connected " to my Coordinator and 5 router devices on the Map.

      Let us know how you do with yours.

      Delete
    2. The ( - silabs.js ) should start UNDER the t in external_converters:

      NOT like you see ABOVE.

      Delete
  13. nice work ,i have flashed a zbBridge with router firm but cant use it with OpenHab's zigbee binding,it discovers as a router but says "No supported clusters found"...

    ReplyDelete
  14. Went through the process easily, all went well. I do not use Z2M.
    When I add the bridge to HA I see it listed as Coordinator. Shouldn't it be listed as Router? How can I be sure that it works as it supposed to?

    ReplyDelete
  15. This is really cool and I got it working. Is there a max on number of direct child it can support? I seem to max out at 6...

    ReplyDelete
  16. This comment has been removed by the author.

    ReplyDelete

Post a Comment