Matter über Thread streikt? Meine Fehlersuche: IPv6, TREL und ein irreführender Status

von Patrick · · 7 Min. Lesezeit · Ratgeber

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.

Kurz sortiert: Wer macht eigentlich was?

Damit die Fehlersuche überhaupt Sinn ergibt, hilft ein grobes Bild vom Aufbau:

  • Der Border Router verbindet das Thread-Funknetz mit eurem normalen Heimnetz. Bei mir ist das der OpenThread Border Router als Add-on in Home Assistant OS, als Funkmodul dient ein USB-Stick mit Thread-Firmware.
  • Der Matter Server (ebenfalls ein Add-on) spricht Matter mit den Geräten. Er erreicht die Thread-Geräte über den Border Router.
  • Die Thread-Geräte selbst bilden ein Mesh. Netzbetriebene Geräte wie Steckdosen arbeiten als Router und leiten Pakete weiter, batteriebetriebene Geräte schlafen die meiste Zeit und hängen an einem dieser Router.

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.

Schritt 1: Läuft der Border Router überhaupt?

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.

Schritt 2: Die IPv6-Weiterleitung

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.

Schritt 3: Das Netzwerk-Interface und TREL

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.

Schritt 4: Der Fehlalarm beim Status

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.

Schritt 5: Das Mesh selbst

Erst wenn Border Router, IPv6 und Interface stimmen, lohnt der Blick auf das Mesh:

  1. Einzelne Geräte offline, der Rest ok: Dann liegt es am Gerät oder an der Entfernung. Ein batteriebetriebenes Gerät findet nur dann seinen Weg, wenn in Reichweite ein Router-fähiges Gerät steht.
  2. Neue Router-Geräte helfen: Meine IKEA GRILLPLATS-Steckdosen sind nicht nur Stromzähler, sondern auch Thread-Router. Mit jeder weiteren Steckdose im Haus wurde das Mesh dichter. Mehr dazu in meinem Test der Steckdose.
  3. Geduld nach Stromausfällen: Nach einem Neustart aller Komponenten brauchen Thread-Netze eine Weile, bis die Routen neu aufgebaut sind. Erst nach einigen Minuten nachsehen.

Meine Checkliste in Kurzform

  1. Add-on des Border Routers läuft, Netzwerk taucht unter Thread auf.
  2. Stick ist sauber durchgereicht (falls VM).
  3. IPv6-Weiterleitung steht auf 1 und bleibt nach einem Neustart erhalten.
  4. Backbone-Interface im Add-on ist gesetzt, TREL ist damit aktiv.
  5. Leeres baState ignorieren, stattdessen Erreichbarkeit des Border Agents prüfen.
  6. Erst danach einzelne Geräte und das Mesh betrachten.

Fazit

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.

Die Geräte aus diesem Artikel

SONOFF ZBDongle-E (Zigbee/Thread-USB-Stick)
Mein Gerät

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.

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.