Stabiler Betrieb bei schwachem WLAN

Einer meiner IoT Raspis (headless) hängt über eine ca. 30 Meter weite WiFi Freiluft Verbindung am Router bzw. Access Point. Mit Wavemon gemessen sieht dann die Empfangsqualität auch unter optimalen Umständen eher mau aus und schwankt stark:

Wenn sich nun noch Hindernisse wie Gartenstühle, Personen etc. zwischen Antenne und Repeater befinden, wird die Qualität noch schlechter und die Verbindung reißt ab.

Ob der Pi sich anschließend wieder mit dem WLAN verbindet hängt vom Zufall ab - im schlimmsten Fall muss ich den Pi neu booten. Das habe ich einer kleinen Python Routine übertragen, welche checkt, ob eine Verbindung ins Internet oder den Router aufgebaut werden kann. Wenn nicht, wird nach ein paar fehlgeschlagenen Wiederholungen automatischn neu gebootet.

Vorsicht Falle!

Weil es so schön sinnvoll und professionell klingt, habe ich in raspi-config bei "3 Boot Options" die Einstellung "B2 Wait for Network at Boot" gewählt.

Das ist unter den oben beschriebenen Umständen kontraproduktiv. Wenn der Pi neu startet und nich innerhalb einer gewissen Zeitspanne mit dem WLAN connected, dann wartet der Pi ewig und drei Tage auf höhere Eingebungen bzw. das Netzwerk. Da hilft dann nur Stecker ziehen.

Setzt man obige Einstellung auf "No", läuft alles wie geschmiert.

Die Einstellung "B2 Wait for Network at Boot" macht in vielen, wenn nicht den meisten anderen Fällen durchaus Sinn! Zum Beispiel, wenn ein NAS Laufwerk (z.B. Synology) beim Starten über einen FSTAB Eintrag eingebunden (gemounted) werden soll. Oft ist der Pi nach dem Start so schnell beim Abarbeiten der mount Aufträge angekommen, dass das Netzwerk noch nicht steht. Setzt man "B2 Wait for Network at Boot" auf "Yes" klappt es auch mit dem Verbinden des NAS.

WiFi Self Check Routine

Hier noch die kleine Routine zum Überprüfen der Netzwerkverbindung und ggf. Neustart:

 

 

Schreibe einen Kommentar

Ich freue mich über Lob und Kritik.
Falls du Probleme mit der hier vorgestellten Anleitung hast und nicht weiter kommst:
Bitte das Problem oder die Fehlermeldung(en) möglichst genau beschreiben, auch an welcher Stelle (z.B. in welchem Node oder Befehl) und unter welchen Umständen der Fehler auftritt.
Gerne kannst du mir auch ein Mail schreiben. Die Adresse findest du im Impressum.
Ich gebe mir viel Mühe, meinen Lesern weiterzuhelfen. Je konkreter du bist, desto einfacher und schneller kann ich versuchen zu helfen.
Deine E-Mail-Adresse wird nicht veröffentlicht.
Erforderliche Felder sind mit * markiert