.titleBar { margin-bottom: 5px!important; }

Online(Verbindungs) Status Geräte abfragen

Dieses Thema im Forum "FRITZ!Box Fon: Modifikationen" wurde erstellt von joe-voip, 12 Apr. 2012.

  1. joe-voip

    joe-voip Neuer User

    Registriert seit:
    20 Apr. 2004
    Beiträge:
    55
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo zusammen,

    ich hoffe ich bin hier im richtigen Unterforum, habe eine Fritzbox 7170.
    Ich suche nach einer Möglichkeit den Online- oder Verbindungsstatus aus dem Webinterface per telnet oder wget abzufragen.
    Ich meine hierbei die Anzeige im Webinterface die man mit diesem Link erreicht:

    http://fritz.box/cgi-bin/webcm?getp...menu2.html&var:menu=net&var:pagename=net&sid=.....
    Dort im Reiter Geräte und Benutzer.

    Was fast noch besser ist:

    http://fritz.box/system/syslog.lua?sid=......
    Dort im Reiter WLAN, da ich eh nur schauen will ob ein Familienmitglied mit Smartphone anwesend ist.

    Ich würde diesen Zustand gerne für eine Heimautomatisierung auswerten, um fest zu stellen ob jemand im Haus ist.
    Ich konnte beobachten, dass zumindest die WLAN Liste für meine Zwcke ausreichen würde ob ein Gerät angemeldet ist oder nicht.
    Klasse wäre es wenn ich den zustand per Telnet oder wget abfragen könnte.
    Eine weitere Möglichkeit wäre es wenn auf der Fritzbox per Cronjob alle 2 Minuten eine Textdatei wohin geschrieben wird, wo ich diese runterladen kann.
    Meint Ihr so etwas ist machbar?

    Besten Dank für Tipps.

    Jochen
     
  2. roadman17

    roadman17 Mitglied

    Registriert seit:
    8 Apr. 2008
    Beiträge:
    336
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Das folgende Skript sollte dir helfen:
    Code:
    #!/bin/sh
    
    # $1: active/online (optional)
    landevicelist() {
    	local checktype=${1:-active}
    	local count=0
    	local maxcount=$(ctlmgr_ctl r landevice settings/landevice/count)
    	while [ $count -lt $maxcount ] ; do
    		local showmac=$(ctlmgr_ctl r landevice settings/landevice$count/$checktype)
    		if [ $showmac -eq 1 ] ; then
    			local mac=$(ctlmgr_ctl r landevice settings/landevice$count/mac)
    			local name=$(ctlmgr_ctl r landevice settings/landevice$count/name)
    			echo $mac $name 
    		fi
    		: $((count++))
    	done	
    }
    echo "Folgende Geraete sind im Netzwerk angemeldet:"
    landevicelist
    echo "Folgende Geraete sind online:"
    landevicelist online
     
  3. joe-voip

    joe-voip Neuer User

    Registriert seit:
    20 Apr. 2004
    Beiträge:
    55
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo Roadman,

    vielen Dank für das Script.
    Sorry erst mal für meine Unwissenheit, kann zwar mit Linux umgehen aber die Fritzbox betreibe ich seither als "Anwender".
    Kann ich mit der aktuellen Standardfirmware das Script per Cron ausführen?
    Habe Telnet Zugriff auf die Box und habe das Script auf dem USB Stick abgelegt.

    Wenn Du noch Lust hast ein paar Zeilen zu schreiben, spart mir das viel Zeit.
    Sonst muss ich halt in die Tiefen des Forums abtauchen und sehen wie ich Dein Script zum Leben erwecke.
    Vielen Dank auf jeden Fall für Deine Hilfe und das Script!

    Jochen
     
  4. TomTomNavigator

    TomTomNavigator Mitglied

    Registriert seit:
    24 Aug. 2007
    Beiträge:
    633
    Zustimmungen:
    1
    Punkte für Erfolge:
    18
    #4 TomTomNavigator, 14 Apr. 2012
    Zuletzt bearbeitet: 14 Apr. 2012
    Wenn das Script alle 2 Minuten ausgeführt werden soll, einfach eine while Schleife drum und eine Wartezeit von 120 Sekunden (sleep) einfügen, etwa so:

    Code:
    #!/bin/sh
    
    while true; do
    # $1: active/online (optional)
    landevicelist() {
    	local checktype=${1:-active}
    	local count=0
    	local maxcount=$(ctlmgr_ctl r landevice settings/landevice/count)
    	while [ $count -lt $maxcount ] ; do
    		local showmac=$(ctlmgr_ctl r landevice settings/landevice$count/$checktype)
    		if [ $showmac -eq 1 ] ; then
    			local mac=$(ctlmgr_ctl r landevice settings/landevice$count/mac)
    			local name=$(ctlmgr_ctl r landevice settings/landevice$count/name)
    			echo $mac $name 
    		fi
    		: $((count++))
    	done	
    }
    echo "Folgende Geraete sind im Netzwerk angemeldet:"
    landevicelist
    echo "Folgende Geraete sind online:"
    landevicelist online
    sleep 120
    done
    

    Sollen die Ausgaben dann immer in eine Textdatei geschrieben werden, dann beim Aufruf einfach die Ausgabe umleiten.
    Code:
    ./online.sh > ausgabe.txt &
     
  5. joe-voip

    joe-voip Neuer User

    Registriert seit:
    20 Apr. 2004
    Beiträge:
    55
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    @TomTomNavigator

    vielen Dank!
    Wo sol ich das Script hin kopieren?
    Und starten dann mit der debug.cfg?
    Da muss ich mal in´s wiki schauen.

    Vielen Dank Ihr 2.

    Jochen