SONOFF ZBDongle-E (Zigbee/Thread-USB-Stick)
Mein Thread-Funkmodul: Der Stick läuft mit Thread-Firmware und hängt am OpenThread Border Router in Home Assistant.
Dieser Artikel enthält Affiliate-Links. Kaufst du darüber, bekomme ich eine kleine Provision – für dich ändert sich am Preis nichts. Mehr dazu
Matter über Thread ist großartig, solange es läuft. Wenn es nicht läuft, ist die Fehlersuche allerdings ein bisschen wie Detektivarbeit im Nebel: Geräte stehen auf „nicht verfügbar“, die Oberfläche zeigt keinen Fehler, und im Log steht auch nichts Offensichtliches. Ich habe mich bei meinem Thread-Netz schon mehrfach durch genau diese Situation gearbeitet. Hier ist die Checkliste, die ich mir daraus gebaut habe.
Damit die Fehlersuche überhaupt Sinn ergibt, hilft ein grobes Bild vom Aufbau:
Daraus folgt eine wichtige Regel: Fällt der Weg zwischen Home Assistant und dem Border Router aus, sehen alle Thread-Geräte gleichzeitig kaputt aus, obwohl das Mesh selbst völlig in Ordnung ist. Genau das ist der typische Fehlerfall.
Fangt beim Offensichtlichen an. Ist das OpenThread-Border-Router-Add-on gestartet, und findet ihr unter Einstellungen → Geräte & Dienste → Thread ein Netzwerk mit eurem Border Router? Wenn das Netzwerk dort fehlt oder der Border Router als nicht erreichbar auftaucht, braucht ihr gar nicht erst bei den Geräten weiterzusuchen.
Auch der Stick selbst kann das Problem sein. Wenn ihr Home Assistant in einer VM betreibt, wie ich, muss der Stick sauber an die VM durchgereicht sein. Dazu habe ich einen eigenen Artikel geschrieben: Home Assistant OS als VM mit USB-Passthrough. Kurzfassung: Der Host darf den Stick nicht selbst mit einem Treiber belegen.
Das war bei mir der Klassiker. Thread arbeitet mit IPv6, auch wenn euer Heimnetz im Alltag überwiegend IPv4 benutzt. Der Border Router muss IPv6-Pakete zwischen dem Thread-Netz und dem Heimnetz weiterreichen, und dafür muss auf dem Home-Assistant-Host die IPv6-Weiterleitung aktiv sein.
Nach einer Neuinstallation meiner VM war das bei mir nicht der Fall. Das Ergebnis: Der Border Router lief, das Thread-Netz existierte, die Geräte waren im Mesh – und trotzdem war aus Home-Assistant-Sicht alles tot. Der Wert, den man prüft, heißt unter Linux net.ipv6.conf.all.forwarding und muss auf 1 stehen:
sysctl net.ipv6.conf.all.forwarding
# erwartet: net.ipv6.conf.all.forwarding = 1
Wenn ihr darauf keinen direkten Zugriff habt, weil HAOS euch keine normale Shell gibt, geht das über die Konsole der VM bzw. des Geräts. Wichtig ist nur, dass die Einstellung einen Neustart überlebt, sonst sucht ihr nach dem nächsten Reboot wieder.
Im Add-on des Border Routers gibt es die Option, das Netzwerk-Interface (das „Backbone“) explizit festzulegen. Ich habe es bei mir fest eingetragen, weil in der VM nicht zwingend das Interface genommen wird, das ich erwarte.
Der Nebeneffekt ist angenehm: Mit gesetztem Backbone-Interface kann der Border Router TREL nutzen, also Thread Radio Encapsulation Link. Dabei wird das normale Heimnetz (Ethernet oder WLAN) als zusätzliches „Funkmedium“ für Thread benutzt. Mehrere Border Router, die im selben Netz hängen, können sich darüber verständigen, ohne dass jedes Paket per Funk laufen muss. Das macht ein Thread-Netz mit mehr als einem Border Router deutlich robuster.
Jetzt kommt der Teil, der mich am meisten Zeit gekostet hat. Die REST-Schnittstelle des Add-ons liefert bei mir im Feld baState einen leeren String. Das sieht aus wie ein Fehler, ist aber keiner: Der Border Agent läuft, nur ist der Statuswert in der verwendeten OpenThread-Version offenbar ein Anzeigeproblem. Die Zustandscodes werden nicht erkannt und deshalb leer ausgegeben.
Was stattdessen zuverlässig hilft: prüfen, ob der Border Agent tatsächlich erreichbar ist. Der Dienst lauscht auf einem UDP-Port, und wenn sich der Port ansprechen lässt, läuft der Border Agent. Lasst euch von einem leeren baState also nicht in die Irre führen. Wer dort einen Fehler sieht und anfängt, funktionierende Dinge neu zu installieren, macht es meist schlimmer.
Erst wenn Border Router, IPv6 und Interface stimmen, lohnt der Blick auf das Mesh:
1 und bleibt nach einem Neustart erhalten.baState ignorieren, stattdessen Erreichbarkeit des Border Agents prüfen.Thread ist kein bisschen unzuverlässig, aber die Fehlerbilder sind unintuitiv, weil die Schicht dazwischen unsichtbar ist. Die meisten meiner Ausfälle lagen nicht an den Geräten, sondern an einer Kleinigkeit zwischen Home Assistant und Border Router. Wenn ihr in dieser Reihenfolge vorgeht, spart ihr euch vermutlich ein paar Abende. Und wenn ihr noch keinen Border Router habt: Meine Einrichtung mit dem Sonoff-Stick steht im Artikel zum Thread Border Router.
Mein Thread-Funkmodul: Der Stick läuft mit Thread-Firmware und hängt am OpenThread Border Router in Home Assistant.
Kommentare
Fragen, Ergänzungen oder eigene Erfahrungen? Ich freue mich über deinen Kommentar. Zum Kommentieren brauchst du ein kostenloses GitHub-Konto.
Beim Laden werden Daten an GitHub übertragen. Mehr dazu in der Datenschutzerklärung.