OpenThread Border Router running issues

Hi,
after a long time - probably one year using SMLight SLZB07p7 - USB Dongle - my OTBR can’t start:

s6-rc: info: service banner successfully started
s6-rc: info: service otbr-agent: starting
[10:08:49] INFO: Setup OTBR firewall...
[10:08:50] INFO: Migrating OTBR settings if needed...
2025-10-30 10:08:50 homeassistant asyncio[226] DEBUG Using selector: EpollSelector
2025-10-30 10:08:50 homeassistant zigpy.serial[226] DEBUG Opening a serial connection to '/dev/serial/by-id/usb-SMLIGHT_SMLIGHT_SLZB-07p7_4cdc2b8ba473ed118a3b66eefdf7b791-if00-port0' (baudrate=460800, xonxoff=False, rtscts=False)
2025-10-30 10:08:50 homeassistant zigpy.serial[226] DEBUG Connection made: SerialTransport(<_UnixSelectorEventLoop running=True closed=False debug=False>, <universal_silabs_flasher.spinel.SpinelProtocol object at 0x7f9d6d02d0>, Serial<id=0x7f9d420ac0, open=True>(port='/dev/serial/by-id/usb-SMLIGHT_SMLIGHT_SLZB-07p7_4cdc2b8ba473ed118a3b66eefdf7b791-if00-port0', baudrate=460800, bytesize=8, parity='N', stopbits=1, timeout=0, xonxoff=False, rtscts=False, dsrdtr=False))
2025-10-30 10:08:50 homeassistant universal_silabs_flasher.spinel[226] DEBUG Sending frame SpinelFrame(header=SpinelHeader(transaction_id=3, network_link_id=0, flag=2), command_id=<CommandID.PROP_VALUE_GET: 2>, data=b'\x08')
2025-10-30 10:08:50 homeassistant universal_silabs_flasher.spinel[226] DEBUG Sending data b'~\x83\x02\x08\xbc\x9a~'
2025-10-30 10:08:51 homeassistant universal_silabs_flasher.spinel[226] DEBUG Failed to send SpinelFrame(header=SpinelHeader(network_link_id=0, flag=2), command_id=<CommandID.PROP_VALUE_GET: 2>, data=b'\x08'), trying again in 0.10s (attempt 1 of 4)
2025-10-30 10:08:51 homeassistant universal_silabs_flasher.spinel[226] DEBUG Sending frame SpinelFrame(header=SpinelHeader(transaction_id=3, network_link_id=0, flag=2), command_id=<CommandID.PROP_VALUE_GET: 2>, data=b'\x08')
2025-10-30 10:08:51 homeassistant universal_silabs_flasher.spinel[226] DEBUG Sending data b'~\x83\x02\x08\xbc\x9a~'
2025-10-30 10:08:52 homeassistant universal_silabs_flasher.spinel[226] DEBUG Failed to send SpinelFrame(header=SpinelHeader(network_link_id=0, flag=2), command_id=<CommandID.PROP_VALUE_GET: 2>, data=b'\x08'), trying again in 0.10s (attempt 2 of 4)
2025-10-30 10:08:52 homeassistant universal_silabs_flasher.spinel[226] DEBUG Sending frame SpinelFrame(header=SpinelHeader(transaction_id=3, network_link_id=0, flag=2), command_id=<CommandID.PROP_VALUE_GET: 2>, data=b'\x08')
2025-10-30 10:08:52 homeassistant universal_silabs_flasher.spinel[226] DEBUG Sending data b'~\x83\x02\x08\xbc\x9a~'
2025-10-30 10:08:53 homeassistant universal_silabs_flasher.spinel[226] DEBUG Failed to send SpinelFrame(header=SpinelHeader(network_link_id=0, flag=2), command_id=<CommandID.PROP_VALUE_GET: 2>, data=b'\x08'), trying again in 0.10s (attempt 3 of 4)
2025-10-30 10:08:54 homeassistant universal_silabs_flasher.spinel[226] DEBUG Sending frame SpinelFrame(header=SpinelHeader(transaction_id=3, network_link_id=0, flag=2), command_id=<CommandID.PROP_VALUE_GET: 2>, data=b'\x08')
2025-10-30 10:08:54 homeassistant universal_silabs_flasher.spinel[226] DEBUG Sending data b'~\x83\x02\x08\xbc\x9a~'
2025-10-30 10:08:55 homeassistant universal_silabs_flasher.spinel[226] DEBUG Failed to send SpinelFrame(header=SpinelHeader(network_link_id=0, flag=2), command_id=<CommandID.PROP_VALUE_GET: 2>, data=b'\x08'), trying again in 0.10s (attempt 4 of 4)
2025-10-30 10:08:55 homeassistant zigpy.serial[226] DEBUG Waiting for serial port to close
2025-10-30 10:08:55 homeassistant zigpy.serial[226] DEBUG Connection lost: None
Traceback (most recent call last):
  File "/usr/local/lib/python3.11/dist-packages/universal_silabs_flasher/spinel.py", line 213, in send_frame
    return await asyncio.shield(future)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
asyncio.exceptions.CancelledError
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/usr/local/bin/migrate_otbr_settings.py", line 189, in <module>
    asyncio.run(main())
  File "/usr/lib/python3.11/asyncio/runners.py", line 190, in run
    return runner.run(main)
           ^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/asyncio/runners.py", line 118, in run
    return self._loop.run_until_complete(task)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/asyncio/base_events.py", line 653, in run_until_complete
    return future.result()
           ^^^^^^^^^^^^^^^
  File "/usr/local/bin/migrate_otbr_settings.py", line 126, in main
    hwaddr = await get_adapter_hardware_addr(args.adapter, args.baudrate)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/bin/migrate_otbr_settings.py", line 84, in get_adapter_hardware_addr
    rsp = await protocol.send_command(
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/universal_silabs_flasher/spinel.py", line 245, in send_command
    return await self.send_frame(frame, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/universal_silabs_flasher/spinel.py", line 212, in send_frame
    async with asyncio_timeout(timeout):
  File "/usr/lib/python3.11/asyncio/timeouts.py", line 98, in __aexit__
    raise TimeoutError
TimeoutError
[10:08:55] WARNING: otbr-agent exited with code 1 (by signal 0).
Chain OTBR_FORWARD_INGRESS (0 references)
target     prot opt source               destination         
DROP       all  --  anywhere             anywhere             PKTTYPE = unicast
DROP       all  --  anywhere             anywhere             match-set otbr-ingress-deny-src src
ACCEPT     all  --  anywhere             anywhere             match-set otbr-ingress-allow-dst dst
DROP       all  --  anywhere             anywhere             PKTTYPE = unicast
ACCEPT     all  --  anywhere             anywhere            
otbr-ingress-deny-src
otbr-ingress-deny-src-swap
otbr-ingress-allow-dst
otbr-ingress-allow-dst-swap
Chain OTBR_FORWARD_EGRESS (0 references)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere            
[10:08:55] INFO: OTBR firewall teardown completed.
s6-svlisten1: fatal: /run/s6-rc/servicedirs/otbr-agent failed permanently or its supervisor died
s6-rc: warning: unable to start service otbr-agent: command exited 1
s6-rc: info: service legacy-cont-init: stopping
s6-rc: info: service banner: stopping
s6-rc: info: service mdns: stopping
s6-rc: info: service banner successfully stopped
/run/s6/basedir/scripts/rc.init: warning: s6-rc failed to properly bring all the services up! Check your logs (in /run/uncaught-logs/current if you have in-container logging) for more information.
/run/s6/basedir/scripts/rc.init: fatal: stopping the container.
Default: mDNSResponder (Engineering Build) (Oct 28 2025 07:42:47) stopping
s6-rc: info: service legacy-cont-init successfully stopped
s6-rc: info: service fix-attrs: stopping
s6-rc: info: service fix-attrs successfully stopped
s6-rc: info: service s6rc-oneshot-runner: stopping
s6-rc: info: service s6rc-oneshot-runner successfully stopped
[10:08:56] INFO: mDNS ended with exit code 4 (signal 0)...
s6-rc: info: service mdns successfully stopped
[11:01:27] INFO: The otbr-web is disabled.
s6-rc: info: service mdns: starting
s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service mdns successfully started
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service banner: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service legacy-cont-init: starting
s6-rc: info: service legacy-cont-init successfully started
[11:01:29] INFO: Starting mDNS Responder...
Default: mDNSResponder (Engineering Build) (Oct 28 2025 07:42:47) starting
-----------------------------------------------------------
 Add-on: OpenThread Border Router
 OpenThread Border Router add-on
-----------------------------------------------------------
 Add-on version: 2.15.0
 You are running the latest version of this add-on.
 System: Home Assistant OS 16.2  (aarch64 / yellow)
 Home Assistant Core: 2025.10.4
 Home Assistant Supervisor: 2025.10.0
-----------------------------------------------------------
 Please, share the above information when looking for help
 or support in, e.g., GitHub, forums or the Discord chat.
-----------------------------------------------------------
s6-rc: info: service banner successfully started
s6-rc: info: service otbr-agent: starting
[11:01:37] INFO: Setup OTBR firewall...
[11:01:37] INFO: Migrating OTBR settings if needed...
2025-10-30 11:01:38 homeassistant asyncio[227] DEBUG Using selector: EpollSelector
2025-10-30 11:01:38 homeassistant zigpy.serial[227] DEBUG Opening a serial connection to '/dev/serial/by-id/usb-SMLIGHT_SMLIGHT_SLZB-07p7_4cdc2b8ba473ed118a3b66eefdf7b791-if00-port0' (baudrate=460800, xonxoff=False, rtscts=False)
2025-10-30 11:01:38 homeassistant zigpy.serial[227] DEBUG Connection made: SerialTransport(<_UnixSelectorEventLoop running=True closed=False debug=False>, <universal_silabs_flasher.spinel.SpinelProtocol object at 0x7f99e702d0>, Serial<id=0x7f99bc0b20, open=True>(port='/dev/serial/by-id/usb-SMLIGHT_SMLIGHT_SLZB-07p7_4cdc2b8ba473ed118a3b66eefdf7b791-if00-port0', baudrate=460800, bytesize=8, parity='N', stopbits=1, timeout=0, xonxoff=False, rtscts=False, dsrdtr=False))
2025-10-30 11:01:38 homeassistant universal_silabs_flasher.spinel[227] DEBUG Sending frame SpinelFrame(header=SpinelHeader(transaction_id=3, network_link_id=0, flag=2), command_id=<CommandID.PROP_VALUE_GET: 2>, data=b'\x08')
2025-10-30 11:01:38 homeassistant universal_silabs_flasher.spinel[227] DEBUG Sending data b'~\x83\x02\x08\xbc\x9a~'
2025-10-30 11:01:39 homeassistant universal_silabs_flasher.spinel[227] DEBUG Failed to send SpinelFrame(header=SpinelHeader(network_link_id=0, flag=2), command_id=<CommandID.PROP_VALUE_GET: 2>, data=b'\x08'), trying again in 0.10s (attempt 1 of 4)
2025-10-30 11:01:39 homeassistant universal_silabs_flasher.spinel[227] DEBUG Sending frame SpinelFrame(header=SpinelHeader(transaction_id=3, network_link_id=0, flag=2), command_id=<CommandID.PROP_VALUE_GET: 2>, data=b'\x08')
2025-10-30 11:01:39 homeassistant universal_silabs_flasher.spinel[227] DEBUG Sending data b'~\x83\x02\x08\xbc\x9a~'
2025-10-30 11:01:40 homeassistant universal_silabs_flasher.spinel[227] DEBUG Failed to send SpinelFrame(header=SpinelHeader(network_link_id=0, flag=2), command_id=<CommandID.PROP_VALUE_GET: 2>, data=b'\x08'), trying again in 0.10s (attempt 2 of 4)
2025-10-30 11:01:40 homeassistant universal_silabs_flasher.spinel[227] DEBUG Sending frame SpinelFrame(header=SpinelHeader(transaction_id=3, network_link_id=0, flag=2), command_id=<CommandID.PROP_VALUE_GET: 2>, data=b'\x08')
2025-10-30 11:01:40 homeassistant universal_silabs_flasher.spinel[227] DEBUG Sending data b'~\x83\x02\x08\xbc\x9a~'
2025-10-30 11:01:41 homeassistant universal_silabs_flasher.spinel[227] DEBUG Failed to send SpinelFrame(header=SpinelHeader(network_link_id=0, flag=2), command_id=<CommandID.PROP_VALUE_GET: 2>, data=b'\x08'), trying again in 0.10s (attempt 3 of 4)
2025-10-30 11:01:41 homeassistant universal_silabs_flasher.spinel[227] DEBUG Sending frame SpinelFrame(header=SpinelHeader(transaction_id=3, network_link_id=0, flag=2), command_id=<CommandID.PROP_VALUE_GET: 2>, data=b'\x08')
2025-10-30 11:01:41 homeassistant universal_silabs_flasher.spinel[227] DEBUG Sending data b'~\x83\x02\x08\xbc\x9a~'
2025-10-30 11:01:42 homeassistant universal_silabs_flasher.spinel[227] DEBUG Failed to send SpinelFrame(header=SpinelHeader(network_link_id=0, flag=2), command_id=<CommandID.PROP_VALUE_GET: 2>, data=b'\x08'), trying again in 0.10s (attempt 4 of 4)
2025-10-30 11:01:42 homeassistant zigpy.serial[227] DEBUG Waiting for serial port to close
2025-10-30 11:01:42 homeassistant zigpy.serial[227] DEBUG Connection lost: None
Traceback (most recent call last):
  File "/usr/local/lib/python3.11/dist-packages/universal_silabs_flasher/spinel.py", line 213, in send_frame
    return await asyncio.shield(future)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
asyncio.exceptions.CancelledError
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/usr/local/bin/migrate_otbr_settings.py", line 189, in <module>
    asyncio.run(main())
  File "/usr/lib/python3.11/asyncio/runners.py", line 190, in run
    return runner.run(main)
           ^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/asyncio/runners.py", line 118, in run
    return self._loop.run_until_complete(task)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/asyncio/base_events.py", line 653, in run_until_complete
    return future.result()
           ^^^^^^^^^^^^^^^
  File "/usr/local/bin/migrate_otbr_settings.py", line 126, in main
    hwaddr = await get_adapter_hardware_addr(args.adapter, args.baudrate)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/bin/migrate_otbr_settings.py", line 84, in get_adapter_hardware_addr
    rsp = await protocol.send_command(
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/universal_silabs_flasher/spinel.py", line 245, in send_command
    return await self.send_frame(frame, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/universal_silabs_flasher/spinel.py", line 212, in send_frame
    async with asyncio_timeout(timeout):
  File "/usr/lib/python3.11/asyncio/timeouts.py", line 98, in __aexit__
    raise TimeoutError
TimeoutError
[11:01:43] WARNING: otbr-agent exited with code 1 (by signal 0).
Chain OTBR_FORWARD_INGRESS (0 references)
target     prot opt source               destination         
DROP       all  --  anywhere             anywhere             PKTTYPE = unicast
DROP       all  --  anywhere             anywhere             match-set otbr-ingress-deny-src src
ACCEPT     all  --  anywhere             anywhere             match-set otbr-ingress-allow-dst dst
DROP       all  --  anywhere             anywhere             PKTTYPE = unicast
ACCEPT     all  --  anywhere             anywhere            
otbr-ingress-deny-src
otbr-ingress-deny-src-swap
otbr-ingress-allow-dst
otbr-ingress-allow-dst-swap
Chain OTBR_FORWARD_EGRESS (0 references)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere            
[11:01:43] INFO: OTBR firewall teardown completed.
s6-svlisten1: fatal: /run/s6-rc/servicedirs/otbr-agent failed permanently or its supervisor died
s6-rc: warning: unable to start service otbr-agent: command exited 1
s6-rc: info: service legacy-cont-init: stopping
s6-rc: info: service banner: stopping
s6-rc: info: service mdns: stopping
s6-rc: info: service banner successfully stopped
Default: mDNSResponder (Engineering Build) (Oct 28 2025 07:42:47) stopping
/run/s6/basedir/scripts/rc.init: warning: s6-rc failed to properly bring all the services up! Check your logs (in /run/uncaught-logs/current if you have in-container logging) for more information.
/run/s6/basedir/scripts/rc.init: fatal: stopping the container.
s6-rc: info: service legacy-cont-init successfully stopped
s6-rc: info: service fix-attrs: stopping
s6-rc: info: service fix-attrs successfully stopped
s6-rc: info: service s6rc-oneshot-runner: stopping
s6-rc: info: service s6rc-oneshot-runner successfully stopped
[11:01:43] INFO: mDNS ended with exit code 4 (signal 0)...
s6-rc: info: service mdns successfully stopped

I have tried to unplug the USB dongle and succesfully flashed it with the PC directly from SMLight webpage - with Thread Firmware.
Restarted, Shut down for a while, started the HA again. Uninstalled the Addon, set the correct parameters

device: >-
  /dev/serial/by-id/usb-SMLIGHT_SMLIGHT_SLZB-07p7_4cdc2b8ba473ed118a3b66eefdf7b791-if00-port0
baudrate: "460800"
flow_control: false
otbr_log_level: notice
firewall: true
nat64: false

Nothing helps.

  • What else can I try to repiar it?
  • how to diagnose it further?
    Thank you,
    Michal, Slovakia

Silicon Labs Flasher output:

-----------------------------------------------------------

Add-on: Silicon Labs Flasher

Silicon Labs firmware flasher add-on

-----------------------------------------------------------

Add-on version: 0.4.0

You are running the latest version of this add-on.

System: Home Assistant OS 16.2 (aarch64 / yellow)

Home Assistant Core: 2025.10.4

Home Assistant Supervisor: 2025.10.0

-----------------------------------------------------------

Please, share the above information when looking for help

or support in, e.g., GitHub, forums or the Discord chat.

-----------------------------------------------------------

s6-rc: info: service banner successfully started

s6-rc: info: service universal-silabs-flasher: starting

[03:35:05] INFO: The selected serial port is not a USB device.

[03:35:05] WARNING: No firmware found for the selected device, assuming firmware is installed.

[03:35:05] INFO: universal-silabs-flasher-up script exited with code 0

s6-rc: info: service universal-silabs-flasher successfully started

s6-rc: info: service legacy-services: starting

s6-rc: info: service legacy-services successfully started

s6-rc: info: service legacy-services: stopping

s6-rc: info: service legacy-services successfully stopped

s6-rc: info: service universal-silabs-flasher: stopping

s6-rc: info: service universal-silabs-flasher successfully stopped

s6-rc: info: service banner: stopping

s6-rc: info: service banner successfully stopped

s6-rc: info: service legacy-cont-init: stopping

s6-rc: info: service legacy-cont-init successfully stopped

s6-rc: info: service fix-attrs: stopping

s6-rc: info: service fix-attrs successfully stopped

s6-rc: info: service s6rc-oneshot-runner: stopping

s6-rc: info: service s6rc-oneshot-runner successfully stopped

s6-rc: info: service s6rc-oneshot-runner: starting

s6-rc: info: service s6rc-oneshot-runner successfully started

s6-rc: info: service fix-attrs: starting

s6-rc: info: service fix-attrs successfully started

s6-rc: info: service legacy-cont-init: starting

s6-rc: info: service legacy-cont-init successfully started

s6-rc: info: service banner: starting

I have the same issue - although my slzb-mr3 is connected over ethernet. I restored the last backup of the addon when the update was given to 2.15.0. This has resolved the issue for me.

1 Like

Thank you, I have learned how to restore the addon from backup, restored the previous version of OTBR and it works!
You helped me, thanks again!

Michal,
Slovakia