http://Pass.Telekom.de auslesen - LTE Traffic

Hi,

in meinem LTE Tarif habe ich ein Datenvolumen. Über die Webseite Datennutzung lässt sich der aktuelle Verbrauch abfragen.

Hierzu habe ich ein Parsing-Script erstellt, welches die Werte in eine Variable schreibt.

Bitte verzeiht mir evtl. PHP Programmierfehler - ich bin froh, dass ich es so hinbekommen habe :wink:

Vielleicht hilft es dem ein oder anderen weiter.

Grüße

<?php
//error_reporting(E_ERROR | E_WARNING | E_PARSE);


$curl = curl_init('http://pass.telekom.de');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');
$page = curl_exec($curl);

//print_r($page);
if(curl_errno($curl)) // check for execution errors
{
    echo 'Scraper error: ' . curl_error($curl);
    exit;
}
curl_close($curl);

$DOM = new DOMDocument;
//print_r($DOM);
libxml_use_internal_errors(true);

if (!$DOM->loadHTML($page))
    {
        $errors="";
        foreach (libxml_get_errors() as $error)  {
            $errors.=$error->message."<br/>";
        }
        libxml_clear_errors();
        print "libxml errors:<br>$errors";
        return;
    }
$xpath = new DOMXPath($DOM);

// ***********************************************
// Verbraucht ************************************
// ***********************************************
$verbraucht = $xpath->query('.//*[@id=\'content\']/div[1]/div/div[3]/span');
foreach ($verbraucht as $entry1) {
$output[] = $entry1->nodeValue;
}

//wegschneiden von unnötigen Zeichen
preg_match_all('!\d+!', $entry1->nodeValue, $matches);
$output_final = $matches[0][0] . '.' . $matches[0][1];

//schreibe in IPS Variable
SetValue(17875 /*[Fritzbox\LTE Details\LTE Verbrauch]*/, floatval($output_final));

// ***********************************************
// Kontingent ************************************
// ***********************************************
$kontingent = $xpath->query('.//*[@id=\'content\']/div[1]/div/div[3]');
foreach ($kontingent as $entry2) {
$output[] = $entry2->nodeValue;
}

print_r($output);

//wegschneiden von unnötigen Zeichen
preg_match_all('!\d+!', $entry2->nodeValue, $matches);

print_r($matches);
$output_final = $matches[0][2];

//schreibe in IPS Variable
SetValue(58848 /*[Fritzbox\LTE Details\LTE Kontingent]*/, floatval($output_final));



?>


LTEAuslesen.zip (15.4 KB)

Abend Frad,

Wenn ich eine kurze Anmerkung dazu machen darf. Diese Seite kann man nur aufrufen und parsen, wenn IPS auch über diese LTE/UMTS Verbindung online geht! Man kann das leider nicht (zumindest nicht auf diesem Wege) einfach für z.B. seinen Handy-Traffic nutzen, um dort den verbrauchten Traffic abzufragen.
Wenn man diese Seite aufruft, wird immer der Traffic zur aktuellen Verbindung angezeigt. Also vom Handy aufgerufen zeigt es den Handy-Traffic an, wenn die Seite zu Hause im LTE aufgerufen, zeigt es dem LTE-Traffic an.
Dies nur als kleine Erklärung, bevor sich einer wundert :slight_smile:

Danke für dein Skript!!!

Grüße,
Chris

Hi Chris,

danke für dne Hinweis - das ist natürlich Grundvoraussetzung, dass was du geschrieben hast :slight_smile:

Grüße

Hallo

kann man auch die letzte Aktualisierung aus der Seite abfragen?

Norbert

was meinst du mit letzter Aktualisierung? Sobald die Seite ausgelesen wird erhältst du immer aktuelle Verbrauchsinformationen.

Habe mal DANK Rakenschneckes SetupSkript eine installierbare Version erstellt - inkl. Prowl usw. Müsstes du dir dann noch ein wenig abändern…

LTEAuslesen.zip (15.4 KB)

Hallo
ich meinte das Datum un die Uhrzeit aus dem Text s.U.

Ihr Telekom Datentarif
Call & Surf Comfort via Funk M

6,63 GB von 15 GB mit voller Geschwindigkeit verbraucht
Abrechnungsmonat: Januar 2015
Nutzbar für: 22 Tage 8 Std.
Wenn Sie Ihr Inklusiv-Datenvolumen verbraucht haben, können Sie mit SpeedOn zusätzliches Datenvolumen dazubuchen und mit Highspeed weitersurfen.

Die angezeigten Informationen sind zeitverzögert und können vom tatsächlichen Verbrauch abweichen.
Letzte Aktualisierung: 09.01.2015 um 10:13 Uhr (MEZ/MESZ)

mfg

VIIELLLENN DANK, genau das habe ich gebraucht!