My home Zigbee network has been powered by a Sonoff ZBDongle-P coordinator since 2022, and it’s worked very well.
The problem with it is that it’s USB based, and since I run Zigbee2MQTT as an addon to Home Assistant in a VM, that VM needs to be pinned to a specific host in the the cluster and I couldn’t move it around. Thankfully there’s been some great development around these kinds of devices in the last couple of years, and newer devices with direct network connectivity, powered via PoE, is now available.
As an added bonus, these devices from SMLIGHT also have a built-in admin interface!

I ended up ordering a SMLIGHT SLZB-MRW10, a two radio version that provides Zigbee via a Texas Instruments CC2674P10 chip and Z-Wave via a Silicon Labs EFR32ZG23 chip. The last part was surprising to me, as I had originally planned to do Thread via the non-Zigbee radio. Turns out I should have ordered a SMLIGHT SLZB-MR3 and not the MRW10 edition, but for now this solves my Zigbee issues at least.
Hopefully the MRW10 unit will get Thread support via a firmware upgrade at a later stage, as it’s currently in what SMLIGHT calls an “Evaluation Phase” — Guess I’m an early adopter, even if unintentional.
Migrating From Sonoff ZBDongle-P to SMLIGHT SLZBMRW10#
Migrating from the old Sonoff ZBDongle-P to the SLZB-MRW10 was pretty simple, and this is the procedure I followed:
- Connect SLZB-MRW10 to my IoT VLAN network, powered via PoE
- Open a browser an connect via mDNS slzb-mrw10.local or IP
- Set static IP (Not really required, but I like to have static IPs for things like this) in “Network” -> “Ethernet Options”
- Configure Radio 1 (EFR32ZG23) for Z-Wave and Radio 2 (CC2674P10) for Zigbee in “Mode”
- Update all firmware in “Settings and Tools” -> “Firmware update”
- Configure time settings in “Settings and Tools” -> “Time Settings”
- Copy the IEEE address of the old Sonoff ZBDongle-P stick. This can be found in Zigbee2MQTT at “Settings” -> “About” -> “Coordinator IEEE Address”
The migration from Sonoff ZBDongle-P to the CC2674P10 chip on the SLZB-MRW10 doesn’t require re-pairing of Zigbee devices (both run zstack), so copying the IEEE address should be enough to get the existing devices to connect to the new coordinator once Zigbee2MQTT utilizes it. - Stop the Zigbee2MQTT addon in Home Assistant
- Paste the old IEEE address into the SLZB-MRW10 admin interface under “Z2M and ZHA” -> “ADVANCED: Adapter IEEE address change” -> “[CC2674P10] Flash custom IEEE address”
- Find the “Zigbee2MQTT and ZHA Config generator” section in “Z2M and ZHA”. Select “Zigbee2MQTT” and copy the generated Zigbee2MQTT config (or do it manually).
- Log into HA, find the Zigbee2MQTT addon config, and paste the new config in. In general you will want to replace
port: /dev/ttyUSB0
withport: tcp://ipaddress:port
and ensure thatbaudrate: 115200
is set. Double check that the ip address is correct, and that the right port for the right radio is selected (Radio 1 and Radio 2 uses different ports) - Start the Zigbee2MQTT addon
- If everything is configured correctly, Zigbee2MQTT should start up again connecting to the SLZB-MRW10 device instead of the old USB device.
- Wait until the Zigbee mesh network stabilizes, this might take some time while the network reconnects everything. Some battery based devices might need a nudge to reconnect, like pressing a button or triggering some other kind of event.
In my case, my existing Zigbee network was up and running in a couple of minutes, and I’ve had zero issues with it since migrating over. I had one older IKEA E1812 shortcut button that I couldn’t reconnect to my network before changing coordinators. After the migration, it was adopted without issues. In general it looks like my Link Quality Indication (LQI) has improved pretty much for all devices, and it seems to respond quicker than before.
Finally I can vMotion my HA VM without planning or moving USB connections, and it seems I got better Zigbee performance out of it as well. I like it!