Seite 1 von 1

WLAN-Verbindung mittels Python Skript - auf Raspberry Pi

Verfasst: Montag 17. Januar 2022, 19:05
von simonW
Hallo zusammen,
ich habe eine Anwendung, die mittels eines Python-Skriptes Daten an einen Endpunkt sendet. Das ganze läuft auf einem Raspberry Pi 4B.
Nun hatte ich das Problem, dass es eine WLAN-Unterbrechung gab und daher die Skriptausführung abgebrochen ist. Daher möchte ich gerne im Skript überprüfen, ob eine Verbindung zum WLAN besteht und wenn nicht diese neu verbinden.
Das ganze läuft mit Python 3.7
Mit Micropython auf einem ESP32 habe ich das ganze schon einmal umgesetzt, ist ja sehr einfach

Code: Alles auswählen

wlan = network.WLAN(network.STA_IF) # create station interface
    if not wlan.active() or not wlan.isconnected():
        wlan.active(True) # activate the interface
        print('connecting to:', ssid)
        wlan.connect(ssid, password)
        while not wlan.isconnected(): #warten bis wlan an
            pass
gibs sowas in die Richtung?
Danke schon einmal :)

Re: WLAN-Verbindung mittels Python Skript - auf Raspberry Pi

Verfasst: Montag 17. Januar 2022, 19:41
von __deets__
Ich mache das über DBUS: https://github.com/deets/yocto-pi-lap-t ... plicant.py

Aber ich halte das für das falsche Vorgehen. Das System sollte die Verbindung von alleine wieder aufbauen. Du musst nur dein Skript so robust machen, dass es im Fehlerfall wieder von vorne loslegt.

Re: WLAN-Verbindung mittels Python Skript - auf Raspberry Pi

Verfasst: Montag 17. Januar 2022, 22:21
von simonW
Okay, das ist ein Batzen im Vergleich zum Micropython-Code. Ja, da hast du recht und hast mich auf die Idee mit
-----
try:
xx
except:
yy
-----
gebracht. Aber leider beendet er nach dem gescheiterten Versuch die Durchführung. Kann man denn wenigstens mit einem Befehl prüfen, ob eine WLAN-Verbindung besteht? Ansonsten wäre ein Sprung im Programm hilfreich...

Re: WLAN-Verbindung mittels Python Skript - auf Raspberry Pi

Verfasst: Montag 17. Januar 2022, 23:14
von __deets__
Man springt nicht. Man schleift. Ein try/except tut das nicht, es sorgt nur dafür, dass eine Schleife drumrum nich abgebrochen wird.

Re: WLAN-Verbindung mittels Python Skript - auf Raspberry Pi

Verfasst: Montag 17. Januar 2022, 23:26
von simonW
Ja, hab selber gemerkt, dass man Sprünge sowieso vermeiden sollte..

Im Detail geht es bei mir darum, dass ich Daten mittels POST-Request an einen Endpunkt sende. Die Daten werden zuvor aus stdin "bezogen" Das Ganze geschieht Periodisch. Leider bricht der Vorgang ab wenn das WLAN-Problem auftritt, aber auch wenn das von mir jetz implementierte "except" greift.
Stehe leider auf dem Schlauch was ich das am Besten lösen kann..

Re: WLAN-Verbindung mittels Python Skript - auf Raspberry Pi

Verfasst: Dienstag 18. Januar 2022, 11:55
von __deets__

Code: Alles auswählen

while True:
    try:
         tuwas()
    except <was-auch-immer-der-fehler-ist-den-du-bekommst>:
         time.sleep(10) # dem System Zeit geben, die Verbindung aufzubauen

Re: WLAN-Verbindung mittels Python Skript - auf Raspberry Pi

Verfasst: Mittwoch 19. Januar 2022, 22:48
von simonW
Danke dir, ich konnte das Problem inzwischen lösen. Hatte das try-except in einer falschen Konstellation eingesetzt. Nun funktioniert es!