Von der (Linux-)Kommandozeile aus geht das ganz einfach mit dem Abschalten:
Code:
1 #! /bin/sh
2 #####################################################################################
3 # #
4 # create the HTTP request #
5 # #
6 #####################################################################################
7 post_request()
8 {
9 local request="$1" host="$2"
10 cat <<EOT
11 POST /system/led_display.lua HTTP/1.1
12 User-Agent: handcrafted_request/1 (shell)
13 Accept: */*
14 Host: $host
15 Connection: Keep-Alive
16 Content-Type: application/x-www-form-urlencoded
17 Content-Length: ${#request}
18
19 $request
20 EOT
21 }
22 #####################################################################################
23 # #
24 # parameters and defaults #
25 # #
26 #####################################################################################
27 [ "$1" = "-d" -o "$1" = "--debug" ] && { debug=1; shift; } || debug=0;
28 # IP address of FRITZ!Box
29 host="${3:-192.168.178.1}"
30 #####################################################################################
31 # #
32 # SID has to be the first parameter #
33 # #
34 #####################################################################################
35 [ -z "$1" ] && printf "Missing SID ...\n" && exit 1
36 new=${2:-0}
37 [ "$2" = "0" -o "$2" = "1" -o "$2" = "2" ] || { printf "Invalid new state '%s' ..." "$2" && exit 1; }
38 request="sid=$1&led_display=$2&apply="
39 [ $debug -eq 1 ] && post_request "$request" "$host"
40 [ $debug -eq 1 ] && post_request "$request" "$host" | nc $host 80 || post_request "$request" | nc $host 80 1>/dev/null
41 [ $debug -eq 1 ] && printf "\n--- end of communication ---\n"
Nur mit
Code:
led_display <sid> <0|1|2> [<ip>]
aufrufen (0 -> ein, 1 -> verzögert aus, 2 -> aus; <sid> aus eigener Anmeldung oder weiß ich woher, <ip> ist optional und normalerweise "192.168.178.1", wenn sie nicht angegeben wird) und die LEDs gehen auch bei der aktuellen 06.83 noch an oder aus ... bei der 7580 gibt sich halt die Internet-LED ungerührt.
Bei der "Verteilung" über die "data.lua" wird leider der Eintrag in der "menu_data.lua" gesucht und (bei unmodifizierter Firmware) nicht (mehr) gefunden - damit funktioniert der frühere "Einzeiler" per "wget" tatsächlich nur noch dann (und macht als "Automatisierung" aber immer noch Sinn, wenn man nicht jedesmal über den Browser umschalten will, sondern das z.B. nach dem Sonnenstand macht), wenn man zuvor die "led_display.lua" ohnehin in das Menü eingebaut hat.
Der direkte Aufruf der "led_display.lua" über einen POST-Request ist aber seit langem unverändert - es muß halt ein POST-Request sein und kein GET. Wer ein "wget" hat, was auch POST-Requests senden kann (die BusyBox-Version kann es nicht), der kann das natürlich auch als Einzeiler mit "wget --post-data" realiisieren - das ist so leicht (auch in Windows, wenn man sich ein passendes "wget" organisiert - nur das "Escapen" der &-Zeichen (ampersands) sieht da ggf. anders aus), das schwimmt sogar in Milch:
Code:
wget -O - --post-data sid=<sid>\&led_display=<0|1|2>\&apply= http://<ip>/system/led_display.lua
Wer das nicht eintippen kann (und es auch nicht in einen "Wrapper" verpackt kriegt), der kann es natürlich auch im Browser machen - der Weg ist egal, das Ziel (hier der POST-Request) ist das Entscheidende.