ESP Thread Border Router

Moin,

in den Videos/Anleitungen wird immer viel über die USB Varianten von Thread oder Zigbee gezeigt und wie man das einbindet.

Bei meiner Suche damals zum Einbinden meines Nuki Schlosses (Matter over Thread) bin ich (auch aus Preisgründen) über das hier gestolpert:

ESP-Thread-Border-Router (von Espressif)

Da ja HA auch in sehr vielen Bereichen mit ESPs zusammen arbeitet (z.B. ESP Home), wundert mich, dass hier dieser OTBR (noch) nicht genannt wurde.

Ich habe mich damals damit auseinandergesetzt und ich muss gestehen, das Thema ist sicherlich nix für Anfänger, da man hier die FW des OTBR UND des ESP32 selbst konfigurieren und kompilieren muss, wobei es aber auch hierfür eine Anleitung gibt:

Eine etwas genauere Anleitung

Wie gesagt, etwas harte Kost und auch seitens Espressif nicht ganz so gepflegt aber schaffbar.

Ich wollte das Thema hier nur aufgreifen, weil der ESP OTBR bei mir eigentlich wunderbar läuft und einen entscheidenden Vorteil ggü. der ganzen USB Sticks hat:

Er läuft völlig autark (unabhängig von HA) und benötigt auch nicht das OTBR AddOn (nur die Device Anmeldung, wie bei den Sticks auch).
Man kann die Platine zwar auch an den HA Host anstecken, dann aber einfach nur zur Stromversorgung, die Connection zu HA wird über das integrierte WLan Modul des ESP32 hergestellt, welcher dann selbst über seinen Funkchip Thread vernetzt.

Man kann den ESP OTBR aber auch wo ganz anders platzieren, wo man eben noch ausreichend WLan Empfang hat.

Das Thema geht sogar noch weiter in die Thread Konfiguration rein, wenn das von Interesse wäre, da hier sogar über eine opt. aktivierbare Webseite Parameter abgefragt und geändert werden können.

Das nur als Idee, eben die ESP Basis nicht außer Acht zu lassen, da diese Kombi aus ESP32-S3 und ESP32-H2 (Thread/Zigbee Funkchip) eine sehr interessante Variation darstellt.

Ich habe mich für die Installation/Konfiguration für einen Windows 11 Host entschieden, da bei mir die Linux Variante der Espressif IDF nur Probleme bereitet hat.
Das ganze hat bei mir als Kommandozeilenentwicklung auf Anhieb funktioniert, wobei es aber zu beachten gilt, dass Espressif da wohl die IDF schneller aktualisiert, als die Anleitung dazu.

Wie gesagt, das ist Thread von Grund auf und harte Kost aber man kann es schaffen und bei mir rennt diese Platine in HA parallel mit Matter und MQTT.

Grüße
Net

Hey,

ich habe deinen Post gerade über Google gefunden, da ich mich auch für den ESP Thread Border Router interessiere. Hast du vielleicht noch ein paar Details dazu wie du das ganze aufgesetzt hast? Ich finde die Anleitung die du gepostet hast an vielen Stellend dann doch eher dürftig und unverständlich.

Hier gibt’s noch was Allgemeines bzgl. Thread/ESPHome

Hallo Felix,

ich habe mir die von mir verlinkte Anleitung nochmal angeschaut und Espressif scheint da einige Aktualisierungen vorgenommen zu haben.
Zumindest wurde dort die ESP-IDF aktualisiert.

Nunja, ich habe mich halt durch die dortige Anleitung gehangelt, allerdings eben auf Windows als Kommandozeile konzentriert.
Die Anleitung beschreibt ja den Weg über Linux, wobei ich unter Linux (Debian) keinen Erfolg hatte und erstaunt war, dass es unter Windows doch geklappt hat.
Viele Unterschiede gab es da eh nicht und Git und Co. laufen unter Windows genauso gut und sogar mit fast identischem Befehlssatz.

Ich hatte damals diesen Weg über den ESP Thread Border Router gewählt, da damals die Sticks noch deutlich teurer waren und ich keinen Thread Border Router von Amazon, Apple, usw. für teuer Geld kaufen wollte.
Die “Großen” bieten Thread ja inzwischen in den Premiumgeräten an.
Mein ESP TBR hat damals nur 15€ gekostet, daher habe ich es einfach mal gewagt.

Heute würde ich verm. doch zu einem Stick ala Sonoff Dongle E (oder neuer) greifen (habe ich bei Zigbee auch gemacht) und diesen auf Thread flashen.

Ich hatte damals mit einigen Fehlern zu kämpfen, die heute eigentlich behoben sein sollten (z.B. hatte die Speichergröße beim Kompilieren nicht gestimmt, der Webserver lief daher nicht).
Aber ich habe nun auch nichts anderes gemacht, als mich an die obige Anleitung zu halten und Fehlermeldungen zu googeln.

Wenn Du noch keinen ESP TBR hast, würde ich mir überlegen, nicht doch zu was anderen zu greifen aber ich muss auch sagen, wenn das Ding läuft, läuft es und auch autark (also ohne Kabelverbundung zu Deinem HA Host).
D.h., wenn HA neu gestartet werden muss oder nicht läuft, bleibt das Thread Netzwerk trotzdem weiterhin lauffähig.
Und D kannst den ESP TBR dort platzieren, wo Du Strom hast und musst ihn nicht an deinen HA Host anklemmen (wie eben die sonst üblichen Sticks).

Bei Espressif wird vor der Verwendung des optional einkompilierten Webservers gewarnt, weil Leute in Deinem Netz da dann eben drin rumpfuschen können aber ich habe gerade am Anfang den Webserver gerne genutzt, um zu schauen, wie der Status ist und ob alles läuft.
Wenn man sicher ist, kann man den Webserver auch bei einer Neukompilierung weglassen, kann dann aber nicht mehr so einfach den Status und die Konfiguration per Browser abrufen.

Matter habe ich soweit “dezimiert” und durch MQTT ersetzt, da ich gemerkt habe, dass MQTT irgendwie unabhängiger und stabiler läuft.
Mein Nuki Schloss hatte ich Anfangs mit Matter betrieben, da mein Nuki 4 NonPro kein WLan hat und ich WLan bei batteriebetriebenen Geräten auch vermeide (nicht nur wegen dem Stromverbrauch, sondern auch wegen dem WLan Overload in meiner Umgebung).
Als ich gesehen habe, dass mein Schloss auch MQTT über Thread kann, habe ich es parallel laufen lassen und nutze nach diversen Tests nur noch MQTT.
Das aber nur als Info, weil im Zusammenhang mit Thread oft Matter als Steuerungsprotokoll verwendet wird.
Ich habe zwar noch 2 Shelly Relais, die auch Matter können, dort bin ich aber auf MQTT über Zigbee gegangen, da ich Zigbee im Moment einfach für Stressfreier als Thread halte.

Wenn Du einen ESP TBR noch zum Kaufen findest und das Wagnis eingehen möchtest, es wird Hürden geben, die aber zu meistern sind.
Meine Probleme damals waren die falsche Speichergröße im ESP32-S3 Teil des Moduls und ich brauchte einige Anläufe, um Matter an HA anzumelden und die Geräte rein zu bringen.
Das kann aber auch an HA oder meinem Netzwerk gelegen haben.
Letztendlich lief das Ganze trotz Fehlermeldung (die HA Compangnon App behauptete dauernd, das Matter Gerät wurde wegen eines (nicht genannten) Fehlers nicht eingebunden, jedoch hat alles funktioniert).
Ein weiteres Problem war, dass beim Restart meines Routers (also der Verlust des WLan Signals) der ESP TBR nicht mehr auf diesen eingewählt hat.
Aber das funktioniert inzwischen ganz gut und im Notfall reichte ein Reset des ESP TBR.

Lange Rede, kurzer Sinn:
Das Ding macht mehr Arbeit (weil eben konfiguriert und kompiliert werden muss) aber für mich hat es sich gelohnt (wobei ich aber auch gut Zeit investiert habe).
Leider gibt es von Espressif nix fertig kompiliertes, wo man nur noch die Konfig einträgt, sondern man muss die Konfig gleich mit einkompilieren.

Das Teil kann technisch auch Zigbee (ist ja die gleiche Hardware), jedoch habe ich bisher nichts gefunden, wo Espressif darauf eingeht.

Im Ganzen läuft das so ab, dass Du zuerst den Router kompilierst und flashst (den ESP32-H2 Part) und dann den den Hauptteil des ESP32 mit WLan und Co. (ESP32-S3 beim ESP TBR).
Die Platine beherbergt zwei ESPs, die bereits auf der Platine per serieller Verbindung miteinander verknüpft und konfiguriert sind, daher läuft das Thread Netzt auch völlig unabhängig von jeglicher anderer Hardware.

Das war jetzt viel Text aber ich hoffe, ich konnte es ein wenig verständlicher ausdrücken und es soll aber auch niemanden vor dem Abenteuer “ESP TBR” abschrecken.
Wer technisch affin ist, kann es wagen, wer nur schnell ne Lösung sucht, schaut sich besser nach was anderem um.

Nachtrag:
Mit einer Aufsteckplatine kannst Du den ESP TBR statt mit WLan auch mit einem Netzwerkkabel betreiben.

2 „Gefällt mir“

Das scheint eine interessante Alternative zu sein und ich habe damals auch öfter über den ESP32-C6 Modul gelesen aber ich wollte halt zum einen den S3 nutzen, der schneller ist und einen weiteren Core besitzt und zum anderen sich der H2 Part rein um Thread kümmern kann.
Ob das bei Thread nötig ist, weiß ich nicht aber hier arbeiten zwei ESPs zusammen mit insgesamt 3 Cores und mehr Speicher, was im Preis kaum was ausmacht zum C6.

Danke für deine sehr ausführliche Antwort!

Kurz zum Hintergrund: Ich habe aktuell bereits einen Sonoff Dongle mit OTBR in HA im Einsatz. Allerdings will ich das ganze Matter-Setup gerne in mein IoT-VLAN umziehen, da Matter selbst von Haus aus nicht wirklich gut über verschiedene VLANs hinweg funktioniert und dafür anscheinend nicht ausgelegt wurde.

Das ganze in einem LXC/VM mit zwei Docker Containern im IoT-LAN (für Matter und den OTBR) scheint für mich nicht so wirklich zu funktionieren, weil das durchreichen des Dongles von Proxmox in einen LXC/VM und dann weiter in einen Docker-Container nicht so wirklich funktioniert und ich den OTBR dort deswegen nicht wirklich zum Laufen bekomme (der Matter-Server als eigener Docker Container funktioniert hingegen tadellos).

Eine Alternative wäre sich einen Raspberry Pi 3 oder ähnliches zu organisieren und das ganze Matter/Thread gedöhns darauf direkt nativ mit Docker laufen zu lassen, allerdings hatte ich jetzt wenig Lust gerade mir noch einen weiteren SBC in die Wohnung zu hängen. Bei der Recherche bin ich dann eben an dem ESP Thread Borader Router hängen geblieben. Das Thema an sich fand ich sehr spannend und da ich grundsätzlich durchaus Spaß am Basteln & Frickeln habe, klang das nach einer spannenden Option als Ersatz für den OTBR in einem Docker-Container mit dem Sonoff Dongle.

Was mich neben deinen bereits berichteten Erfahrungen auch noch interessieren würde. Wie aufwendig/kompliziert ist bei dem ESP ein Software-Update? Muss man das ganze dann von Grund auf neu machen? Und kann man dabei ein bestehendes Thread-Netzwerk portieren? Falls ja, ist das irgendwo beschrieben?

Ich denke aktuell neben Matter-over-Thread auch darüber nach, einige der ESPHome Geräte ins Thread-Netzwerk zu verlegen, da es dort mittlerweile auch eine Möglichkeit gibt die ESPHome API über Thread anzusteuern. Wenn man bei jedem Update das Netzwerk neu aufbauen muss, wäre das extrem unpraktisch.

Was den Update Aufwand angeht, muss ich passen, da ich - seit dem der ESP TBR läuft - kein Update gemacht habe.
Ich gehe davon aus, dass man dann neu kompilieren muss.
Da die Konfig ja auf dem PC gespeichert wird, der die Firmware kompiliert hat, wäre eine Neukompilierung mit den “alten Daten” ja eigentlich kein Problem.

Ob man ein bestehendes Thread Netzwerk portieren kann, weiß ich nicht, dazu fehlen mir die Kenntnisse.
Bisher habe ich das aber auch noch nicht gebraucht, da ich momentan nur mein Nuki Schloss im Thread Netzwerk habe und dieses recht schnell wieder neu eingerichtet ist.

Ich bin in Sachen Thread kein Profi und bin froh, dass mein ESP TBR stabil läuft.
Du müsstest daher wohl selbst testen, ob es sich für Dich lohnt.
Der Punkt mit dem unabhängigen Thread Netzwerk spräche aber dafür, da Du Dir dann eben - wie auch von Dir genannt - ein extra Gerät und Container sparen kannst.

Nachtrag:
Der ESP TBR hat übrigens auch ein CLI, welches über den seriellen Monitor angesprochen werden kann, sofern man das beim Kompilieren mit angegeben hat.
Auch hier gibt es Möglichkeiten, das Ganze zu monitoren/konfigurieren.

1 „Gefällt mir“

Alles klar, danke für deine Antwort!

Ich bin selbst auch kein Profi, aber es wäre sicher ein spannendes Projekt sowas selbst zusammen zu basteln. Ich überlege es mir mal, der Kostenaufwand hält sich ja in Grenzen.

Hast du für deinen Border Router ein Gehäuse? Wenn ja, hast du dir das 3D gedruckt? Oder gibt es dafür auch Gehäuse zu kaufen? Konnte da auf die schnelle nichts finden außer ein (zugegebenermaßen sehr häßliche) Projekt für 3D-Druck

Ich hatte mal ein Gehäuse für meinen 3D Drucker Display gedruckt, das nie in Verwendung ging.
Dort ist die Unterschale so groß, dass ich diese einfach drüber gelegt habe, damit sich kein Staub darauf absetzt.
Also eher eine Notlösung.

Ansonsten fand ich nur dieses Teil zum Selberdrucken:

ESP-Thread-Border-Router / ESP32-S3 + ESP32-H2 by martin8310 - Thingiverse

Das Ding wird scheinbar (so oder so ähnlich) für teuer Geld auf diversen Plattformen angeboten ….

Ich habe schon selbst überlegt, ein eigenes zu entwerfen aber momentan fehlt mir einfach die Zeit und meine Notlösung tuts eben im Moment auch.

Nachtrag:
Ach ja, ich habe das Teil auf einem Regal liegen und sehe es deswegen nicht, daher ist es mir eigentlich egal, wie das Teil aussieht.

Ja genau, die habe ich auch gefunden. Und noch eine weitere wenn man das ganze mit Ethernet-Anschluss betreibt. Ich fragte nur, weil ich hier schon genug offene Platinen aus meinen ESPHome Basteleien rumfliegen hab und das ganze bei der werten Mitbewohnerin schon nicht allzu beliebt ist :smiley:

Hallo zusammen. Hab mich auch durch das setup von dem teil gequält. Wäre eigentlich auchnicht so wild gewesen wenn espressif und das otbr Projekt nicht leicht andere Dokus hätten die man nicht mischen sollte.

(Und man drauf kommen muss dass ein build die Konfiguration wieder löscht)

Aber davon mal abgesehen hab ich das Problem, dass der Border router nach einer Weile immer einfriert. Dann geht kein web ui mehr und nichts.

Hat das auch jemand? Oder habt ihr evtl ne Idee was ich vergessen habe ?

Die Konfig wird gespeichert, wenn Du das in dem Programm manuell speicherst, wo Du auch die Einstellungen voenimmst.

Danach kannst Du neue Builds erstellen, darfst aber nicht vergessen, die gespeicherte Konfig vorher zu laden, falls Du darin was ändern möchtest.

Die beim Speichern der Konfig angelegte Datei wird beim Build geladen.

Was das Einfrieren/Aufhängen angeht, kann ich nur mutmaßen, jedoch ist zu klären, ob sich der TBR wirklich aufgehängt hat oder nur nicht mehr im WLan ist.

Bei mir war es Anfangs so, dass bei einem WLan Signalverlust sich der TBR nicht mehr automatisch verbindet, wenn z.B. der Router neu gestartet wurde.

Anfangs hatte Espressif einfach keinen Reconnect vorgesehen, womit bei dem Szenario ein Reboot des TBR nötig wurde.

Inzwischen hat Espressif das in der Konfig nachgeliefert, jedoch kann es sein, dass der Reconnect standardmäßig zu wenige Versuche unternimmt und stoppt, bevor das WLan wieder da ist.

Ich meine, Standard sind 6 Versuche, die man laut Doku u.U. auf 100 setzen soll, was wohl auf „unendlich“ von der Konfig interpretiert wird.

Bei mir läuft der ESP TBR nun schon seit sehr langer Zeit ohne Probleme und anfangs half ein Reset des TBR, was eben wohl am damals fehlenden Reconnect lag.

Ich hatte die Konfig mit dem gui gespeichert. Dann guide geschlossen und es war noch da. Dann build gestartet, gui aufgemacht und es war weg. Als erster step steht im build wohl ein fullClean (warum auch immer). Aber ist eh müßig läuft ja jetzt.

Wifi würde ich ausschließen, weil in den Fällen auch auf dem terminal nichts mehr geht. Aktuell ist das teil bei mir nach 1-2 Aktionen oder 5 minuten oder so direkt gefroren. Keine Ahnung ob dem irgendwo ein Buffet überhäuft oder so :man_shrugging:

Wenn Du das GUI öffnest, musst Du die Konfig manuell laden.

Das mit dem Terminal ist dann in der Tat ungewöhnlich.

Hier muss ich leider passen, mein letztes Build ist lange her, da bliebe nur zu schauen, ob irgendwo Fehlermeldungen beim Build auftauchen oder was der Monitor anzeigt, bevor sich das Teil aufhängt.