WiFi AP1 priorisieren

  • Ich habe mit ...

    Code
    Backlog SSID1 WiFiEins; Password1 MeinErstesPW; SSID2 WiFiZwei; Password2 MeinZweitesPW; AP 1

    ... zwei WiFis für meine Shelly2PM, BlitzWolf SHP6 und Gosund SP111 konfiguriert.

    Der Verbidungsaufbau läuft bei beiden WiFis fehlerfrei.

    Gelegentlich schaltet sich durch mich initiiert das WiFiEins ab. Dann verbinden sich alle Geräte wie gewünscht mit WiFiZwei.

    Wenn ich nun WiFiEins wieder einschalte möchte ich, dass die Geräte unverzüglich und selbstständig die Verbindung mit WiFiEins aufbauen.

    Gibt es eine Möglichkeit eine Priorisierung eines APs einzustellen?

    Wenn AP1 und AP2 aktiv -> Nutze AP1

    Oder AP1 aktiv -> Nutze AP1

    Oder Ap2 aktiv -> Nutze AP2

  • Guck Dir mal auf der Console wificonfig und die Optionen 56/57 an.

    Code
    Wificonfig 4      für retry other AP
    Wificonfig 5      für wait on this AP
    SetOption56 1     für stärkstes WLAN Boot
    SetOption57 1     für stärkstes WLAN 45min
  • Die Optionen würden leider nicht 100% meinen gewünschten Effekt erzielen.

    Beide WiFi sind grundsätzlich für die Tasmota erreichbar. Ich möchte aber, dass sie

    - ausschließlich bei Ausfall des AP1 in AP2 wechseln (nicht, weil das Signal von AP2 stärker ist)

    - ASAP in AP2 wechseln, wenn AP1 OFFLINE

    - ASAP in AP1 wechseln, sobald das wieder erreichbar ist

  • Moin.

    Ich würde das mit ganz normalen Rules lösen.

    Hab's nicht ganz durchgetestet, sollte die Rule nicht gehen Verbindet das Gerät im schlimmsten fall nicht mehr mit dem WLAN und du must es eben reseten.

    Zuerst wificonfig auf wait stellen damit beim disconnect nicht das WIFI selbstständig gewechselt wird:

    wificonfig 5

    Rule1 :

    wird die WiFi Verbindung unterbrochen wird Rule2 aktiviert die das Wifi nach den SSID scannt.

    Code
    rule1
    on wifi#disconnected do backlog rule2 1; event wificheck endon


    Rule2:

    Scannt alle 10 Sekunden (veränderbar im ruletimer) nach den SSID's

    Wird SSID1 gefunden wird AP 1 erneuet aktiviert und die Rule2 beendet

    Wenn nicht wird nach SSID2 gesucht und wenn gefunden AP2 aktiviert.

    Der Scan wird alle 10 Sekunden widerholt bis eben SSID1 wieder gefunden, damit AP1 aktiviert und die Rule2 deaktiviert wird.

    Code
    rule2
    on wifiscan#?#SSID=<SSID1> do backlog AP 1; rule2 0 break
    on wifiscan#?#SSID=<SSID2> do AP 2 endon
    on event#wificheck do backlog wifiscan 1; ruletimer1 10 endon
    on rules#timer=1 do event wificheck endon

    rule2 1

    benzino77 Tasmocompiler

    Gitpod Master Release

    Gitpod Development Release

    Sonoff-Basic / Sonoff-RF / Sonoff-Touch / Sonoff S20 / PowStro Basic / MagicHome / Sonoff-RF-Bridge mit diversen 433MHz RF Sender/Empfänger / Shelly_1 / ESP-WiFi-Dimmer / Gosund SP111 / ESP12E / WEMOS D1 Mini / ESP32Cam

    Sensoren: BME280/BMP280/HC-SR501/HC-SR04/ACS712/INA219/MHZ19B/DS3231

    Alexa Sprachsteuerung

    mosquitto/bash/html/cgi auf Wyse5070

    2 Mal editiert, zuletzt von HoerMirAuf (1. Februar 2024 um 14:21)

  • Moin :)

    Meine Variante funktioniert seit 2 Wochen tadellos.

    However...

    Wenn ich ausm Urlaub zurück bin werde ich mich mal ransetzen und deine Variante ausprobieren.

    Code
    on wifiscan#?#SSID=<SSID1>

    Nach genau solch einem Code Schnipsel hab ich wortwörtlich tagelang im Internet gesucht und 100mal die rules und command Dokumentation durchgelesen und etliche Beispiele versucht nachzuvollziehen. Schön, dass man immer wieder neue Werkzeugchen an die Hand bekommt :)

    Das Ergebnis war, dass ich mir ungewollt die Fähigkeit angeeignet habe, eigene tasmota Versionen zu compilen, nur um für die esp8266 die if Funktion zu aktivieren.

    Um meinen Horizont zu erweitern bitte eine kurze Antwort:

    Was ist an deiner Variante besser, bzw. wo siehst du Schwachpunkte bei meiner?

    Ohne deine Variante getestet zu haben, befürchte ich, dass im Ernstfall (Ausfall AP1) 30 tasmota Geräte in meinem Haus alle 10 Sekunden per wifiscan für ganz schon viel jamming sorgen werden und mein normales WiFi bzw, dass der Nachbarn in die Knie zwingt. Dafür hatte ich in meiner rule extra die var1 eingebaut, die schrittweise das Intervall des WiFiScans erhöht

    Grüße 8)

  • Moin.

    Meine Variante funktioniert seit 2 Wochen tadellos.

    Na, umso besser !;):thumbup:

    Nach genau solch einem Code Schnipsel hab ich wortwörtlich tagelang im Internet gesucht

    Dann hatte mein post ja immerhin einen guten Zweck ^^

    Was ist an deiner Variante besser, bzw. wo siehst du Schwachpunkte bei meiner?

    Ich geb zu, ich hatte mir Deine Variante gar nicht so genau angesehen .... ich hatte vor allem auf den letzten Post geachtet und dachte das Problem sei noch nicht gelöst. Nachteile kann ich in Deiner Lösung so keine sehen. Im Gegenteil das mit der Zeitdynamik beim wifiscan ist recht raffiniert. Gerade wenn's mehr als nur ein Gerät ist bei dem das laufen soll. Ich selbst bin einfach nur Freund der Standartrules, weil die eben in jeder Tasmota Version aktiv sind.

    benzino77 Tasmocompiler

    Gitpod Master Release

    Gitpod Development Release

    Sonoff-Basic / Sonoff-RF / Sonoff-Touch / Sonoff S20 / PowStro Basic / MagicHome / Sonoff-RF-Bridge mit diversen 433MHz RF Sender/Empfänger / Shelly_1 / ESP-WiFi-Dimmer / Gosund SP111 / ESP12E / WEMOS D1 Mini / ESP32Cam

    Sensoren: BME280/BMP280/HC-SR501/HC-SR04/ACS712/INA219/MHZ19B/DS3231

    Alexa Sprachsteuerung

    mosquitto/bash/html/cgi auf Wyse5070