Fritzbox 7270/Wlan Repeater Scripts

Hallo Squeeezer

ich machs genau anders rum, bei sendet mein Handy(Android) an IPS das es jetzt wieder im WLAN ist. Damit kann ich mir auch Anrufe/SMS signalisieren bzw. vorlesen lassen.
Funktioniert auch mit GPS aber das saugt einem schon den Akku leer.
Man kann sich also nicht nur ein bin zuhause/weg sondern auch bin „nur“ beim Nachbar/weiter weg usw.
Bei interesse kann ichs ja mal näher beschrieben.

Gruß Jannis

@jannis: klar … als her damit :wink:

Hallo squeeezer

schau dir mal das hier an Android mit IPS verbinden
Werde heute noch kurz beschreiben wie ich IPS mitteile wo ich gerade bin.
Aber im Endefekt funktioniert es so das ich in Tasker eine Überwachung der WLAN-netze habe und wenn mein Milestone zuhause das WLAN findet sendet es ein HTTP_Post an IPS mit der Info „bin wieder da“ und IPS kann dann darauf reagieren.
Beim verlassen des WLANs meldet er sich auch ab, dafür braucht man dann aber natürlich eine von aussen errichbare IP-adresse plus eine Datenoption/Flat fürs handy da man ja nicht mehr im WLAN ist.
Falls man das nicht will/kann kann man Tasker auch dazu bringen das er alle x minuten ein HTTP_post abschickt wenn er im Wlan ist und IPS überwacht wann das letzt mal eine meldung kam.
Wer kein Wlan hat könnte es auch über GPS machen, aber das saugt leider doch noch spürbar den Akku leer.

Alles möglich.

Gruß Jannis

boah … den Thread kannte ich noch nicht … nicht schlecht, das Ganze :slight_smile: … mein Problem ist: ich habe ein HTC HD2 mit Windows Mobile … ich werde mich mal auf die Suche nach etwas ähnlichem machen, aber ich fürchte, dass ich erstmal doch Rainers Skript zum Auslesen der WLAN-Verbindungen aus der Fritzbox benötige :wink:

Trotzdem erst mal danke …

Hi Rainer …

hast du schon mal wegen der WLAN-Geschichte kucken können? Meine Frau ist ganz heiss da drauf :wink:

Danke im Voraus und viele Grüße …

Noch nicht wirklich, ich denke am WE werde ich dazukommen.

super … schon mal herzlichen dank …:slight_smile:

Hallo squeeezer,
versuchs doch mal mit der WatchDog-Funktion.

http://www.ip-symcon.de/forum/f53/w-lan-watch-dog-7566/

… oh mann, warum denk ich immer bloß so kompliziert :o … herzlichen Dank für den Thread-Hinweis, ich werd’s morgen konfigurieren :wink:

… hm … so ganz so funktioniert das nicht … Die Smartphones scheinen irgendwie in einen Stromspar- oder Standby-Modus zu gehen. Jeweils reisst aus heiterem Himmel die Verbindung ab und 10 Minuten später ist sie wieder da. Effekt: Ständiges Ein- und Ausbuchen. Zu beobachten bei 3 verschiedenen Smartphones … :mad:

… da nützt natürlich auch kein Auslesen der FritzBox, da dort ebenfalls die Verbindungen zeitweise weg sind. Wenn ich die Geräte einschalte (aus dem Standby), wird sofort eine WLAN-Verbinudng aufgebaut … diese bleibt auch ca. 30 Minuten bestehen und dann geht das Spielchen wieder von vorne los … wenn ich mit meinem Smartphone nach Hause komme, werde ich so lange nicht eingebucht, bis ich das Telefon ein mal aus dem Standby-Modus aufwecke …

Fazit: Diese Lösung ist nicht geeignet (jedenfalls nicht bei mir …)

Ich werde doch wieder das Bluetooth-Thema verfolgen und habe schon eine neue Idee:

Ich bin im Besitz einer HomeMatic CCU. Kann man nicht da einen Bluetooth-Stick dranfummeln und ggf. Treiber und ein Plugin integrieren, so dass BT-Hardwareadressen im Empfangsbereich irgendwie nach IPS transferiert werden können? Ich bin leider kein Linux-Spezialist aber vielleicht hat jemand eine ähnliche Lösung bereits gebaut?

Parallel hierzu habe ich mal eine Anfrge an BlueID gestartet, ob die - neben den Zugriffsberechtigungen, für was die Software ja eigentlich da ist - sowas können …

Viele Grüße …

Moin Fritzboxler…

Folgende Probleme hab ich, ich würde gerne daten aus der Übersichtsseite auswerten, hänge aber leider imo total in der luft ^^
Die Übersichtsseite hat sich ja nunmal komplett geändert und irgentwie stehe ich bei den scripten zur abfrage der Fritzbox total auf dem schlauch :frowning:

  1. Würde ich gerne, die auswertung der Anschlussdaten als Variable haben (um sie dann zu speichern).
  2. Die Komfortdaten des ABs (ob neue nachrichten vorhanden)…
  3. Die Anruferliste der Übersichtsseite (die 6 Einträge reichen mir)…

Firmwareversion ist : 54.04.85-18061 (7270)

Für ein paar hilfestellungen wäre ich echt dankbar…

Ich habe im Moment diese drauf, 54.04.85-18145. Außer dem Aussehen kann ich nichts feststellen, bei mir funktioniert alles wie gehabt.

Hallo Leute,

ich bin gerade etwas verwundert.:confused: Ich habe diese Firmware drauf:
FRITZ!Box Fon WLAN 7270 v3 (UI) Firmware-Version 74.04.80

Ist Eure einfach nur sehr alt oder worin liegt der Unterschied?

Joachim

Nö, das ist die letzte Beta. :smiley:

Hast Deine Antwort doch schon mitgepostet!!!

FRITZ!Box Fon WLAN 7270 v3

Ist halt die 3. Version der Fritzbox, meine ist noch Version 2

Die unterschiede kannst du hier sehen

Da ich komplett auf Internet umgestellt habe gibt es auch eine neue Liste. Hier werden jetzt auch alle Nummern angezeigt welche nicht übertragen werden.
Es sind einige Anpassungen zumachen.

Das ganze sieht dann so aus wie im Bild unten.

<?
$fritzbox_ip = 'fritz.box';
$fritzgui    = 'http://fritz.box/cgi-bin/webcm';
$fritzseite  = '../html/de/menus/menu2.html';
$filename    = IPS_GetKernelDir()."webfront\\user\\Fritzbox\\Voip.txt";
$voipCsvR    = IPS_GetKernelDir()."webfront\\user\\Fritzbox\\VoipRainer.csv";
$voipCsvG    = IPS_GetKernelDir()."webfront\\user\\Fritzbox\\VoipGabi.csv";
$voipCsvF    = IPS_GetKernelDir()."webfront\\user\\Fritzbox\\VoipFax.csv";
$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;
    }
}

$voip = array('getpage' => $fritzseite, 'sid' => $SID, 'var:menu' => 'fon', 'var:pagename' => 'quality');
$getVoip = http_post_fields($fritzgui, $voip);

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

$voipList = file_get_contents("../webfront/user/Fritzbox/Voip.txt");

$filevoipR = @fopen($voipCsvR, 'wb+');
fwrite($filevoipR, "Typ;Datum;Rufnummer;Eigene Rufnummer;IP-Adresse;Dauer

");
$filevoipG = @fopen($voipCsvG, 'wb+');
fwrite($filevoipG, "Typ;Datum;Rufnummer;Eigene Rufnummer;IP-Adresse;Dauer

");
$filevoipF = @fopen($voipCsvF, 'wb+');
fwrite($filevoipF, "Typ;Datum;Rufnummer;Eigene Rufnummer;IP-Adresse;Dauer

");

$list = explode('document.write(', $voipList);
for ($i = 2; $i < count($list); $i++)
{
    $ausgabe = $list[$i];
    $nr = explode('TrQoS("', $ausgabe);
    
    if(isset($nr[1]))
    {
       if(substr($nr[1], 0, 6) == "xxxxxx") // Nummmer 1 anpassen 6 stellig
       {
           $aktiv = explode('"', $nr[1]);
           $ip = $aktiv[8];
            $aktiv = str_replace("_", ";", $aktiv[0]);
            $oldString = explode(";", $aktiv);
            $newString = $oldString[1].";".$oldString[2].";"."Internet: ".$oldString[0].";".$ip.";".$oldString[3];
            $zeit = substr($newString, 11, 5)."
";
            if(strpos($zeit, ";") !== false)
            {
               $newString = substr_replace($newString, "0", 11, 0);
            }
            if(substr($newString, -7) == "0:00:00")
            {
                $typ = "2";
            }
            if(substr($newString, 17, 1) == "+")
            {
               $newString = substr_replace($newString, "0", 17, 3);
                $typ = "1";
            }
            else
            {
               $newString = substr_replace($newString, "0", 17, 2);
               $typ = "3";
            }
            $newString = $typ.";".$newString;
            if(substr($newString, 19, 5) == "xxxxx") // Ortskennnummer anpassen 5 stellig
            {
               $newString = substr_replace($newString, "", 19, 5);
            }
            fwrite($filevoipR, $newString."
");
        }
        elseif(substr($nr[1], 0, 7) == "xxxxxxx") // Nummer 2 anpassen 7 stellig!
       {
           $aktiv = explode('"', $nr[1]);
           $ip = $aktiv[8];
            $aktiv = str_replace("_", ";", $aktiv[0]);
            $oldString = explode(";", $aktiv);
            $newString = $oldString[1].";".$oldString[2].";"."Internet: ".$oldString[0].";".$ip.";".$oldString[3];
            $zeit = substr($newString, 11, 5)."
";
            if(strpos($zeit, ";") !== false)
            {
               $newString = substr_replace($newString, "0", 11, 0);
            }
            if(substr($newString, -7) == "0:00:00")
            {
                $typ = "2";
            }
            if(substr($newString, 17, 1) == "+")
            {
               $newString = substr_replace($newString, "0", 17, 3);
                $typ = "1";
            }
            else
            {
               $newString = substr_replace($newString, "0", 17, 2);
               $typ = "3";
            }
            $newString = $typ.";".$newString;
            if(substr($newString, 19, 5) == "xxxxx") // Ortskennnummer anpassen
            {
               $newString = substr_replace($newString, "", 19, 5);
            }
            fwrite($filevoipG, $newString."
");
        }
        elseif(substr($nr[1], 0, 6) == "xxxxxx") // Nummer 3 anpassen 6 stellig
       {
           $aktiv = explode('"', $nr[1]);
           $ip = $aktiv[8];
            $aktiv = str_replace("_", ";", $aktiv[0]);
            $oldString = explode(";", $aktiv);
            $newString = $oldString[1].";".$oldString[2].";"."Internet: ".$oldString[0].";".$ip.";".$oldString[3];
            $zeit = substr($newString, 11, 5)."
";
            if(strpos($zeit, ";") !== false)
            {
               $newString = substr_replace($newString, "0", 11, 0);
            }
            if(substr($newString, -7) == "0:00:00")
            {
                $typ = "2";
            }
            if(substr($newString, 17, 1) == "+")
            {
               $newString = substr_replace($newString, "0", 17, 3);
                $typ = "1";
            }
            else
            {
               $newString = substr_replace($newString, "0", 17, 2);
               $typ = "3";
            }
            $newString = $typ.";".$newString;
            if(substr($newString, 19, 5) == "xxxxx") // Ortskennnummer anpassen
            {
               $newString = substr_replace($newString, "", 19, 5);
            }
            fwrite($filevoipF, $newString."
");
        }
    }
}
fclose($filevoipR);
fclose($filevoipG);
fclose($filevoipF);

$filename = "../webfront/user/Fritzbox/VoipRainer.csv";
$id = fopen($filename, "r");
$i = 0;
while(($data = fgetcsv($id, filesize($filename), ";")) && $i < 10)
{
    $i++;
      if ($data[0] == 1) $data[0] = "<img src=\"../user/icons/fixed/Callin.png\" title=\"eingehender Anruf\">";
    if ($data[0] == 2) $data[0] = "<img src=\"../user/icons/fixed/Callinfailed.png\" title=\"Anruf in Abwesenheit\">";
    if ($data[0] == 3) $data[0] = "<img src=\"../user/icons/fixed/Callout.png\" title=\"ausgehender Anruf\">";
    $table[] = $data;
}
fclose($id);

$str = "<table width='100%'align='center'>";
foreach($table as $row)
{
    $str.= "<tr>";
    foreach($row as $data)
    $str.= '<td>'.$data.'</td>';
    $str.= "</tr>";
}
$str .= "</table>";
SetValue(29663 /*[Fritzbox\Anrufliste Rainer]*/, $str);

$file = "../webfront/user/Fritzbox/VoipGabi.csv";
$id1 = fopen($file, "r");
$i = 0;
while(($data1 = fgetcsv($id1, filesize($file), ";")) && $i < 10)
{
    $i++;
      if ($data1[0] == 1) $data1[0] = "<img src=\"../user/icons/fixed/Callin.png\" title=\"eingehender Anruf\">";
    if ($data1[0] == 2) $data1[0] = "<img src=\"../user/icons/fixed/Callinfailed.png\" title=\"Anruf in Abwesenheit\">";
    if ($data1[0] == 3) $data1[0] = "<img src=\"../user/icons/fixed/Callout.png\" title=\"ausgehender Anruf\">";
    $table1[] = $data1;
}
fclose($id1);

$str = "<table width='100%'align='center'>";
foreach($table1 as $value)
{
    $str.= "<tr>";
    foreach($value as $data1)
    $str.= '<td>'.$data1.'</td>';
    $str.= "</tr>";
}
$str .= "</table>";
SetValue(53297 /*[Fritzbox\Anrufliste Gabi]*/, $str);

$file = "../webfront/user/Fritzbox/VoipFax.csv";
$id2 = fopen($file, "r");
$i = 0;
while(($data2 = fgetcsv($id2, filesize($file), ";")) && $i < 10)
{
    $i++;
      if ($data2[0] == 1) $data2[0] = "<img src=\"../user/icons/fixed/Callin.png\" title=\"eingehender Anruf\">";
    if ($data2[0] == 2) $data2[0] = "<img src=\"../user/icons/fixed/Callinfailed.png\" title=\"Anruf in Abwesenheit\">";
    if ($data2[0] == 3) $data2[0] = "<img src=\"../user/icons/fixed/Callout.png\" title=\"ausgehender Anruf\">";
    $table2[] = $data2;
}
fclose($id2);

$str = "<table width='100%'align='center'>";
foreach($table2 as $value)
{
    $str.= "<tr>";
    foreach($value as $data2)
    $str.= '<td>'.$data2.'</td>';
    $str.= "</tr>";
}
$str .= "</table>";
SetValue(47120 /*[Fritzbox\Fax]*/, $str);
?>

Hallo,

kennt jemand vielleicht eine Möglichkeit, die an der Fritzbox angeschlossene USB-Festplatte sicher über das Webfront zu trennen?
Bin dankbar für jeden Tipp.
Schönen Gruß, StevieLu

Sieh mal im Quelltext von USB-Geräte, Geräteübersicht ob Du so was in der Art findest.

<input type="hidden" name="ctlusb:settings/unplug" value="1" id="uiPostUnplug" disabled>

Hätte einer Frage zu dem nachfolgenden Script vom Wlan Repeater

   <?
$fritzrepeatergui    = 'http://XXX.XXX.XXX.XXX/cgi-bin/webcm'; // X durch IP des Repeaters ersetzen
$fritzseite  = '../html/de/menus/menu2.html';
$password = "XXXXXXXXX"; // X durch Passwort ersetzen
$text = (GetValueFloat(44520) . " Grad"); // Beispiel Temperaturanzeige - anzuzeigende Variablen und Texte (bis max. 240 Zeichen) einfügen
$ch = curl_init($fritzrepeatergui . '?getpage=../html/index_inhalt.html');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$login = curl_exec($ch);
curl_close($ch);
$response = http_post_fields($fritzrepeatergui, array('login:command/password' => $password));
$settext = http_post_fields($fritzrepeatergui, array('getpage' => $fritzseite, 'var:pagename' => 'infoled', 'nlr:settings/TDS_ScrollText' => $text));
?> 

Ich denke, das dieser Teil für die Anzeige " Individuelen Text anzeigen" verantwortlich ist:
pagename’ => ‚infoled‘, 'nlr:settings/TDS_ScrollText’ => $text));

weiss jemand die „pagenamen“ für:
Statusinformationen anzeigen
Display komplett ausschalten
Anzeige um 180 Grad drehen

Vielen Dank für Eure Hilfe

Luggi

<input type="hidden" name="getpage" value="../html/de/menus/menu2.html" id="uiPostGetPage">
<input type="hidden" name="errorpage" value="../html/de/menus/menu2.html" id="uiPostErrPage">
<input type="hidden" name="var:pagename" value="infoled" id="uiPostPageName">
<input type="hidden" name="var:errorpagename" value="infoled" id="uiPostErrorPageName">
<input type="hidden" name="var:menu" value="system" id="uiPostMenu">
<input type="hidden" name="var:pagetitle" value="" id="uiPostPageTitle" disabled>
<input type="hidden" name="var:pagemaster" value="" id="uiPostPageMaster">
<input type="hidden" name="time:settings/time" value="" id="uiPostDateTime">
<!-- END Refresh Form -->

<input type="hidden" name="nlr:settings/TDS_Timeout" value="300">
<input type="hidden" name="nlr:settings/TDS_ShowMask" value="4095">
<input type="hidden" name="nlr:settings/TDS_Config" value="2">
<input type="hidden" name="nlr:settings/TDS_ScrollText" value="">
<input type="hidden" name="nlr:settings/TDS_Orientation" value="0">