ESP-NOW

Antworten
little.yoda
Site Admin
Beiträge: 882
Registriert: 14.09.2018, 19:05
Hat sich bedankt: 33 Mal
Danksagung erhalten: 143 Mal

ESP-NOW

Beitrag von little.yoda » 02.06.2019, 18:00

Ich hatte schon mal im Gartentechnikforum über ESP-NOW berichtet

Vielleicht nochmal zusammengefasst:

Was ist die Idee?
Ein Art Mesh-Netz auf Basis des ESP-NOW aufzubauen. Auf der Fläche werden ESPs, die als Repeater fungieren, verteilt. Jede Nachricht wird dann von jedem Repeater weitergeleitet. Damit eine Abdeckung der Fläche gewährleistet ist.

Warum nicht einfach WLAN nutzen?
Ein Access Point kann nur eine gewisse Fläche abdecken. Für größere Anlagen sind mehrere Access Points notwendig. Für stationäre Objekte ist dies kein Problem. Wenn sich der Dekoder jedoch in einer Lok befindet, dann muss der ESP regelmäßig den Access Point wechseln. Dieser Vorgang dauert mehrere Sekunden, während der die Lok keine Befehle annimmt.

Grenzen:
  • Das ESP-Mesh ist keine Lösung für die Endgeräte (WLAN-Maus, Handy, ...). Diese müssen weiterhin den AP wechseln.
Herausforderungen:
  • Wie kommen die Befehle der Zentrale ins Mesh-Netz
    Wenn ein ESP die Zentrale ist oder Rocrail genutzt wird, ist dies kein Problem, da dann ein ESP die Befehle ins Netz einspeisen kann.
    Wenn jedoch eine z21 genutzt wird, ist nicht sicher gestellt, dass der ESP alle Befehle per WLAN erhält. Ein Ansatz wäre ein DCC Dekoder, die alle Befehle von der Schiene abgreift.
  • Verhalten bei vielen Geräten:
    Im Moment nicht testbar. Wenn die ESP8266 Implementierung funktioniert, könnte man z.B. mal mit 20 Geräten testen.

Wie ist der Stand [Juni 2019]:
  • Leider ist die Implementierung auf dem ESP8266 weiterhin fehlerhaft. Das Grundproblem ist zwar mittlerweile gelöst, aber es ist noch nicht ins ESP8266-Arduino-Framework eingeflossen und wird wohl auch nicht in nächster Zeit(siehe Issue 6174)
  • Da ich mittlerweile genügend ESP32 habe, geht die Entwicklung zumindest langsam voran.
  • Noch nicht praktisch nutzbar

little.yoda
Site Admin
Beiträge: 882
Registriert: 14.09.2018, 19:05
Hat sich bedankt: 33 Mal
Danksagung erhalten: 143 Mal

Re: ESP-NOW

Beitrag von little.yoda » 06.07.2019, 22:58

Auch wenn ich nicht mehr daran geglaubt habe, ist der Bug mittlerweile zumindest in der aktuellen Beta-Version für den ESP8266 korrigiert.

little.yoda
Site Admin
Beiträge: 882
Registriert: 14.09.2018, 19:05
Hat sich bedankt: 33 Mal
Danksagung erhalten: 143 Mal

Re: ESP-NOW

Beitrag von little.yoda » 14.08.2019, 09:06

Deutliche Fortschritte:

Es gibt drei verschiedene Modi für die ESP ...
  • Master
    Steuert das ganze Netz und dient als eine Art Zentrale.
  • Receiver
    Endgeräte wie Loks oder Weichen
  • Repeater
    Geräte, die die Befehle weiterleitet, um das Netzwerk auszuweiten
Ich habe erfolgreich getestet, dass auch Reciver, die nicht direkt vom Master erreichbar sind, über die Repeater erreichbar sind. Damit sollten auch größere Flächen mit einigen wenigen Repeatern (=Standard ESP8266 oder ESP32) abdeckbar sein. Werde ich bei Gelegenheit (Zeit & Wetter) mal im Garten testen.

Für das Problem mit dem Endgerät habe ich mittlerweile auch eine Idee. Ich würde wahrscheinlich einen zusätzlichen ESP8266 (evtl. einen ESP M3) direkt in die Wlan-Maus einbauen. Die WLAN-Maus kann dann über Standard Z21-Befehle mit dem eingebauten ESP kommunizieren und dieser setzt die Befehle nach ESP-Now um. Der zusätzliche ESP wird nur mit der Stromversorgung verbunden.

Der Konfigurationsaufwand für ESP NOW ist relativ gering. Modus des Gerätes, Verschlüsselungskey und der genutzte WLAN-Kanal

Code: Alles auswählen

 {
            "m":"espnow", 
            "role":"repeater",
            "key":"4bda3bf7e849112611fece407328813a",
            "kanal": "1"
},
 


Damit habe ich endlich eine auch für größere Flächen tauglich und preiswerte Lösung.

little.yoda
Site Admin
Beiträge: 882
Registriert: 14.09.2018, 19:05
Hat sich bedankt: 33 Mal
Danksagung erhalten: 143 Mal

Re: ESP-NOW

Beitrag von little.yoda » 29.09.2019, 11:38

ich habe die Lösung heute nochmal etwas in Ruhe draußen (im Regen) getestet:

Ein paar Bugfix waren und sind noch notwendig, aber die grundlegenden Funktionen funktionieren.

Ausgangslage war die folgende:
a3.png
a3.png (11.36 KiB) 7963 mal betrachtet
...c83 ist der Master, also praktisch die Zentrale. ..754 ist ein Repeater
Die beiden anderen Endgeräte standen in der Nähe des Masters. Die Geräte könnten die Zentrale direkt erreichen.
=================================================
a2.png
a2.png (12.36 KiB) 7963 mal betrachtet
hier habe ich ..881 aus dem Bereich der Zentrale entfernt und in die Nähe des Repeaters gebracht. Die Nachrichten von und zu .881 laufen jetzt über ..754

=================================================
a1.png
a1.png (12.84 KiB) 7963 mal betrachtet
hier habe ich ..bc0 aus dem Bereich der Zentrale entfernt und in die Nähe des Repeaters gebracht. Die Nachrichten von und zu .bc0 laufen jetzt ebenfalls über ..754


Es gibt kein "statisches" Routing der Nachrichten. Jede Nachricht wird immer an alle Repeater weitergeleitet und von allen Repeatern weitergeleitet. Mehrere Repeater hintereinander funktionieren auch.


Mit dieser Lösung sollte man auch eine größere Anlage mit relativ wenigen ESP abdecken können.

little.yoda
Site Admin
Beiträge: 882
Registriert: 14.09.2018, 19:05
Hat sich bedankt: 33 Mal
Danksagung erhalten: 143 Mal

Re: ESP-NOW

Beitrag von little.yoda » 02.01.2021, 19:51

Ich habe nochmal versucht das Thema graphisch dazustellen:
espnow.png

Ralf_St.
Beiträge: 355
Registriert: 18.09.2018, 01:14
Hat sich bedankt: 67 Mal
Danksagung erhalten: 17 Mal

Re: ESP-NOW

Beitrag von Ralf_St. » 05.01.2021, 01:52

Hallo Sven

Ich muss wenn ich ehrlich bin gestehen, das ich dieses Thema bisher total unterschätzt habe. Jetzt, wo Du mich explizit nochmal darauf hingewiesen hast und ich mich so gut es geht eingelesen habe, bin ich hin und weg!!

Von daher bin ich absolut gespannt, wie es hier weiter geht!

Was ich überhaupt nicht begreife ist, ESP-NOW ist doch wie geschaffen für Gartenbahner und solche Modellbahner die sehr große Anlagen betreiben. Wo sind all diejenigen, die ständig jammern das es kein vernünftiges System gibt bei dem man problemlos in jeden Winkel des Gartens fahren kann, ohne den Zugriff zu verlieren...

Okay, eine Gartenbahn habe ich nicht, aber mit großen Anlagen kann ich dienen! Zur Zeit zwar nur mit der von Christoph, aber wenn wir Corona irgendwann mal so weit im Griff haben, das ich wieder "raus" kann, dann kann ich auf wirklich großen Anlagen testen!
Wobei Christophs Anlage schon eine erste Herausforderung für ESP-NOW wäre. Wir haben bei der Anlage zwei/drei Bereiche, bei denen es mit der Verbindung öfter mal Probleme gibt. Wenn diese mit ESP-NOW nicht mehr auftreten würden, wäre das eine feine Geschichte.

Du merkst, ich bin was das angeht, Feuer und Flamme, wie man so schön sagt.
Gruß, Ralf

little.yoda
Site Admin
Beiträge: 882
Registriert: 14.09.2018, 19:05
Hat sich bedankt: 33 Mal
Danksagung erhalten: 143 Mal

Re: ESP-NOW

Beitrag von little.yoda » 05.01.2021, 08:56

Ralf_St. hat geschrieben:
05.01.2021, 01:52
Was ich überhaupt nicht begreife ist, ESP-NOW ist doch wie geschaffen für Gartenbahner und solche Modellbahner die sehr große Anlagen betreiben. Wo sind all diejenigen, die ständig jammern das es kein vernünftiges System gibt bei dem man problemlos in jeden Winkel des Gartens fahren kann, ohne den Zugriff zu verlieren...

oh ... Da fallen mir sehr viele Gründe ein (teilweise überspitzt dargestellt):
  • DCC-Schienstrom ist der perfekte Integrator. Gerät angeschlossen und es läuft.
  • Funk (==Wlan) hat schlicht einen schlechten Ruf. "Wenn es mit meinem Laptop nicht funktioniert, warum sollte es dann bei der Eisenbahn besser funktionieren"
  • ESP-Now ist leider nur auf der ESP-Familie verfügbar. Damit besteht immer die Gefahr eines Vendor lock-in
  • ESP-Now funktioniert nur, wenn alle Komponenten (Steuergeräte, Endgeräte [=Loks,..]) es unterstützen.
  • Kein großer Hersteller ist auf dem Zug Wifi aufgesprungen.
Ich bin ja auf dem ESPNow Zug auch nur aufgesprungen, da mein Anwendungsfall mit den aktuellen WiFi-Lösungen nicht funktionierte. Das Wechseln von einem Netz zum anderen dauert mit einem ESP mindestens 3 Sekunden. Für eine Lok schlicht nicht akzeptable.

Seamless Roaming (802.11k und 802.11v) wäre eine (herstellerunabhängige) Lösung, bei der der AP-Point ohne Unterbrechung gewechselt werden kann. Neuere Fritz-Box unterstützen es und somit könnte es auch in der breiten Masse ankommen.

Aber ... Seamless Roaming wird zur Zeit z.B. bei der ESP-Familie nicht unterstützt. Was aber aus der Sicht des Herstellers aber verständlich ist. Die ESP-Familie ist mehr für stationäre Geräte ausgelegt. Unser Anwendungsfall ist ja ein Spezialfall: Geräte, die sich bewegen, aber nicht weit genug, als dass sie Alternativen zu Wifi oder ähnliches brauchen.


Um mal die Erwartungshaltungen zu "managen":
Wir reden noch von einer längeren Zeit, bis es wirklich einsetzbar ist. Bei jeden meiner Tests finde ich im Moment noch Fehler und Probleme. Bis es mal einen funktionierten Prototyp gibt, wird sicherlich noch ein paar Wochen/Monate vergehen. Und dann kann es erst mit dem Praxistest losgehen. Die Fehlersuche wird eine Herausforderung, da man auf keine Erfahrungswerte zurückgreifen kann. ESPNOW ist schon ein Nischenprodukt. Und ich habe ja ESPNOW nochmal angepasst (Nutzung von ESPNOW Broadcasts und darauf nochmal eine Verschlüsselungsschicht).

Die ESP-Familie kann nur auf einem "WLAN-Kanal" lauschen bzw. senden. Es gibt aber zwei "Komponenten", die WLAN nutzen:
Einmal der Accesspoint Modus "AP" (der auch von ESPNOW genutzt wird) und einmal der Station-Modus "STA" (Verbindung zu einem bestehenden Netz). Es muss sichergestellt sein, dass beide Komponenten immer den gleichen Wifi-Kanal nutzen, sonst ist eine Komponente stumm geschalten. Hört sich einfach an. Ist es aber nicht. Wenn die "STA" Komponente nicht richtig konfiguriert ist, kann sie in einen Suchmodus zurückfallen. Dabei scannt sie periodisch alle Kanäle bzgl. Wifi-Netzen ... In dieser Zeit funktioniert ESPNOW nicht.

Um andere Enderäte nutzten zu können, kann es Sinn machen, dass ein ESP als eine Art Bridge agiert. WLAN Verbindung zum Access Point ("STA"), damit die "alte" Wifimaus weiterhin nutzbar ist. Und eine Verbindung ins ESP-NOW Netz ("AP"). Hierbei muss erst mal nur sichergestellt sein, dass ESPNOW und das Wifi-Netz auf dem gleichen Kanal eingestellt sind. --- ok machbar --- Wenn jetzt aber der Access Point mal ausgeschaltet wird, geht der ESP in den Suchmodus über und scannt auf allen Kanälen nach dem Wifi-Netz --- perfekt. ESPNOW ist gestört

[Gehe mal davon aus, dass das Frustrationslevel sicherlich zwischenzeitlich deutlich höher liegen wird, als bei allen anderen Projekten vorher]

Gruß,
Sven

Ralf_St.
Beiträge: 355
Registriert: 18.09.2018, 01:14
Hat sich bedankt: 67 Mal
Danksagung erhalten: 17 Mal

Re: ESP-NOW

Beitrag von Ralf_St. » 05.01.2021, 15:16

Hallo Sven

Danke für die ausführliche Antwort. Ich dachte mir schon das es mit dem Thema ESP-NOW noch länger dauern wird. Wollte Dir auch nur sagen das es für mich/uns von Interesse ist!

Bis es soweit ist, werde ich meinen zweiten Test-Controller aufbauen. Wenn der dann läuft, werde ich unter anderem die Erweiterung auf 10 Geräte testen, die Du ja nun ermöglicht hast!
Gruß, Ralf

little.yoda
Site Admin
Beiträge: 882
Registriert: 14.09.2018, 19:05
Hat sich bedankt: 33 Mal
Danksagung erhalten: 143 Mal

Re: ESP-NOW

Beitrag von little.yoda » 29.09.2021, 19:43

Hi

so. Ein Update.

Das Testen mit mehreren ESP ist echt ... nervig und kostet manuell sehr viel Zeit.

Daher habe ich relativ viel Arbeit in ein effizientes Testen gesteckt:

Ich habe mittlerweile ein Test-Setup, welches mir die ESP inkl. Config-File vorbereitet.
Für alle an den Laptop angeschlossenen ESP, werden die folgende Schritte automatisch durchgeführt:
  • die aktuelle Entwicklerversion wird geflasht
  • MAC-Adresse wird auslesen
  • in Abhängigkeit von der MAC-Adresse wird automatisch das passende Config-File übertragen
    Ich hantiere leider mit relativ vielen Config-Files (ESP8266 vs. ESP32; ESP-Modus Master, Repeater, Endgerät; Unterschiedliche Displays). Die automatische Übertragung hilft hier extrem und vermeidet lässige Fehler.
3 ESP sind damit inkl. Firmware-Update in ca. 3 Minuten komplett fertig, ohne dass ich etwas machen muss.

Um das Testen weiter zu automatisieren und um nicht dauernd eine App starten oder die Wlan-Maus in der Hand zu nehmen zu müssen, habe ich noch ein Dummy-Modul dem Framework hinzugefügt. Dieses Modul ändert auf dem Master-ESP für eine Lok-ID permanent die Geschwindigkeit. Zum Testen lasse ich auf allen ESP die Geschwindigkeit dieser Lok-ID ausgeben. Damit sehe ich sehr schnell, ob die Übertragung funktioniert.

In den letzten Wochen habe ich erst mal mit zwei ESP (Master + Endgerät) getestet und habe dann langsam auch mit drei Geräte (Master, Repeater und Endgerät) getestet. Dabei habe ich in allen möglichen Bereichen des Framework noch Bugs gefunden.

Die gute Nachricht ist aber, dass zumindest Lokbefehle jetzt auch über einen ESPNOW-Repeater weitergeleitet werden und bei dem Endgerät ankommt.

Wie oben schon geschrieben ist das Thema AccessPoint und Station-Modus auch nicht schön. Ich habe es jetzt dadurch gelöst, dass der Station-Modus deaktiviert wird, wenn er anfängt die Kanäle zu wechseln, um nach einem Wlan-Netz zu suchen. Insgesamt sollte man ESPNow und Station-Modus schlicht nicht mischen. Macht aber am Ende das Testen oder die Fehlersuche für die Nutzer schwerer.

Aktuell versuche ich jetzt ein Netz mit 5 bis 6 ESP zu testen. Dabei ärgert mich aber gerade der Display-Treiber, der irgendwie die Displays von Ralf nicht mag.

Ihr sehe also, dass Thema zieht sich.

Antworten