Configuring Zigbee2MQTT with SLZB always fails with "Error: network commissioning timed out - most likely network with the same panId or extendedPanId already exists nearby"

I've got some problems with setting up ZIgbee here. I've cross-posted this to some relevant communities:

I included all details everywhere, so this is quite long, just in case some help. The "Questions" part below is always adjusted for the questions for this community.

Use case

I've got a SLZB-Ultima device, which is running multiple chips for Zigbee, Matter etc. Let's focus on Zigbee first, which I tried to connect via USB to Home Assistant, which is running Zigbee2MQTT as an app (aka in a docker container, but this is shipped as is from Home Assistant as an "app" [formerly called add-on], so I expect no problems.). Home Assistant OS is running as a VM upon IncusOS aka virtualization via Incus, so I forwarded the USB as a device to the VM and then configured it in HA/Zigbee2MQTT "as usual".

In short the stack is this: Zigbee2MQTT -> (Docker/HA app) -> Home Assistant OS -> Incus -> IncusOS

What I did in detail

  1. What most guides miss: On SLZB-Ultima, enable USB mode. Go to /mode (the main page mostly), and enable USB mode, which disables network mode.

  2. Find out the serial number of the USB device, You can do this from another device with tools like lsusb -v or similar.
    Otherwise, the system logs (web interface at /ui/os/logs) also show an USB connect with all needed details. You can then copy the serial.

  3. Then configure a "device" in IncusUI ("Devices" -> "Other"). You obviously want to choose USB devices:

    This can be checked/is equivalent to:

    $ incus config show IncusOS:HAOS   
    // ....
    devices:
      custom-device-1:
        attached: "true"
        serial: SLZB-Ultima******
        type: usb
    

    (Yeah, I also wonder why attached is a string type, but hmm?)

  4. Now you can check e.g. with lsusb that the USB devices actually appear. As it exposes two serial interfaces, it's apparently two "devices". Or even better, in then log UI of IncusOS, you also see it:

    26. Juni, 17:46:04 localhost kernel: usb 2-6: New USB device found, idVendor=303a, idProduct=4002, bcdDevice= 1.00
    26. Juni, 17:46:04 localhost kernel: usb 2-6: New USB device strings: Mfr=1, Product=2, SerialNumber=3
    26. Juni, 17:46:04 localhost kernel: usb 2-6: Product: SMLIGHT SLZB-Ultima3
    26. Juni, 17:46:04 localhost kernel: usb 2-6: Manufacturer: SMLIGHT
    26. Juni, 17:46:04 localhost kernel: usb 2-6: SerialNumber: SLZB-Ultima****
    
  5. The documentation explains how to then configure it or you can use the onboarding web UI in HomeAssistant.

Thus, I just used the UI this time (also tried with YAML, did not make a difference):

You can also see it's properly passed to the VM, when checking in the VM:

# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux 6.18.35-haos xhci-hcd xHCI Host Controller
Bus 002 Device 001: ID 1d6b:0003 Linux 6.18.35-haos xhci-hcd xHCI Host Controller
Bus 001 Device 002: ID 303a:**** SMLIGHT SMLIGHT SLZB-Ultima3

So far, this looks all fine and I'm glad it works so well… but actually, it does not and fails.

Error for #0

If I select it to configure with /dev/ttyACM0, it cannot even connect:

[2026-06-28 17:56:55] info: 	zh:zstack:znp: Skip bootloader for CC2652/CC1352
[2026-06-28 17:57:14] error: 	z2m: Error while starting zigbee-herdsman
[2026-06-28 17:57:14] error: 	z2m: Failed to start zigbee-herdsman
[2026-06-28 17:57:14] error: 	z2m: Check https://www.zigbee2mqtt.io/guide/installation/20_zigbee2mqtt-fails-to-start_crashes-runtime.html for possible solutions
[2026-06-28 17:57:14] error: 	z2m: Exiting...
[2026-06-28 17:57:14] error: 	z2m: Error: Failed to connect to the adapter (Error: SRSP - SYS - ping after 6000ms)
    at ZStackAdapter.start (/app/node_modules/.pnpm/[email protected]/node_modules/zigbee-herdsman/src/adapter/z-stack/adapter/zStackAdapter.ts:95:27)
    at Controller.start (/app/node_modules/.pnpm/[email protected]/node_modules/zigbee-herdsman/src/controller/controller.ts:146:29)
    at Zigbee.start (/app/lib/zigbee.ts:70:27)
    at Controller.start (/app/lib/controller.ts:117:29)
    at start (/app/index.js:156:5)

But I also guess this is the wrong device/"port" aka it's the "Zigbee router" instead of "Zigbee Coordinator" (I guess, or reverse?). So I just checked this for completeness.

Error for #1

If I choose the /dev/ttyACM1 device, I get weird PAN-ID errors:

Onboarding page is available at http://0.0.0.0:8099/
[2026-06-28 17:52:29] info: 	z2m: Logging to console, file (filename: log.log)
[2026-06-28 17:52:29] info: 	z2m: External JS (converters/extensions) is disabled
[2026-06-28 17:52:29] info: 	z2m: Starting Zigbee2MQTT version 2.12.0 (commit #unknown)
[2026-06-28 17:52:29] info: 	z2m: Starting zigbee-herdsman (10.4.0)
[2026-06-28 17:52:29] info: 	zh:zstack:znp: Opening SerialPort with {"path":"/dev/ttyACM1","baudRate":115200,"rtscts":false,"autoOpen":false}
[2026-06-28 17:52:29] info: 	zh:zstack:znp: Serialport opened
[2026-06-28 17:53:30] error: 	z2m: Error while starting zigbee-herdsman
[2026-06-28 17:53:30] error: 	z2m: Failed to start zigbee-herdsman
[2026-06-28 17:53:30] error: 	z2m: Check https://www.zigbee2mqtt.io/guide/installation/20_zigbee2mqtt-fails-to-start_crashes-runtime.html for possible solutions
[2026-06-28 17:53:30] error: 	z2m: Exiting...
[2026-06-28 17:53:30] error: 	z2m: Error: network commissioning timed out - most likely network with the same panId or extendedPanId already exists nearby (Error: AREQ - ZDO - stateChangeInd after 60000ms
    at Object.start (/app/node_modules/.pnpm/[email protected]/node_modules/zigbee-herdsman/src/utils/waitress.ts:68:23)
    at ZnpAdapterManager.beginCommissioning (/app/node_modules/.pnpm/[email protected]/node_modules/zigbee-herdsman/src/adapter/z-stack/adapter/manager.ts:376:31)
    at ZnpAdapterManager.start (/app/node_modules/.pnpm/[email protected]/node_modules/zigbee-herdsman/src/adapter/z-stack/adapter/manager.ts:90:21)
    at ZStackAdapter.start (/app/node_modules/.pnpm/[email protected]/node_modules/zigbee-herdsman/src/adapter/z-stack/adapter/zStackAdapter.ts:135:16)
    at Controller.start (/app/node_modules/.pnpm/[email protected]/node_modules/zigbee-herdsman/src/controller/controller.ts:146:29)
    at Zigbee.start (/app/lib/zigbee.ts:70:27)
    at Controller.start (/app/lib/controller.ts:117:29)
    at start (/app/index.js:156:5))
    at ZnpAdapterManager.beginCommissioning (/app/node_modules/.pnpm/[email protected]/node_modules/zigbee-herdsman/src/adapter/z-stack/adapter/manager.ts:378:23)
    at ZnpAdapterManager.start (/app/node_modules/.pnpm/[email protected]/node_modules/zigbee-herdsman/src/adapter/z-stack/adapter/manager.ts:90:21)
    at ZStackAdapter.start (/app/node_modules/.pnpm/[email protected]/node_modules/zigbee-herdsman/src/adapter/z-stack/adapter/zStackAdapter.ts:135:16)
    at Controller.start (/app/node_modules/.pnpm/[email protected]/node_modules/zigbee-herdsman/src/controller/controller.ts:146:29)
    at Zigbee.start (/app/lib/zigbee.ts:70:27)
    at Controller.start (/app/lib/controller.ts:117:29)
    at start (/app/index.js:156:5)

Note I already tried these buttons to re-generate the IDs (so they should be random):

I found this thread but it also just seems to be about re-generating random IDs.

This is a new Zigbee network, so I do not have nor should need a migration or existing network/pan IDs.
Note I tried around with the SLZB and set the second chip to "Hub mode", but yeah… just for basic functionality tests, as I want to integrate it into Home Assistant

SLZB configuration

To my knowledge, this should be the correct configuration for the SLZB:

I also have Zigbee network IDs etc. in /zhub/config (Zigbee Hub -> Settings), I am unsure whether these need to be in sync with Zigbee2MQTT? (in contrast to all other hub settings, I can access this one page without hub mode being enabled, so this is kinda confusing)

Questions

So do I do something wrong here? Is there anything else to try?

I have no dedicated USB card, of course, as this thread suggests. And yes, I would try the option via LAN if everything fails, but I suppose USB should also work and offer much less overhead/latency.

System

SLZB OS: v3.3.1
Zigbee-Coordinator Firmware-Revision: 20250212
Zigbee-Router Firmware-Revision: 20240716
incus 202606230053
Home Assistant v2026.6.4
Home Assistant OS: 18.0

Radio 1 [EFR32MG24] Mode Zigbee coordinator
Radio 2 [CC2674P10] Mode Zigbee router
Connection mode: USB mode

Note I also tried this with a YAML config, like this (which should be equivalent to the GUI one):

data_path: /config/zigbee2mqtt
socat:
  enabled: false
  master: pty,raw,echo=0,link=/tmp/ttyZ2M,mode=777
  slave: tcp-listen:8485,keepalive,nodelay,reuseaddr,keepidle=1,keepintvl=1,keepcnt=5
  options: "-d -d"
  log: false
mqtt: {}
serial:
  port: /dev/serial/by-id/usb-SMLIGHT_SMLIGHT_SLZB-Ultima3_SLZB-Ultima****-if02
  adapter: zstack

(The socat IIRC was pre-defined by HA.)

However, after reboot, it just seems to ignore these settings? No error is even shown? But just the onboarding page, yet again?

[20:37:37] INFO: Preparing to start...
[20:37:37] INFO: Socat not enabled
[20:37:37] INFO: Starting Zigbee2MQTT...
Starting Zigbee2MQTT without watchdog.
Onboarding page is available at http://0.0.0.0:8099/

This was your first mistake. There is no human-detectable difference between USB & LAN on a zigbee network.

Save yourself the hassle and set it up over LAN. You've bought the ultimate coordinator with all the bells & whistles - might as well take advantage of that & not having to deal with:

  • device vs serial USB config
  • USB interference
  • Positioning restrictions
  • USB Passthrough settings

Secondly, switch off the Zigbee Router functionality on the CC2674P10, at least for now. It makes no sense to enable an adapter to be a zigbee router, when the coordinator antenna is literally a couple of inches away. It'll also make troubleshooting your issue much simpler. Use the other antenna for Thread or something, because you're not going to get any tangible benefits of using it as a router.

Finally, & perhaps most important. You're using adapter: zstack on on a Silabs chip (EFR32MG24). You should be using adapter: ember instead. I suggest you wipe out all yaml config & the configuration_backup.yaml & do everything in the onboarding page. It's much simpler & less error prone.

Having said that, I think you should also take a step back & check the most common causes of that error if it persists. In the Z2M error log, one of the lines will point you to this troubleshooting page. Start with the first troubleshooting step (this one), because most likely it's ZHA stepping in & claiming your coordinator (error #0).

Thanks for all the passwords to your zigbee network.

This reads like you copy - pasted what an AI replied to you.
How has your Home Assistant Journey been? What have you learned?
I know you probably read this when you started out here, but perhaps read this again. Having an AI talk (a lot) is a perfect way to get no one to answer you. I would suggest starting out with a short version of your story, what you have running & what you want to accomplish. As it is that post is TA;DR.

Oh that is interesting! Why does not the official doc document this? Surprisingly, also, the SLZB config for the network generation, it uses zstack:

Edit: Oh and I just saw, not for all chips! Hmm thanks! It must be something trivial.

Also, I am no AI. What should I write to prove this this? :sweat_smile: Here some rubbish an LLM would never write: no no no AI, AI is dumb, stupid AI slop, thanks no AI, finish, perfect - (<- this is no an em dash) improper CaPiTaLiSaTiOn.
To be honest: No, I have not used AI at all in this post nor the process. It's sad, that humans are are suspected of writing AI text, just because they write a long thoughtful report of all steps they have tried-

Ah and BTW, yes the PAN IDs etc. will be reset 1000times again likely until I have setup it. :upside_down_face:

That doc you linked is for the SLZB-06 series, which only has a CC chip (zstack). They haven't put up a manual for the Ultima yet (except for hardware mods). Closest thing you're gonna get is to use the manual for the MR series which has both chips.

Don't really blame you for the mistake because even Z2M docs for this model don't make it very clear. Since it has both chips, it's listed under both ember & zstack. Unless you know which chip goes with which config, it's a 50-50 shot of messing it up.

One final word of warning: If you see an update available for the firmware which ends in dev (like 3.3.3.dev7), that's a beta firmware & prone to issues. Do not update blindly, even if you see the notification that the update is available inside HA. SMLight have some kind of issue where dev releases are being marked as stable so HA will show them as available updates.