Zugangsdaten mehrerer Wlans speichern

Idealerweise würde das im ESP32 stack automatisch funktionieren.

Man könnte es auch in der espuino-Implementierung lösen. Zum Beispiel bei schlechter RSSI oder gelegentlich einen Scan durchführen und mit einem besseren Netzwerk verbinden. Das könnte auch direkt nach den booten passieren: direct connect → scan → reconnect.
Frage ist, ob man mit diesen Verbindungsabbrüchen leben will.

Der Verbindungsaufbau mit Scan dauert ziemlich genau 1,66 s länger bei meiner Netzwerkumgebung (jeweils fünf mal auf beide Arten versucht und dann das Mittel angeschaut: 2,36 s ohne Scan, 4,01 s mit Scan).

Witzigerweise verbindet er sich bei mir seither deutlich öfter direkt mit dem starken Router, egal ob ich jetzt den dev-Branch oder meine Modifikation verwende.

Wie wäre es mit folgender Modifikation:

  • Beim Scan wird immer direkt über die BSSID mit dem stärksten Signal verbunden.
  • Zusätzlich eine Konfig-Option jedes mal den Scan durchzuführen?

Hier mal ein PR als Diskussionsgrundlage:

1 „Gefällt mir“

@Joe91 das sind ja moderate Änderungen, fein!
Ich werde am Wochenende eine zus. FRITZBox als Repeater daheim einklinken und kann es erst dann selbst testen.
1,5 Sekunden klingen jetzt nicht viel, würde aber gern die schnelle Verbindungsherstellung beibehalten, zur Not mit auch mit einer Einstellung. Evt. auch in Verbindung mit WLAN-Aufklappliste, weil da ist der Scan gemacht & die BSSID bereits bekannt.

1 „Gefällt mir“

Geht mir genauso mit der Geschwindigkeit. Ich für mich würde glaub die Option mit dem Scan jedes Mal aufgrund der Vorteile aktivieren, aber finde das mit den 1,6 s länger schon etwas schade :slight_smile: .
Im Zusammenhang mit dem Scan die BSSID mit zu verwenden ist aber glaub in jedem Fall (auch bei der WLAN-Liste) sinnvoll (und ja auch sehr einfach umsetzbar).

Btw: in meinen Versuchen hat der „normale“ Scan auch länger gedauert als 1,6s. Deshalb wird im Code auch der psssive Scan verwendet.

2 „Gefällt mir“

Ich habe die Zeit für den Scan einmal für die WLAN-Aufklappliste gemessen:

WiFi.scanNetworks(true); → 6,9s
WiFi.scanNetworks(true, false, true, 120); → 2,1s

Also passiver Scan ist deutlich schneller aber 1,6s erreiche ich auch nicht.

Die 1,6 s hatte ich im direkten Vergleich bis die Verbindung stand. Als Differenz von Boot bis erfolgreich verbunden.
Meine These dazu ist, dass das initiale verbinden etwas länger benötigt wenn davor noch kein Scan stattgefunden hat.
Im log wurde jeweils zum selben Zeitpunkt der Scan oder der erste Verbindungsversuch gestartet.
Oder das verbinden mit BSSID geht schneller als ohne.

Behalte auch in Auge beim Lolin D32 (Pro) ist den Wifi 2.4gHz 802.11b/g/n mit wahrscheinlich eine Liebe für 802.11n. :wink:

Die soll damit eher eine ´alte´ AP wählen statt einen ´neuen` mit AC/AX…

Hast du dir eine Meinung dazu bilden können (oder sonst auch jemand anderes :slight_smile: ) ?
Hatte diesen Commit jetzt die letzten Tage immer mit drin und konnte damit keine Nachteile feststellen (egal ob mit oder ohne dem Scan vor dem ersten Verbinden…).
Werde das für mich auf jeden Fall (aktiviert) weiterverwenden und nächste Woche mal nochmal an die Performance-Messungen zwischen Arduino als Komponente und normaler dev gehen…
Wenn Änderungswünsche da sind einfach melden. Gute Nacht Zusammen.

Ich habe jetzt eine 2. FRITZ!Box (7490) als Repeater am Start, um das Mesh/Repeater Problem nachvollziehen zu können. Der Hauptrouter (7590) steht weit weg (10m Altbau ohne Beton), die 2. Fritzbox als Repeater ist direkt neben dem ESPuino. Router & Repeater haben den gleichen WLAN-Namen und Kennwort.

Und tatsächlich:
ESPuino verbindet sich scheinbar abwechselnd/willkürlich mit dem einen oder anderen Router/Repeater und nimmt nicht das stärkste verfügbare WLAN. Das sieht man jetzt im Log an der BSSID (Mac-Adresse des Routers/Repeaters).

Web-Upload:

  • Hauptrouter (weit entfernt Signalstärke: -78 dBm): ca. 550 Kb/s
  • Repeater (direkt dran Signalstärke: -40 dBm): ca. 450 KB/s

Seltsam. Der neue Repeater (7490) ist trotz deutlich besserer Signalstärke langsamer als der Router. Irgendwelche Ideen?

Ich vermute mal der „Repeater“ hängt per WLAN an der ersten Box?
Wenn ja ist das Verhalten normal, die zweite Box muss ja abwechselend sich mit dem ESP unterhalten und mit der ersten Box.

Repeater erhöhen nur die Reichwweite, sie erhöhen (verringern sogar) den Durchsatz.

1 „Gefällt mir“

Ich vermute mal, das ist so eine Art „first come first serve“. Das verbindungsfreudige Gerät (ESP) ruft seine bekannten SSID in den Raum und warte auf eine Antwort. Dann ist es ein Glücksspiel - je nachdem wie die Router/Repeater ausgelastet sind - und der zuerst Antwortende wird gezogen, egal wie stark das Signal ist.

2 „Gefällt mir“

7590 hat (MU-)MIMO. Dadurch kann der 7590 das Signal an den Client richten/fokussieren.

Ich bewundere echt dein Setup! Ich habe mit aktuell drei Systemen hier bei keinem einzigen Upload-Raten von zuverlässig über 270 KB/s auf dauer eines ganzen Ordners (meistens sogar knapp unter 200 KB/s, auch wenn immer mal wieder einzelne Dateien darin auch nach oben ausreisen) :smiley: .
Auch wenn ich jetzt über den BSSID-Connect aus dem PR immer mit > -30dBm verbunden bin.
Irgendwas übersehe ich hier (oder ich habe einfach Schrott SD-Karten, dann sollte es per USB aber auch nicht schneller sein).
Kann es hier noch mehr Abhängigkeiten geben? Das wäre echt hilfreich fürs benchmarken.
Bin aktuell ausschließlich auf dem dev-Branch.
Oder du spezielle Platinen bei dir? Wie ist die SD angebunden und verwendet dein Board einen Port-Expander?
Häufig verhält es sich so, dass von z.B. 5 Dateien null bis zwei mit ~550 KB/s hochgeladen werden und der Rest mit ~180 KB/s.
Auf einem anderen System (ganz leere SD-Karte) sind es ähnliche Werte nur mit ~260 KB/s und ~550 KB/s…
Ich werde mal noch ein paar Kreuztauschs ausprobieren.
Update: Die „langsame“ Geschwindigkeit scheint mit der der Karte zu wandern. Spannend wie es trotzdem zu den „schnellen“ Geschwindigkeiten kommt. Ich mache einfach mal weiter…

@Joe91 Ich verwende das lolin_d32_pro_sdmmc_pe Board & Profil. #MQTT ist deaktiviert. In der FritzBox habe die Sicherheit von WPA3/2 auf reines WPA2 umgestellt. Upload mit MS-Edge oder Chrome auf Win11 Sonst keine Anpassungen.Wie schon geschrieben die Signalstärke ist eher mies bei mir, trotzdem sind es echte 550KB/s…

Zu Deinen WLAN-Anpassungen: Habe das jetzt getestet & die Box verbindet sich zuverlässig mit dem stärkeren WLAN, gute Arbeit :+1:

Ich würde das noch einstellbar machen, die Zeit ist OK aber ich bin schon so verwöhnt von der pfeilschnellen Verbindungsherstellung ohne den Scan. Du hast das über hier einen Compilerschalter #ALWAYS_SCAN_WIFI_ON_STARTUP gelöst. Das ist aber etwas statisch, wie wäre es anstelle des Schalter ein Setting zu verwenden, z.B. so:

bool performScan = gPrefsSettings.getBool("ALWAYS_SCAN_WIFI_ON_STARTUP", true);

Dann könnten wir das später in der WebUI einstellbar machen, z.B. „Ich verwende ein Mesh/Repeater Netzwerk“. Was haltet Ihr davon?

2 „Gefällt mir“

Vielen Dank dir für die Rückmeldung! Dann vermute ich immer mehr die SD-Karte als Grund. Wer billig kauft… Ich schau mal ob ich noch mehr SD-Karten finde oder vielleicht eine gute beschaffe.

Der Vorschlag gefällt mir sehr gut! Sehr gerne so. War ja auch nur als Vorschalg gedacht, daher sehr gerne auch anders verwenden / umsetzten :slight_smile:

@Joe91 Ich kann das auch ändern & dann per CherryPick übernehmen, das wäre die einfachste & schnellste Lösung…

1 „Gefällt mir“

Sehr gerne. Diese Woche ist gerade viel los. Ich schaffe es sonst aber bestimmt auch heute Abend noch das anzupassen. Ganz wie es dir lieber ist!

Hi, habe das soweit Alles am Start. Ihr könntet aber noch helfen:
Wie benennen wir die Einstellung in WebUI (möglichst kurz und klar)?

„Stärkstes WLAN verwenden“
„Mesh/Repeater Netzwerk“
„Start mit besten WLAN“

Genau genommen müsste die Einstellung lauten:
„Wenn ich mehrere WLAN Netzwerke mit gleichen Namen verwende soll das WLAN mit der besten Signalstärke verwendet werden. Aktiviere ich diese Option wird beim Start ein zusätzlicher Scan durchgeführt. Dieser Scan kann den Start ein wenig verzögern. Du solltest es nur aktivieren wenn Du ein Mesh/Repeater Netzwerk verwendest.“

Das erscheint mir aber etwas zu lang :wink: Hab’ grad keine bessere Idee…
CSS ist auch noch gruselig:

grafik

1 „Gefällt mir“

Wie wäre es mit „WIFI-Scan on every startup“ / „WIFI-Scan bei jedem Start“?
Mir fällt leider nichts besseres ein^^. Von deinen Vorschlägen gefällt mir „Start mit besten WLAN“ am besten.
Bin was html und CSS angeht leider gar nicht fit ^^