OpenWRT - Freifunk WLAN zeitgesteuert verfügbar machen mit Cronjob

Im Folgenden zeige ich Dir, wie Du auf einem Freifunk-Router das Client-Netz, also das WLAN, welches die Endgeräte für den Netzzugang nutzen zeitgesteuert an- bzw. abschalten kannst. Gleichzeitig bleibt das Mesh-Netzwerk verfügbar.

Ich gehe davon aus, dass du deinen Router bereits zum Freifunk-Router aufgewertet hast indem du die aktuelle Freifunk-Firmware deiner Community aufgespielt hast. Des Weiteren nutze ich in dieser Anleitung den Zugang per ssh, den du ebenfalls auf dem Router eingerichtet haben musst. Dieser ist nötig, da nur die wenigsten Einstellungen und Möglichkeiten, welche OpenWRT zur Verfügung stellt über die grafische Oberfläche erreicht werden können.

Als erstes musst du eine Verbindung zum Freifunk-Knoten mit ssh herstellen. Unter OSX  habe ich dazu eine ssh-Config eingerichtet und erreiche den Router mit ssh Routername

Hast du das erfolgreich hinter dich gebracht, erwartet dich der Begrüßungsbildschirm.

Als ersten Schritt schalte das Client-Netzwerk ab und sichere den Wert in den Speicher des Routers. Dies erfolgt durch die Befehle:

root@Routername:~# uci set wireless.client_radio0.disabled=1

root@Routername:~# uci commit wireless

Dieser Schritt ist nicht unbedingt nötig, hat allerdings folgenden Effekt. Das Client-Netzwerk ist standardmäßig ausgeschalten. Das bedeutet, wenn jemand Zugriff auf das Gerät bekommt (weil es bspw. in einem Gemeinschaftsbereich o.ä. aufgestellt ist) und den Router neu startet bleibt das WLAN aus. Ohne diese Eingabe reagiert das Gerät bei einem Neustart mit dem anschalten des WLANs.

Die Zeitsteuerung selbst kann man per Cronjob einrichten. Gib dazu folgende Zeile ein:

root@Routername:~# crontab -e


Drücke nun die Taste 'i' um in den Bearbeitungsmodus zu wechseln. Jetzt kannst du die folgenden beiden Zeilen eingeben

30 21 * * * uci set wireless.client_radio0.disabled=1;wifi

0 7 * * * uci set wireless.client_radio0.disabled=0;wifi

Drücke die Escape-Taste (ESC) um den Bearbeitungsmodus zu verlassen. Jetzt schreibe ':wq' und bestätige mit der Eingabetaste.

Die beiden Zeilen sind wie folgt aufgebaut. (vgl https://de.wikipedia.org/wiki/Cron)

Minute   Stunde   TagDesMonats   Monat   Wochentag   Anweisungen

Die erste Zeile bedeutet also: In Minute 30 der Stunde 21Uhr zu jedem Tag jedes Monats jeden Wochentags führe das Kommando 'Client-Netzwerk ausschalten' aus. Die zweite Zeile schaltet das Client-Netz dementsprechend um 7Uhr wieder ein.

Würde man das Client-Netz lediglich Montag bis Freitag ausschalten wollen, muss die erste Zeile also wie folgt lauten:

30 21 * * 1-5 uci set wireless.client_radio0.disabled=1;wifi

Die entsprechend muss das WLAN Dienstag bis Samstag wieder aktiviert werden, das bedeutet die zweite Zeile würde wie folgt aussehen:

0 7 * * 2-6 uci set wireless.client_radio0.disabled=0;wifi

Die so eingerichteten Geräte bleiben weiterhin über das Mesh-Netzwerk miteinander in Verbindung bzw. erweitern das bestehende Freifunk-Netz. Lediglich die Anmeldung mit Endgeräten an diesen Punkten ist nicht möglich. Man könnte die zeitgesteuerten Anweisungen auch ausbauen - die LAN-Ports abschalten, die Bandbreite begrenzen, die Sendeleistung herunterfahren - eben alles, was man noch alles verstellen kann.