[Tutorial] DD-WRT WLAN per Cron zeitgesteuert ein- und ausschalten

Hallo zusammen,

ich war lange relativ unzufrieden mit den Möglichkeiten die DD-WRT mitbringt um das WLAN zeitgesteuert ein- und auszuschalten.

Man kann über die GUI zwar Zeiten definieren, allerdings gelten diese für jeden Tag der Woche. Es gibt keine Möglichkeit das WLAN z.B. am Wochenende anders ein- und auszuschalten.

Den Menüpunkt dafür findet man unter „Wireless\WL0-Advanced“:

DD-WRT Radio time restrictions
DD-WRT Radio time restrictions

In diesem Fall wäre das WLAN von 18 Uhr bis 1 Uhr an und im Zeitram dazwischen aus.

Da ich das WLAN am Wochenende aber zu anderen Zeiten benötige habe ich mich lange nach einer Alternative umgesehen. Leider hatten die gefunden Befehle im DD-WRT Forum keinen Effekt oder waren für Geräte mit dem Atheros Chipsatz. Da die Befehle für Broadcom Devices anders lauten kann man diese nicht übertragen.

Genug geredet, hier folgt die Lösung:

Man nutzt die GUI um unter „Administration\Management“ die Befehle zum Steuern unter Cron abzulegen. Das ganze sieht dann folgendermaßen aus:

DD-WRT Cron Jobs
DD-WRT Cron Jobs

Das ganze sollte relativ selbsterklärend sein, hier noch einmal der gesamte Block zum kopieren:

# minute (0-59),
# |      hour (0-23),
# |      |       day of the month (1-31),
# |      |       |       month of the year (1-12),
# |      |       |       |       day of the week (0-6 with 0=Sunday).
# |      |       |       |       |       commands
30 06 * * 1-5 root stopservice nas && wl -i eth1 radio on && startservice nas   #Mo-Fr morgens WLAN on
15 08 * * 1-4 root stopservice nas && wl -i eth1 radio off                                       #Mo-Do morgensWLAN  off
30 17 * * 1-4 root stopservice nas && wl -i eth1 radio on && startservice nas   #Mo-Do abends WLAN on
30 01 * * 0-4 root stopservice nas && wl -i eth1 radio off                                      #So-Do abends WLAN off
30 08 * * 6,0 root stopservice nas && wl -i eth1 radio on && startservice nas  #Sa-So morgens WLAN on
00 03 * * 5,6 root stopservice nas && wl -i eth1 radio off                                      #Fr-Sa abends WLAN off
00 05 * * 0-6 root stopservice nas && wl -i eth2 radio off                                     #5Ghz WLAN off

Jetzt einfach die Zeiten nach euren Wünschen anpassen 🙂

Um das WLAN auch bequem per SSH auf der Console steuern zu können kann man sich auch 4 kleine Skripte anlegen und z.B. unter „/jffs/bin“ speichern. Wichtig ist, dass das Verzeichnis aufgelistet ist wenn man

# echo $PATH

eingibt. Die Ausgabe sieht ungefährt so aus:

/bin:/usr/bin:/sbin:/usr/sbin:/jffs/sbin:/jffs/bin:/jffs/usr/sbin:/jffs/usr/bin:/mmc/sbin:/mmc/bin:/mmc/usr/sbin:/mmc/usr/bin:/opt/sbin:/opt/bin:/opt/usr/sbin:/opt/usr/bin

Ansonsten kann man das Script nicht über den Namen aufrufen sondern muss den kompletten Pfad ausschreiben.

Sollte der Pfad nicht aufgeführt sein, kann man ihn auch manuell hinzufügen:

# export PATH=$PATH:/pfad/zu/scriptordner

Falls das nötig war, dann empfehle ich die Zeile in der GUI unter „Administration\Commands“ in das Feld einzufügen und auf „Save Startup“ zu klicken. Dann wird der Pfad automatisch nach jedem Reboot hinzugefügt.

2,4 Ghz WLAN Einschalten:

1
2
3
4
#!/bin/sh
stopservice nas
wl -i eth1 radio on
startservice nas

2,4 Ghz WLAN Ausschalten:

1
2
3
#!/bin/sh
stopservice nas
wl -i eth1 radio off

5 Ghz WLAN Einschalten:

1
2
3
4
#!/bin/sh
stopservice nas
wl -i eth2 radio on
startservice nas

5 Ghz WLAN Ausschalten:

1
2
3
#!/bin/sh
stopservice nas
wl -i eth2 radio off

Speichert man nun das Skript zum Einschalten des 2,4 Ghz WLANs beispielsweise unter „/jffs/bin/wlanon“ und macht es mit

# chmod +x /jffs/bin/wlanon

ausführbar, dann kann man es in der Console ausführen indem man „wlanon“ eintippt. Dadurch kann man auch die Cronjobs in der GUI übersichtlicher gestalten.

Statt

30 06 * * 1-5 root stopservice nas && wl -i eth1 radio on && startservice nas

kann man nun auch

30 06 * * 1-5 root /jffs/bin/wlanon

eintragen. Aber Achtung, bei Cronjobs immer den ganzen Pfad angeben und den User, der den Befehl ausführen soll, nicht vergessen!

Und nun viel Spaß beim ausprobieren!

Gruß iro

[Last Edit: 24.04.2014]

2 Kommentare zu „[Tutorial] DD-WRT WLAN per Cron zeitgesteuert ein- und ausschalten

  1. wenn man wlan ausschalten will, falls keine clients mehr verbunden sind, dann gibt es folgende möglichkeit:
    */15 * * * * root if [ -z `/usr/sbin/wl -i eth1 assoclist` ];then stopservice nas && wl -i eth1 radio off;else echo „noch connected“;fi

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

*

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.