WIFI Roaming
Verfasst: So 6. Aug 2017, 12:44
Hi
Da unser Garten ein wenig verwinkelt ist und die Abdeckung mit einem WLAN Access Point schwierig ist, habe ich heute mal ausprobiert, die gut das Roaming des ESP8266 ist.
Exkụrs Roaming:
WLAN Roaming dient dazu, dass das Endgeräte selber nach dem stärkten WLAN AP sucht und beim Nachlassen der Signalstärke zu einem stärkeren AP wechselt. Bei diesem Wechsel gibt es immer eine kurze Zeit ohne Verbindung.
"Normalsterbliche" erleben dieses Täglich beim Telefonieren, wenn das Handy die Zelle wechselt. Hier ist es aber mit enormen technischen Aufwand realisiert worden, dass es zu keiner Unterbrechung des Telefonat kommt.
Während stationäre Objekte (Weichendecoder, ..) nicht auf das Roaming angewiesen sind, sind Loks und ähnliches auf Roaming angewiesen, da sie sich bewegen und den Sendebereich von AP verlassen können.
Zum Testen habe ich zwei AP mit gleicher SSID, gleichem PWD aber unterschiedlichen Kanälen weit auseinander aufgestellt und bin zwischen den beiden AP gependelt.
Meine Beachtungen:
Ein automatisches Roaming erfolgt nicht.
Selbst wenn der ESP8266 keine Pakete mehr von dem AP empfängt, erfolgt kein automatisches Roaming. Stattdessen erkennt der EPS8266 nach einer gewissen Zeit (>20 sekunden), dass der erste AP nicht mehr erreichbar ist, geht in den internen WLAN-Status DISCONNECTED und fängt dann an nach einem neuen AP zu suchen und verbindet anschließend mit dem stärken AP (nochmal 8 Sekunden)
Also muss ein manuellen Roaming her. Bevor ich jetzt ein manuelles Roaming programmiere, was nicht ganz trivial ist, wollte ich die Umschaltzeiten testen.
Also habe ich die Funktion WiFi.reconnted() auf eine Taste gelegt und bin wieder spazieren gegangen.
Das positive ist, dass der esp8266 bei einem reconnted() in meinem Test den jeweils stärksten AP gewählt hat.
In meinen Test hat anfangs jedoch 6 Sekunden gedauert, bis die neue Verbindung aufgebaut war und er den ersten Befehl erhalten hat.
Diese Zeit lässt sich auf 3 Sekunden reduzieren, in dem man von dynamischen IP-Adressen (=> DHCP) auf statische IP-Adressen umstellt.
Hier müsste man nochmal schauen, ob man die Zeit noch weiter reduzieren kann, wenn man ihm genau vorgibt, welchen AP er nutzten soll.
3 Sekunden ohne Befehle sind für eine Modelleisenbahn natürlich nicht wenig ... auf der anderen Seite haben viele Leute Puffer in ihren Loks, die ungefähr diese Zeit auch ohne Befehle abdecken. Mein Framework ist im Moment so eingestellt, dass eine Notbremsung nach 2 Sekunden ohne Befehle ausgeführt wird.
Zusammengefasst:
- AP Roaming wird vom ESP8266 softwaremäßig nicht unterstützt und müsste im Framework implementiert werden
- Umschaltzeit zwischen zwei AP beträgt ca. 3 Sekunden, in denen keine Befehle empfangen werden können
Meine Schlussfolgerungen:
- Wenn es möglich ist, nur ein AP für die beweglichen Objekte inkl. statischen IP-Adressen
- Sicherstellen, dass die Loks ohne Befehle für 3 Sekunden "überleben".
Für die Experten:
- Mesh-Netzwerke sind meiner Meinung nach auch keine Alternative, da hier auch die Umschaltzeiten auftreten, oder?
TODO:
- manuelle Roaming implementieren
Gruß,
Sven
Da unser Garten ein wenig verwinkelt ist und die Abdeckung mit einem WLAN Access Point schwierig ist, habe ich heute mal ausprobiert, die gut das Roaming des ESP8266 ist.
Exkụrs Roaming:
WLAN Roaming dient dazu, dass das Endgeräte selber nach dem stärkten WLAN AP sucht und beim Nachlassen der Signalstärke zu einem stärkeren AP wechselt. Bei diesem Wechsel gibt es immer eine kurze Zeit ohne Verbindung.
"Normalsterbliche" erleben dieses Täglich beim Telefonieren, wenn das Handy die Zelle wechselt. Hier ist es aber mit enormen technischen Aufwand realisiert worden, dass es zu keiner Unterbrechung des Telefonat kommt.
Während stationäre Objekte (Weichendecoder, ..) nicht auf das Roaming angewiesen sind, sind Loks und ähnliches auf Roaming angewiesen, da sie sich bewegen und den Sendebereich von AP verlassen können.
Zum Testen habe ich zwei AP mit gleicher SSID, gleichem PWD aber unterschiedlichen Kanälen weit auseinander aufgestellt und bin zwischen den beiden AP gependelt.
Meine Beachtungen:
Ein automatisches Roaming erfolgt nicht.
Selbst wenn der ESP8266 keine Pakete mehr von dem AP empfängt, erfolgt kein automatisches Roaming. Stattdessen erkennt der EPS8266 nach einer gewissen Zeit (>20 sekunden), dass der erste AP nicht mehr erreichbar ist, geht in den internen WLAN-Status DISCONNECTED und fängt dann an nach einem neuen AP zu suchen und verbindet anschließend mit dem stärken AP (nochmal 8 Sekunden)
Also muss ein manuellen Roaming her. Bevor ich jetzt ein manuelles Roaming programmiere, was nicht ganz trivial ist, wollte ich die Umschaltzeiten testen.
Also habe ich die Funktion WiFi.reconnted() auf eine Taste gelegt und bin wieder spazieren gegangen.
Das positive ist, dass der esp8266 bei einem reconnted() in meinem Test den jeweils stärksten AP gewählt hat.
In meinen Test hat anfangs jedoch 6 Sekunden gedauert, bis die neue Verbindung aufgebaut war und er den ersten Befehl erhalten hat.
Diese Zeit lässt sich auf 3 Sekunden reduzieren, in dem man von dynamischen IP-Adressen (=> DHCP) auf statische IP-Adressen umstellt.
Hier müsste man nochmal schauen, ob man die Zeit noch weiter reduzieren kann, wenn man ihm genau vorgibt, welchen AP er nutzten soll.
3 Sekunden ohne Befehle sind für eine Modelleisenbahn natürlich nicht wenig ... auf der anderen Seite haben viele Leute Puffer in ihren Loks, die ungefähr diese Zeit auch ohne Befehle abdecken. Mein Framework ist im Moment so eingestellt, dass eine Notbremsung nach 2 Sekunden ohne Befehle ausgeführt wird.
Zusammengefasst:
- AP Roaming wird vom ESP8266 softwaremäßig nicht unterstützt und müsste im Framework implementiert werden
- Umschaltzeit zwischen zwei AP beträgt ca. 3 Sekunden, in denen keine Befehle empfangen werden können
Meine Schlussfolgerungen:
- Wenn es möglich ist, nur ein AP für die beweglichen Objekte inkl. statischen IP-Adressen
- Sicherstellen, dass die Loks ohne Befehle für 3 Sekunden "überleben".
Für die Experten:
- Mesh-Netzwerke sind meiner Meinung nach auch keine Alternative, da hier auch die Umschaltzeiten auftreten, oder?
TODO:
- manuelle Roaming implementieren
Gruß,
Sven