Zeitgesteuertes WLAN auf OpenWrt Router

OpenWrt Router lassen sich über das UCI „Unified Configuration Interface“ über die Kommandozeile konfigurieren. Die gewünschten Änderungen werden dabei direkt in die entsprechenden Konfigurationsdateien wie z.B. „/etc/config/network“ oder „/etc/config/firewall“ eingetragen. Der Vorteil von UCI ist, dass die Konfigurationsdateien für Änderungen nicht mehr geöffnet werden müssen. Gerade für eine automatisierte Konfigurationsänderung ist dies sinnvoll. Mit UCI lässt sich auch das WLAN konfigurieren. Soll z.B. nachts das WLAN deaktiviert werden, lässt sich das sehr leicht umsetzen.


Mit folgendem Befehl wird das WLAN Device 0 deaktiviert.

uci set wireless.@wifi-device[0].disabled=1; uci commit wireless; wifi

Handelt es sich um ein Dual Band WLAN, können auch beide Radios deaktiviert werden.

uci set wireless.@wifi-device[0].disabled=1; uci set wireless.@wifi-device[1].disabled=1; uci commit wireless; wifi

Um es wieder zu starten, wird der Wert „disabled“ wieder auf „0“ gesetzt. Zusätzlich wird die Sendeleistung auf den in Deutschland maximal erlaubten Wert von 20dBm gesetzt.

uci set wireless.@wifi-device[0].disabled=0; uci set wireless.@wifi-device[0].txpower=20; uci commit wireless; wifi

Für zwei Radios würde es so aussehen.

uci set wireless.@wifi-device[0].disabled=0; uci set wireless.@wifi-device[0].txpower=20; uci set wireless.@wifi-device[1].disabled=0; uci set wireless.@wifi-device[1].txpower=20; uci commit wireless; wifi

Um das WLAN jetzt zeitgesteuert zu stoppen bzw. zu starten, können die UCI Befehle über einen Cron Job ausgeführt werden. Die Konfiguration der Cron Jobs kann über das Webinterface Luci oder ein Terminal erfolgen.

crontab -e

Folgende Zeilen können direkt per copy & paste eingetragen werden.

# start WLAN 1 and 2 each day at 06:00 am
00 06 * * * uci set wireless.@wifi-device[0].disabled=0; uci set wireless.@wifi-device[0].txpower=20; uci set wireless.@wifi-device[1].disabled=0; uci set wireless.@wifi-device[1].txpower=20; uci commit wireless; wifi
#
# stop WLAN 1 and 2 each day at 23:30 pm
30 23 * * * uci set wireless.@wifi-device[0].disabled=1; uci set wireless.@wifi-device[1].disabled=1; uci commit wireless; wifi

Soll das WLAN z.B. nur von Montag bis Freitag automatisch gesteuert werden, könnte die Cron Konfiguration so aussehen.

# start WLAN 1 and 2 from monday to friday at 06:00 am
00 06 * * 1-5 uci set wireless.@wifi-device[0].disabled=0; uci set wireless.@wifi-device[0].txpower=20; uci set wireless.@wifi-device[1].disabled=0; uci set wireless.@wifi-device[1].txpower=20; uci commit wireless; wifi
#
# stop WLAN 1 and 2 each day at 23:30 pm
30 23 * * 1-5 uci set wireless.@wifi-device[0].disabled=1; uci set wireless.@wifi-device[1].disabled=1; uci commit wireless; wifi

Über den Cron Job lässt sich der Router bzw. Access Point bei Bedarf auch automatisch neu starten.

# reboot router every Sunday at 04:30 am
29 04 * * 0 sleep 70 && /sbin/reboot

openwrt_wlan02

Über das Webinterface lässt sich die Konfiguration auch bequem eintragen.

openwrt_wlan01

Ist die gewünschte Änderung gespeichert, wird ab sofort das WLAN automatisch gestoppt und gestartet.

Quelle: http://wiki.openwrt.org/de/doc/uci