Sonoff Dongle Max Thread läuft nicht

Hallo,

als Neuling habe ich heute HAOS auf nem Wyse 5070 erfolgreich installiert. Ein Sonoff Dongle Max ist schon als Zigbee Coordinator erfolgreich in Betrieb gegangen. Nun wollte ich den 2. Dongle Max als Thread Router installieren und scheitere nun.

Via USB:

Leider gibt mir OpenThread Border Router immer nur den Fehler unten aus.

Alle Geräte wurden mehrfach neu gestartet. USB-Kabel wurde getauscht, USB-Slot wurde gewechselt. Firmware mehrfacht geflasht. Über das Webinterface kontrolliert das er auch wirklich im Thread RCP Mode ist. Bei der Auswahl sichergestellt das es der richtige Stick ist.

Fehlermeldung:

/package/admin/s6-overlay/libexec/preinit: info: container permissions: uid=0 (root), euid=0, gid=0 (root), egid=0

/package/admin/s6-overlay/libexec/preinit: info: /run permissions: uid=0 (root), gid=0 (root), perms=oxorgxgruxuwur

[17:28:15] INFO: Stable mode enabled.

[17:28:15] INFO: The otbr-web is disabled.

/run/s6/basedir/scripts/rc.init: info: hook /etc/s6-overlay/scripts/enable-check.sh exited 0

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 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

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

 Add-on: OpenThread Border Router

 OpenThread Border Router app

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

 Add-on version: 3.1.2

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

 System: Home Assistant OS 18.2  (amd64 / generic-x86-64)

 Home Assistant Core: 2026.9.1

 Home Assistant Supervisor: 2026.09.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

[17:28:15] INFO: Migrating OTBR settings if needed...

2026-09-10 17:28:15 homeassistant asyncio[230] DEBUG Using selector: EpollSelector

2026-09-10 17:28:15 homeassistant zigpy.serial[230] DEBUG Opening a serial connection to '/dev/serial/by-id/usb-SONOFF_SONOFF_Dongle_Max_MG24_ded7fddf95edf011bf2cf04c7632b0c4-if00-port0' (baudrate=460800, xonxoff=False, rtscts=True)

2026-09-10 17:28:15 homeassistant serialx.platforms.serial_posix[230] DEBUG Locking serial port '/dev/serial/by-id/usb-SONOFF_SONOFF_Dongle_Max_MG24_ded7fddf95edf011bf2cf04c7632b0c4-if00-port0'

2026-09-10 17:28:15 homeassistant serialx.platforms.serial_posix[230] DEBUG Configuring serial port '/dev/serial/by-id/usb-SONOFF_SONOFF_Dongle_Max_MG24_ded7fddf95edf011bf2cf04c7632b0c4-if00-port0'

2026-09-10 17:28:15 homeassistant serialx.platforms.serial_posix[230] DEBUG Configuring serial port: TcsetattrFlags(iflag=0, oflag=0, cflag=2147486896, lflag=0, ispeed=4100, ospeed=4100, cc_vmin=0, cc_vtime=0) + cc=[b'\x03', b'\x1c', b'\x7f', b'\x15', b'\x04', 0, 0, b'\x00', b'\x11', b'\x13', b'\x1a', b'\x00', b'\x12', b'\x0f', b'\x17', b'\x16', b'\x00', b'\x00', b'\x00', b'\x00', b'\x00', b'\x00', b'\x00', b'\x00', b'\x00', b'\x00', b'\x00', b'\x00', b'\x00', b'\x00', b'\x00', b'\x00']

2026-09-10 17:28:15 homeassistant serialx.platforms.serial_linux[230] DEBUG Setting low latency mode: True

2026-09-10 17:28:15 homeassistant serialx.platforms.serial_posix[230] DEBUG Setting modem pins: ModemPins[dtr rts]

2026-09-10 17:28:15 homeassistant serialx.platforms.serial_posix[230] DEBUG Setting TIOCMBIS: 0x00000006

2026-09-10 17:28:15 homeassistant zigpy.serial[230] DEBUG Connection made: <serialx.platforms.serial_linux.LinuxSerialTransport object at 0x7efd734d42d0>

2026-09-10 17:28:15 homeassistant universal_silabs_flasher.spinel[230] DEBUG Sending frame SpinelFrame(header=SpinelHeader(transaction_id=0, network_link_id=0, flag=2), command_id=<CommandID.RESET: 1>, data=b'\x02')

2026-09-10 17:28:15 homeassistant universal_silabs_flasher.spinel[230] DEBUG Sending data b'~\x80\x01\x02\xea\xf0~'

2026-09-10 17:28:15 homeassistant serialx.descriptor_transport[230] DEBUG Immediately writing b'~\x80\x01\x02\xea\xf0~'

2026-09-10 17:28:15 homeassistant serialx.descriptor_transport[230] DEBUG Sent 7 of 7 bytes

2026-09-10 17:28:17 homeassistant universal_silabs_flasher.spinel[230] DEBUG Device did not respond to reset, continuing

2026-09-10 17:28:17 homeassistant universal_silabs_flasher.spinel[230] 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')

2026-09-10 17:28:17 homeassistant universal_silabs_flasher.spinel[230] DEBUG Sending data b'~\x83\x02\x08\xbc\x9a~'

2026-09-10 17:28:17 homeassistant serialx.descriptor_transport[230] DEBUG Immediately writing b'~\x83\x02\x08\xbc\x9a~'

2026-09-10 17:28:17 homeassistant serialx.descriptor_transport[230] DEBUG Sent 7 of 7 bytes

2026-09-10 17:28:19 homeassistant universal_silabs_flasher.spinel[230] 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 3)

2026-09-10 17:28:20 homeassistant universal_silabs_flasher.spinel[230] 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')

2026-09-10 17:28:20 homeassistant universal_silabs_flasher.spinel[230] DEBUG Sending data b'~\x83\x02\x08\xbc\x9a~'

2026-09-10 17:28:20 homeassistant serialx.descriptor_transport[230] DEBUG Immediately writing b'~\x83\x02\x08\xbc\x9a~'

2026-09-10 17:28:20 homeassistant serialx.descriptor_transport[230] DEBUG Sent 7 of 7 bytes

2026-09-10 17:28:22 homeassistant universal_silabs_flasher.spinel[230] 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 3)

2026-09-10 17:28:22 homeassistant universal_silabs_flasher.spinel[230] 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')

2026-09-10 17:28:22 homeassistant universal_silabs_flasher.spinel[230] DEBUG Sending data b'~\x83\x02\x08\xbc\x9a~'

2026-09-10 17:28:22 homeassistant serialx.descriptor_transport[230] DEBUG Immediately writing b'~\x83\x02\x08\xbc\x9a~'

2026-09-10 17:28:22 homeassistant serialx.descriptor_transport[230] DEBUG Sent 7 of 7 bytes

2026-09-10 17:28:24 homeassistant universal_silabs_flasher.spinel[230] 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 3)

2026-09-10 17:28:24 homeassistant serialx.descriptor_transport[230] DEBUG Closing at the request of the application

2026-09-10 17:28:24 homeassistant serialx.descriptor_transport[230] DEBUG Backgrounding a close request: None

2026-09-10 17:28:24 homeassistant zigpy.serial[230] DEBUG Waiting for serial port to close

2026-09-10 17:28:24 homeassistant serialx.descriptor_transport[230] DEBUG Closing connection: None

2026-09-10 17:28:24 homeassistant serialx.descriptor_transport[230] DEBUG Closing file descriptor 7

2026-09-10 17:28:54 homeassistant serialx.descriptor_transport[230] DEBUG Calling protocol `connection_lost` with exc=None

2026-09-10 17:28:54 homeassistant zigpy.serial[230] DEBUG Connection lost: None

Traceback (most recent call last):

  File "/usr/local/lib/python3.13/dist-packages/universal_silabs_flasher/spinel.py", line 260, in send_frame

    return await asyncio.shield(future)

           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

asyncio.exceptions.CancelledError

The above exception was the direct cause of the following exception:

Traceback (most recent call last):

  File "/usr/local/bin/migrate_otbr_settings.py", line 228, in <module>

    asyncio.run(main())

    ~~~~~~~~~~~^^^^^^^^

  File "/usr/lib/python3.13/asyncio/runners.py", line 195, in run

    return runner.run(main)

           ~~~~~~~~~~^^^^^^

  File "/usr/lib/python3.13/asyncio/runners.py", line 118, in run

    return self._loop.run_until_complete(task)

           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^

  File "/usr/lib/python3.13/asyncio/base_events.py", line 725, in run_until_complete

    return future.result()
           ~~~~~~~~~~~~~^^
  File "/usr/local/bin/migrate_otbr_settings.py", line 156, in main

    hwaddr = await get_adapter_hardware_addr(

             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ...<3 lines>...

    )
    ^
  File "/usr/local/bin/migrate_otbr_settings.py", line 103, in get_adapter_hardware_addr
    rsp = await protocol.send_command(

          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

    ...<2 lines>...

    )

    ^

  File "/usr/local/lib/python3.13/dist-packages/universal_silabs_flasher/spinel.py", line 292, in send_command
    return await self.send_frame(frame, **kwargs)

           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/dist-packages/universal_silabs_flasher/spinel.py", line 259, in send_frame
    async with asyncio_timeout(timeout):
               ~~~~~~~~~~~~~~~^^^^^^^^^
  File "/usr/lib/python3.13/asyncio/timeouts.py", line 116, in __aexit__
    raise TimeoutError from exc_val
TimeoutError
[17:28:54] WARNING: otbr-agent exited with code 1 (by signal 0).
Chain OTBR_FORWARD_INGRESS (0 references)
target     prot opt source               destination         
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            
[17:28:54] INFO: OTBR firewall/NAT64 rules teardown completed.
s6-svlisten: fatal: some services reported permanent failure or their supervisor died
s6-rc: warning: unable to start service otbr-agent: command exited 1
/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: stopping
s6-rc: info: service banner: stopping
s6-rc: info: service banner successfully stopped
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: warning: service s6rc-oneshot-runner is marked as essential, not stopping it

Via LAN: Funktioniert super, wenn man dann endlich gefunden hat das man in der App die Credentials noch syncen muss :slight_smile:

Grundsätzlich läuft es ja über LAN, doch eigentlich soll es im finalen Setup per USB direkt angeschlossen sein, mangels LAN Option vor Ort.

Ich würde mich über ein paar Tipps, Links oder Problemlösungsansätze freuen. Im Zweifel gerne auch einen Discord Call mit Screen Share, macht es vielleicht einfacher.

Hier mal noch ein Screenshot aus dem Webinterface von Sonoff.

Und einer von den HA Integrationen:

HA Apps:

DANKE

Hast du denn bei dem Dongle, über das Web-Frontend, den EFR32MG24-Modus auf Thread RCP umgestellt.
Ich sehe bei deinem screenshot nur Z2M.

Ja, mehrfach geflasht und kontrolliert, er funktioniert ja auch als Thread Router, aber halt nur über LAN und nicht über USB.

Neues Foto mit Markierungen

Rot - da sieht man auch den Modus

Blau - Warum da HA/Z2M steht kann ich nicht nachvollziehen

Gelb - mich wundert auch die Firmware Version 1.0, ist das korrekt?

Findest du sowas

Unter System/Hardware?

Der …ded7fdd7… an USB0 ist der Dongle im Thread Mode. Der …62f0213… ist der im Zigbee Mode.

Der Thread Dongle ist noch bei USB am HA OS PC angeschlossen und bezieht daher seinen Strom. Ist aber aktuell über IP eingerichtet.

Sorry, dann weiß ich auch nicht weiter. :flushed_face:

Hi : )

Ich habe das Problem eben gesehen als ich auf der Suche nach der Lösung für das exakt gleiche Problem war. Nach ewigem rumprobieren habe ich es jetzt gelöst bekommen.

Ich habe in der Konfiguration vom OTBR die Baudrate auf 115200 gestellt. Jetzt läuft er.