FritzBox 7170 Auslesen Wert Signal/Rauschabstand

Ich wohne am Rand des DSL-Versorgungsbereiches und empfange max. 1184 KBit/s.
Meine Leitung war vor einiger Zeit gestört, läuft aber jetzt wieder einigermasen befriedigend.

Ich möchte aus meiner FritzBox 7170 den Signal/Rauschabstand aus der Internet/DSL-Informationen auslesen
und über eine Variable loggen, um die Veränderungen zu protokollieren.

Kennt jemand eine Möglichkeit, wie man das angehen könnte?

Hallo Rainer,

z.B. so.

wenn du damit nicht zurecht kommst, schick mir den Seitenquelltext, ich bau es dir dann zusammen.

Die entsprechende Zeile auswählen und auf die Variable setzen.

Hier auch noch mal das letzte Script von mir. Du musst allerdings die Zeilen abgleichen, da ich die letzte DSL-Firmware für die 7270 verwende.

<?
$fritzbox_ip = 'fritz.box';
$fritzgui    = 'http://fritz.box/cgi-bin/webcm';
$fritzseite  = '../html/de/menus/menu2.html';
$filename    = IPS_GetKernelDir()."\\webfront\\user\\Fritzbox\\DslDetails.txt";// anpassen
$password    = 'xxxxxx';

$ch = curl_init('http://' . $fritzbox_ip . '/cgi-bin/webcm?getpage=../html/login_sid.xml');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$login = curl_exec($ch);
curl_close($ch);
$session_status_simplexml = simplexml_load_string($login);


if ($session_status_simplexml->iswriteaccess == 1)
{
   $SID = $session_status_simplexml->SID;
}
else
{
   $challenge = $session_status_simplexml->Challenge;
   $response = $challenge . '-' . md5(mb_convert_encoding($challenge . '-' . $password, "UCS-2LE", "UTF-8"));
   $login = array('getpage' => $fritzseite, 'login:command/response' => $response);
   $sendlogin = http_post_fields($fritzgui, $login);
   preg_match('@<input type="hidden" name="sid" value="([A-Fa-f0-9]{16})" id="uiPostSid">@i', $sendlogin, $matches);
   if (isset($matches[1]) && $matches[1] != '0000000000000000')
   {
      $SID = $matches[1];
   }
   else
   {
      echo "Fehler: Login fehlgeschlagen";
      return;
    }
}

$dsl = array('getpage' => $fritzseite, 'sid' => $SID, 'var:menu' => 'internet', 'var:pagename' => 'adsl');
$getDslDetails = http_post_fields($fritzgui, $dsl);

$fileHandle = @fopen($filename, 'wb+');
fwrite($fileHandle, $getDslDetails);
fclose($fileHandle);

$lines = file("../webfront/user/Fritzbox/DslDetails.txt");
//print_r($lines);

for ($i = 1863; $i <= 1974; $i++)
{
    $ausgabe = $lines[$i];
    $ausgabe = str_replace("ä", "ä", $ausgabe);
    $ausgabe = str_replace('<table id="t1" class="tborder" width="600" style="margin: auto;">', '<table border="1" width="990" style="margin: 15px; background-color:#FFFFC0; color:#000000;">', $ausgabe);
    $ausgabe = str_replace('<table id="t4" class="tborder" width="600" style="margin: auto;">', '<table border="1" width="990" style="margin: 15px; background-color:#FFFFC0; color:#000000;">', $ausgabe);
    $ausgabe = str_replace('<td class="c3">', '<td style="text-align:right;">', $ausgabe);
    $ausgabe = str_replace('<td class="c2">', '<td style="text-align:right;">', $ausgabe);
   $ausgabe = str_replace('<th class="c3">', '<th style="text-align:right;">', $ausgabe);
   //$ausgabe = str_replace('<th class="c1"></th>', '<th style="text-align:left; background-color:#C0C0C0;">Informationen</th>', $ausgabe);
   //$ausgabe = str_replace('<th class="c2"></th>', '<th style="background-color:#C0C0C0;">', $ausgabe);
    echo $ausgabe;
}

$crc = strip_tags($lines['1827']);
SetValue(40437 /*[Fritzbox\CRC Fehler]*/, $crc);


?>

Danke Rainer,

den Post hatte ich nicht gefunden, war ja schon alles mal da.

Zunächst hatte ich nicht den richtigen Quelltext gefunden, dann hats aber mit dem richtigen Frame geklappt.

Die Zeilen für die Fritzbox 7170 sind „1607 -1689“ bzw " -1719", wenn man die die CPE und COE-Daten benötigt.

Danke für die Hilfe und bis zum Samstag in einer Woche in Nidda bei dir.
Das wird bestimmt wieder interessant.