Fritz!Box Leds auf 2.Box klonen

M1cha

Neuer User
Mitglied seit
2 Nov 2008
Beiträge
55
Punkte für Reaktionen
0
Punkte
6
Hi, ich würde gerne die LED-Anzeige, meiner ersten FritzBox, die im Keller steht, mit der auf meiner 2.) die in meinem Zimmer hängt synchronisieren.
(die 2. hängt am lan anschluss der 1. als IP-Client)
Das hat den Zweck, dass ich in meinem Zimmer den vollen überblick habe und nicht in den Keller laufen muss *GG*

Erstmal geht es darum, die LEDs auf der Keller-Box abzufragen.
Gibt es einen Befehl dafür? Wenn nicht wird das etwas komplizierter.
Ich hätte gerne die "Internet" und "Festnetz", LEDs.
Und zusätzlich die Power/DSL-Lampe(sie soll blinken, wenn kein DSL verfügbar ist)
zu dem DSL-Status gibt es hier einige Ansätze mit multid oder über das Webinterface:
http://www.ip-phone-forum.de/showthread.php?t=88146

Zu den anderen beiden Lampen fällt mir dagegen wirklich nichts ein.
Naja wie gesagt, es wäre genial, wenn jemand einen Befehl kennt, die Status LEDs abzufragen, oder vllt kann man dem "/dev/new_led" programm ja sagen, es soll bei jeder led-neukonfiguration ein script ansprechen.

Vielen Dank schonmal für eure Antworten.
 
Hi M1cha

Die LEDs kannst du selbst setzen und abfragen. Wie du sie ausliest? gidf unso, aber setzen kannst du sie mit echo, zb echo 7,4 > /var/led (auf manchen boxen /proc/led_mod/led ). Die genauen codes fürs setzen musst du dir halt selbst raussuchen, afaik stehen die bei wehavemorefun im wiki. Für die übertragung solltest du dir halt nen eigenen daemon schreiben, alternativ tuts aber auch ein shell script und netcat in richtigem einsatz.

zb:

while(/bin/true)
do
nc -p 555 andere.fritz.box.ip < led einlesen
done

für die box deren leds gelesen werden sollen
und auf der anderen box:

while(/bin/true)
do
nc -p 555 -l > /var/led
done

ein bissel googeln noch und dann solltest dus auch haben
 
danke für deine hilfe, aber mein größtes Problem ist wirklich , wie ich prüfen kann ob eine led an oder ausgeschaltet ist, stundenlanges google konnte nicht helfen :(
 
Hi M1cha, ein kleiner tipp den ich noch für dich habe. Probier mal dich im OpenWrt trac einzulesen. dort ist in den tracs recht viel information über die LED-Ansteuerung in Routern(generell, nicht auf die FB direkt bezogen) zu lesen. möglicherweise findest du dort zumindest hinweise auf einen lösungsansatz. Dummerweise weiss ich selbst nicht, wie die FBF die LEDs intern anspricht, ob per GPIO oder sonstwie. sollte das ganze per GPIO geschehen, dann wäre es hilfreich sich dazu mal die AVM sources anzuschauen. dort speziell die kernelsourcen, da es ein modul für GPIO geben müsste. bei meinem D100 von Huawei sind die entsprechenden ansteuerungsmöglichkeiten glücklicherweise von huawei selbst per Kommentar in die sourcen reingeschrieben, da Huawei da am reference design rumgepfuscht hat(und ja, das was die gemacht haben war wirklich pfusch). Das könnten also 2 gute ansätze sein. was sonst noch möglich wäre... du könntest die Stati der LEDs hardwaremässig erfassen. sprich du prüfst auf dem board direkt, ob spannung an der LED anliegt, diese könnstest du dann zb via USB2ParallelPort adapter auswerten und weiterverwenden(RS232 ginge auch, ist aber ungleich komplizierter, daher lieber parallel). Vorausgesetzt natürlich, deine box hat einen usb-port. Nächste alternative wäre dann noch, eine art proxy zwischen /var/led zu schalten. sprich: du erzeugst mit mknod einen Deskriptor für die LED, nennen wir ihn /lar/led0, und schreibst ein script, das du unter /var/led ablegst, welches die eingaben an /var/led abfängt, per netzwerk weiterschickt, und an /var/led0 weiterleitet.
 
Hallo,

sorry dass ich mich solange nicht gemeldet habe, aber ich hatte leider etwas viel um die Ohren.
Die Letzte Möglichkeit mit dem Script klinkt ja schonmal ganz gut.
Ich hab mit folgenden Befehlen auch schonmal einen Ansatz erstellt:
Code:
# LED-MOD Verzeichnis erstellen
mkdir /var/tmp/led_mod
chmod +x /var/tmp/led_mod

# Neuen Deskriptor für die LEDs erstellen
mknod /var/tmp/led_mod/led_dev c 251 0

# Skript-Datei erstellen
touch /var/tmp/led_mod/new_led
chmod +x /var/tmp/led_mod/new_led

# Alten LED-Deskriptor durch Skript ersetzen
mount -o bind /var/tmp/led_mod/new_led /dev/new_led

Allerdings werden ja keine Parameter übergeben wenn man die LEDs ansprechen will,
sondern man schreibt etwas in /var/new_led hinein, z.B.:
echo 1,4 >/dev/new_led

Das heißt, wenn ich ein Script in die Datei schreibe, wird das nur überschrieben und nicht ausgeführt.
Lässt sich da was machen? Weil der Ansatz ist ja garnicht mal so schlecht.

MfG M1kka

Edit: Ich frage mich, ob man die LEDs an ein Script binden kann, denn wenn ich im FritzBox-Webinterface, die Option "Info-LED leuchtet bei aktivem WLAN" aktiviere, steht folgendes in der new_led:
Code:
UNMAP budget,0DOUBLE wlan,0 TO info,0#
kann man sich keine Liste aller Kommandos ausgeben lassen, auf die die Schnittstelle reagiert?
 
wenns so einfach wäre...
aber wie wäre es mit folgendem ansatz:
# LED-MOD Verzeichnis erstellen
mkdir /var/tmp/led_mod
chmod +x /var/tmp/led_mod

# Neuen Deskriptor für die LEDs erstellen
mknod /var/tmp/led_mod/led_dev c 251 0

# Skript-Datei erstellen
#touch /var/tmp/led_mod/new_led #Die wird automatisch angelegt, sobald ein Script
# die LED setzt
#chmod +x /var/tmp/led_mod/new_led //Die muss afaik nicht ausführbar sein

# Alten LED-Deskriptor durch Skript ersetzen
#mount -o bind /var/tmp/led_mod/new_led /dev/new_led #wir müssen sie nicht bind-en

stattdessen erstellst du folgendes script:
#!/bin/sh
while(/bin/true)
do
cat /var/led > /var/led_mod/led_mod
nc -p 555 andere.fritz.box.ip < /var/led
sleep 1
done

#EOF
Dabei hast du halt immer eine Sekunde Latenz. afaik müsste man auch usleep benutzen können. Damit kannst du dann im millisekunden-bereich agieren, allerdings weiss ich nicht ob die busybox der FB usleep bereitstellt. zur not selbst einbauen.

auf der client-box müsstest du dann folgendes script installieren:
#!/bin/sh
while(/bin/true)
do
nc -l -p 555 > /var/led
done
#EOF
das ganze startet eine endlosschleife, in der netcat auf port 555 lauscht, und alles was da ankommt auf /var/led ausgibt. da nc so lange blockiert bis etwas reinkommt, brauchst du im 2. script auch kein (u)sleep

Wichtig: Lass (u)sleep im ersten script nicht aus, weil das script sonst die CPU der Box immer auf vollast fahren lässt. und ich denke nicht, dass die Box das auf dauer aushält.
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.