Aktualisierung verfügbarer WLAN-Netze unter Win10 prof.

  • Hallo,

    ich habe ein Script geschrieben, das eine Verbindung zu einem ESP8266-WLAN-Modul (im AP-Modus) aufnimmt. Ich benutze dafür u.a. die Erweiterung NativeWifi. Das klappt auch ganz gut.

    Ich habe jedoch das Problem, daß ein abgeschalteter oder entfernter AP erst nach ca. 2,5 Minuten erkannt wird. Das ist mir zu lang. Ursache scheint zu sein, daß Windows (10 professional in meinem Fall) die Liste der verfügbaren WLAN-Netze nur alles 2-3 Minuten auffrischt. Prüfen kann man das, indem man in der Kommandozeile (cmd) eingibt:

    netsh wlan show networks

    da dauert es dann ca. 2,5 Minuten, bis der ausgeschaltete AP (oder evtl. auch Router) nicht mehr in der Liste auftaucht. Selbst ein Klicken auf das Tray-Icon rechts unten auf der Leiste führt im Ausschaltfall im Gegensatz zum Einschaltfall nicht zum schnellen Aktualisieren der Liste der verfügbaren Netzwerke.


    Weiß jemand Rat? Zum Beispiel, indem man an Windows per Run oder Shellexecute einen Befehl übergibt, der die WLAN-Liste auffrischt?


    Danke schon mal & bleibt gesund

    Kormorix

  • Ich habe jedoch das Problem, daß ein abgeschalteter oder entfernter AP erst nach ca. 2,5 Minuten erkannt wird. Das ist mir zu lang. Ursache scheint zu sein, daß Windows (10 professional in meinem Fall) die Liste der verfügbaren WLAN-Netze nur alles 2-3 Minuten auffrischt.

    Ich habe ein ähnliches Problem beim "Over the air"-Update meiner ESP8266-Module von der Arduino-IDE.

    Dort werden die Netzwerk-Schnittstellen auch oft nicht (gleich) erkannt.

    Meine "Lösung" dafür mutet etwas kurios an, aber sie funktioniert bei mir immer:

    Ich habe auf meinem Smartphone (Android) die App "Fing" installiert. Mein Smartphone ist im gleichen WLAN eingeloggt, wie die ESP-Module.

    Dann mache ich mit Fing einen WLAN-Scan und schon erscheinen alle ESP-Schnittstellen in der Arduino-IDE (auf dem PC).

    Ich kann nicht sagen, woran das liegt oder was genau Fing da ausführt, aber es funktioniert. :)

  • Hallo Oscar,

    danke für Deinen Tipp!

    Wahrscheinlich so ähnlich wie Deine App Fing funktioniert mein Script auch, wenn es einen aktiven ESP im AP-Modus unter den verfügbaren Netzen herausfischt. Ich scanne per Autoft-Script zunächst das WLAN mittels "wlan_scan" und lese anschließend die WLAN-Netze und ihre Parameter mittels "wlan_getNetworks" ein. Durch diesen Vorgang werden offensichtlich "ruhende WLAN-Netze/APs" geweckt. Das gelingt auf der Eingabezeile unter Windows mittels "netsh wlan show networks" so nicht!

    Andererseits führt die genannte Anweisungsfolge in Autoit aber nicht dazu, daß der kurz vorher ausgeschaltete AP aus der Liste verschwindet. Er wird mit seinen Parametern erst nach 2-3 Minuten aus der Liste genommen. Ich vermute mal, daß das auch nach dem "Anstoßen" mittels der App Fing so ist und Du auch in Deiner Arduino-IDE den "Blindgänger" noch 2-3 Minuten in der Liste hast.


    Wenn nicht, wäre das ein interessantes Indiz, daß sich mein Problem doch irgendwie lösen lassen müßte.


    VG, kormorix

  • Hi,


    AutoIt
    #RequireAdmin
    Runwait(@ComSpec & ' /c netsh interface set interface name="WLAN" admin=disabled', "", @SW_HIDE)
    Runwait(@ComSpec & ' /c netsh interface set interface name="WLAN" admin=enabled', "", @SW_HIDE)

    beendet und startet das Interface WLAN. Diesen Namen müsst ihr natürlich für eure Netzwerke anpassen!

    Das dauert bei mir einige Sekunden, danach sind die verfügbaren Netzwerke aktuell.

    Auch ich benutze ESP8266 ;-)

  • @ Andy,

    es geht bei meiner Frage schon um einen PC mit WLAN-Interface, also z.B. ein Notebook oder wie in meinem Fall ein NUC.

    Ich will ja dem ESP8266 im AP-Modus erstmal SSID und PW per WLAN übergeben, damit er sich in das eigentliche Zielnetzwerk einloggen kann und dann dort als Knoten präsent ist. Wenn das Zielnetzwerk immer das gleiche ist, kann man sich natürlich den ganzen Zauber mit dem AP sparen und gleich die Parameter für das immer gleiche Zielnetzwerk im ESP fest einprogrammieren.


    Andy und Racer:

    interessante Vorschläge! Nachher will ich die mal konkret umsetzen und melde mich dann wieder.


    Hoch die Hände, Wochenende!

    Kormorix

  • Und wenn ich gar kein WLAN-Interface am PC habe?

    Mein PC hängt per Netzwerkkabel am Router. Die ESPs per WLAN.

    Naja, dumm gelaufen :-)

    Ist aber bei dir unerheblich, da du ja per Smartphone "resettest".

  • Ja, der Trick mit dem Ein/Ausschalten des WLAN-Interface als Admin funktioniert.

    Einziger Wermutstropfen ist, daß es halt Admin-Rechte erfordert.

    .... dann muß mein Script halt mit Admin-Rechten (und entsprechender Abfrage am Beginn) laufen.


    Übrigens: wenn man sich auf der Befehlszeile mittels eines vorhandenen Profils mit einem NICHT vorhandenen WLAN-Netz verbindet per:


    netsh wlan connect name=AP_nichtvorhanden ssid=AP_nichtvorhanden


    erhält man eine Erfolgsmeldung:


    Die Verbindungsanforderung wurde erfolgreich abgeschlossen.


    Das grenzt schon an Betrug! An dieser Stelle ist Windows echt sch....!!


    Also besten Dank Andy und Racer!