Seite 1 von 1

Periodisches Auslesen der Modemwerte FB6490

Verfasst: 05.05.2017, 13:08
von Toni8767
Hallo zusammen,

gibt es eventuell eine Möglichkeit (Tool, etc.) um die Modemwerte der Fritzbox 6490 (Vodafone) periodisch (bspw. alle 10 min.) auszulesen und in einer Textdatei zu speichern ?

Hintergrund:
Habe das Problem, dass ich wohl einen sporadischen Rückkanalstörer habe. Meine Modulationen in Senderichtung schwanken sporadisch (alle 2 Wochen ca.) zwischen QPSK und QAM64 auf allen 4 Kanälen. Teilweise fallen auch 2 Kanäle einfach weg. Vodafone bekommt zwar jedesmal eine Störung von mir gemeldet, aber wirklich weg ist der Fehler nicht. Da das ganze auch in die Telefonie haut, möchte ich einfach mal ein kleines Log über die Modemwerte / Modulationen der Kanäle in Senderichtung führen um zu sehen was den Tag über passiert. Und das ganze dann mit Hilfe von Excel, etc. optisch aufbereiten. Manuell ist das halt sehr aufwendig :lol:

Vielen Dank im voraus.

Gruß

Der Toni

Re: Periodisches Auslesen der Modemwerte FB6490

Verfasst: 26.05.2017, 22:59
von nholland
Kannst Du mit curl und ein paar anderen Tools unter Linux o.ä. recht einfach machen. Für eine grundsäzliche Anleitung schaust Du hier.

Basierend darauf hab ich mir beispielsweise das folgende Skript fertig gemacht:

Code: Alles auswählen

#!/bin/bash
_PASSWORD="DeinBoxKennwort"
_REQUESTPAGE="/internet/docsis_info.lua"
_BOXURL="http://fritz.box"
_USERNAME=""
_CHALLENGE=$(curl -s "${_BOXURL}/login_sid.lua?username=${_USERNAME}" | grep -Po '(?<=<Challenge>).*(?=</Challenge>)')
_MD5=$(echo -n ${_CHALLENGE}"-"${_PASSWORD} | iconv -f ISO8859-1 -t UTF-16LE | md5sum -b | awk '{print substr($0,1,32)}')
_RESPONSE="${_CHALLENGE}-${_MD5}"
_SID=$(curl -i -s -k -d "response=${_RESPONSE}&username=${_USERNAME}" "${_BOXURL}" | grep -Po -m 1 '(?<=sid=)[a-f\d]+')
curl -s "${_BOXURL}${_REQUESTPAGE}" -d "sid=${_SID}"
Wenn man das ausführt bekommt man im wesentlichen die HTML-Table zurück, die auf der entsprechenden Seite des Webinterfaces die Modemwerte anzeigt. Will man die Daten einfach nur archivieren, kann man wahrscheinlich diesen Output schon einfach als Datei abspeichern und das alles regelmäßig wiederholen. Man kann es aber auch sicherlich noch weiter verarbeiten und dann einer weiteren Auswertung zuführen - ich selber will die Tage mal zusehen, dass ich ein Munin-Plugin schreibe, dass die auf diese Art und Weise erhaltene Daten verarbeitet.

Eine Sache, die ich mich noch frage, ist, wie man mit der Session umgehen soll ... jeder Aufruf des Skripts macht wohl eine neue Session auf. Die könnte man am Ende auch wieder abmelden, indem man die Zeile

Code: Alles auswählen

curl -s "${_BOXURL}/index.lua" -d "sid=${_SID}" -d "logout=1"
Am Ende hinzufügt. Aber dann hätte man bei jeder Abfrage den Workflow Anmelden / Abrufen / Abmelden. Zweckmäßiger dürfte sein, sich einmal anzumelden und dann immer wieder mit der gleichen Session-ID abzufragen (und ggf. ganz am Ende erst irgendwann die Session abzumelden, oder sie austimen lassen). Fraglich ist nur, ob eine einmal angemeldete Session (zumindest bei regelmäßiger Nutzung) dauerhaft aktiv bleibt oder aber irgendwann abläuft. In diesem Fall mag es dann doch einfacher sein, anstatt sich damit herumzuschlagen, für jede Abfrage eine neue Session anzumelden und direkt danach wieder abzumelden. Aber das alles ließe sich mit etwas Geduld sicherlich weiter testen - der grundlegende Weg dazu ist oben auf jeden Fall aufgezeigt.