Fritzbox 7270/Wlan Repeater Scripts

angepasst, aber da tut sich nichts

Angelegt hast Du sie in der Fritzbox aber schon. Sieh im Quelltext nach ob die Befehle übereinstimmen mit denen die im Script stehen.

Angelegt hast Du sie in der Fritzbox aber schon. Sieh im Quelltext nach ob die Befehle übereinstimmen mit denen die im Script stehen

da hab ich wahrschenlich was nicht mitgelesen :confused::confused::confused:

Naja, wie soll was eingeschaltet oder umgeleitet werden, was nicht vorhanden ist. :rolleyes::slight_smile:

ich ging eigentlich davon aus, dass diese Scripts auf „Standart“-Einstellungen der Fritzbox beruhen. Ich steh jetzt komplett auf dem Schlauch was das anbelangt. Kannst du mir sagen, was da übereinstimmen muss?

Hast Du nun eine Rufumleitung in der Fritzbox angelegt oder nicht. Ohne geht es nicht!!!

die Rufumleitung ist angelegt (mehrere), aber ich will nur die erste umschalten, und das ist ja laut Script so, wenn ich das richtig interpretiert habe.

OK, dann mach den Framequelltext auf und sieh nach ob die Befehle passen, wenn sie bei dir anderst heissen, musst Du sie halt anpassen.

switch($IPS_VALUE)
    {
       case 0:
            http_post_fields($fritzgui, array('getpage' => $fritzseite, 'sid' => $SID, 'telcfg:settings/Diversity0/Active' => $aus));
       break;
       case 1:
            http_post_fields($fritzgui, array('getpage' => $fritzseite, 'sid' => $SID, 'telcfg:settings/Diversity0/Active' => $ein));
       break;
       case 3: // Wert der Integervariable
          SetValue(56626 /*[Fritzbox\Rufumleitungen\umleiten zu]*/, 3);
          $handy = http_post_fields($fritzgui, array('getpage' => $fritzseite, 'sid' => $SID, 'var:menu' => 'fon', 'var:pagename' => 'rulall1', 'telcfg:settings/Diversity0/Destination' => $nummerhandy));
       break;
       case 4: // Wert der Integervariable
          SetValue(56626 /*[Fritzbox\Rufumleitungen\umleiten zu]*/, 4);
          $buero = http_post_fields($fritzgui, array('getpage' => $fritzseite, 'sid' => $SID, 'var:menu' => 'fon', 'var:pagename' => 'rulall1', 'telcfg:settings/Diversity0/Destination' => $nummerbuero));
       break;
    }

    $checksetting = array('getpage' => $fritzseite, 'sid' => $SID, 'var:menu' => 'fon', 'var:pagename' => 'rulall');
    $sendcheck = http_post_fields($fritzgui, $checksetting);
    preg_match('@name="telcfg:settings/Diversity0/Active" value="([10])"@i', $sendcheck, $matches);

Hallo Rainer

hab mir die Quelltexte angeschaut, aber der Bahnhof war wieder mal näher :confused:

Kannst Du mir ein bisschen genauer sagen, worauf ich schauen muss?

Das ist zB. identisch: ‚telcfg:settings/Diversity0/Active‘

auf alles rote was nach sid steht.

Hallo,
das Script von Rainer klappt super, kann perfekt umschalten auf verschiedene
Rufnummern.
Jetzt möchte ich das ganze soweit erweitern, daß ich auch auf den internen AB die Rufumleitung schicken kann.
Der Ab ist angelegt, wie kann ich die Umschaltung auf intern realisieren ?
Fritzbox 7170

Das mit den Quelltexten auslesen haut irgendwie bei mir nicht hin

Gruss

Benjo

Hallo Benjo,

Das mit den Quelltexten auslesen haut irgendwie bei mir nicht hin

Wie das funktioniert, ist beschrieben, glaube im 2ten Post.

Für deinen AB, sieh mal im Quelltext nach, sollte etwas so aussehen.

<input type="hidden" name="telcfg:settings/CallerIDActions0/Active" value="0" id="uiPostActivRub0">

Hallo Rainer,
danke für die Antwort,nur leider bin ich damit leider
intelektuell noch etwas überfordert.
1)
Ich habe den Post 2 gelesen; wenn ich auf der entsprechenden Seite der Fritzbox rechte Maustaste -> aktuellen Frame-> quelltext anzeigen lasse,dann erscheint nur:
"<!DOCTYPE HTML PUBLIC „-//W3C//DTD HTML 4.01 Transitional//EN“ „http://www.w3.org/TR/html4/loose.dtd“>
<html>
2) würde den Befehl gerne ausprobieren, weis aber leider überhaupt nicht, wie den in das Script einbauen sollte.
Habe mal den Codeschnipsel beigefügt.
Der $ab funktioniert halt nicht, da es keine externe rufnummer ist
case 13

Skriptschnipsel:

switch($IPS_VALUE)
    {
       case 0:
            $umleitung = http_post_fields($fritzgui, array('getpage' => $fritzseite, 'sid' => $SID, 'telcfg:settings/CallerIDActions0/Active' => $aus));
       break;
       case 1:
            $umleitung = http_post_fields($fritzgui, array('getpage' => $fritzseite, 'sid' => $SID, 'telcfg:settings/CallerIDActions0/Active' => $ein));
       break;
       case 10: // Wert der Integervariable handy rainer dienst
          SetValue(36979 /*[WEF\Ipad\Telefon\Anruferliste\Automation\Umleitungsnummer]*/,10);
          $rainer_dienst = http_post_fields($fritzgui, array('getpage' => $fritzseite, 'sid' => $SID, 'var:menu' => 'fon', 'var:pagename' => 'rulall1', 'telcfg:settings/CallerIDActions0/Destination' => $rainer_dienst));
       break;
       case 11: // Wert der Integervariable handy rainer privat
          SetValue(36979 /*[WEF\Ipad\Telefon\Anruferliste\Automation\Umleitungsnummer]*/,11);
          $rainer_privat = http_post_fields($fritzgui, array('getpage' => $fritzseite, 'sid' => $SID, 'var:menu' => 'fon', 'var:pagename' => 'rulall1', 'telcfg:settings/CallerIDActions0/Destination' => $rainer_privat));
       break;
       case 12: // Wert der Integervariable handy christa
          SetValue(36979 /*[WEF\Ipad\Telefon\Anruferliste\Automation\Umleitungsnummer]*/,12);
          $christa = http_post_fields($fritzgui, array('getpage' => $fritzseite, 'sid' => $SID, 'var:menu' => 'fon', 'var:pagename' => 'rulall1', 'telcfg:settings/CallerIDActions0/Destination' => $christa));
       break;
       case 13: // Wert der Integervariable anrufbeantworter
          SetValue(36979 /*[WEF\Ipad\Telefon\Anruferliste\Automation\Umleitungsnummer]*/,13);
          $ab = http_post_fields($fritzgui, array('getpage' => $fritzseite, 'sid' => $SID, 'var:menu' => 'fon', 'var:pagename' => 'rulall1', 'telcfg:settings/CallerIDActions0/Destination' => $ab));
       break;
    }

case 10-12 funktionieren perfekt

Noch einen Tip für mich ?

Gruss Rainer

Wie sieht denn deine Einrichtungsseite in der Fritzbox aus.

wenn ich auf der entsprechenden Seite der Fritzbox rechte Maustaste -> aktuellen Frame-> quelltext anzeigen lasse,dann erscheint nur:
Du musst ganz runterscrollen!

case 13: // Wert der Integervariable anrufbeantworter 
          SetValue(36979 /*[WEF\Ipad\Telefon\Anruferliste\Automation\Umleitungsnummer]*/,13); 
          $ab = http_post_fields($fritzgui, array('getpage' => $fritzseite, 'sid' => $SID, 'var:menu' => 'fon', 'var:pagename' => 'rulall1', 'telcfg:settings/CallerIDActions0/Active' => $ein)); 
       break; 

oder aus

Hallo Zusammen,

nach dem Update der Fritz!Box 7270 auf die Version 74.05.05 klappt das Schalten der Kindersicherung nicht mehr.

Auszug von Befehl:


$kids= http_post_fields($fritzgui, array('getpage' => $fritzseite, 'sid' => $SID, 'userglobal:settings/enabled' => $aus));

Hat sich hier was geändert? Weiss hier jemand Rat

mit besten Dank für eine Antwort
Luggi

Also habe jetzt auch das ganze Thread durchgeackert und finde die Idee um Umsetzung hier annähren Perfekt jedoch habe ich auch einen Programmschnippsle und eine Frage Beizutragen…:

Für das Rufumleitungsscript…:

$checksetting = array('getpage' => $fritzseite, 'var:menu' => 'fon', 'var:pagename' => 'rulall');
    $sendcheck = http_post_fields($fritzgui, $checksetting);
    preg_match('@name="telcfg:settings/CallerIDActions0/Active" value="([10])"@i', $sendcheck, $matches);
    if (isset($matches[1]) && $matches[1] == 1)
    {
        SetValue(55911 /*[Übersicht\Fritzbox\Fitzbox Bedienung\Rufumleitung]*/ , 1);
    }
    else
    {
           SetValue(55911 /*[Übersicht\Fritzbox\Fitzbox Bedienung\Rufumleitung]*/ , 0);
           
           {
           if (55911 == 0 );
            SetValue(59801 /*[Übersicht\Fritzbox\Fitzbox Bedienung\Rufumleitung\Umleitung zu]*/, 0);
           }
    }

Nur das letzte Stück setzt dann auch die Nummernwahl zurück wenn man auf aus klickt.

Meine Frage wäre folgende habe das Problem das bei der Live Anzeige der Rufnummernrückverfolgung gar keiner Werte in den Variable gespeichert werden. Tauchen nur direkt auch verschwinden dann aber auch wieder. Zumindest bei letzter Anruf wäre es ja Sinnvoll

Ich habs mir jetzt paarmal durchgelesen, sorry ich versteh es nicht. Was hat die Rufnummernrückverfolgung mit der Rufumleitung zutun.

Das Orginal fragt auch auf ungleich 0 ab und nicht auf ist 1.

if (isset($matches[1]) && $matches[1] != 0)
    {
        SetValue(25714 /*[Fritzbox\Rufumleitungen\Rufumleitung Telefon Büro]*/ , 1);
    }
    else
    {
           SetValue(25714 /*[Fritzbox\Rufumleitungen\Rufumleitung Telefon Büro]*/ , 0);
    }

Nain vestehen deutsches Land … :confused:

Habe schon beim zweiten Lese-/Verständnisversuch aufgegeben. :smiley:

Gruß
Bruno

Hmm ne vielleicht habe ich mich da echt ein bisschen blöd ausgedrückt habs gerade nochmal selber gelesen…

Meinte natürlich

  1. Code ist für das Rufumleitungsscript da es zumindest bei mir so war wenn ich es im Webfront abgeschaltet habe blieb immer eine Auswahl bestehen die soll darüber zurück gesetzt werden. Funktioniert jetzt auch bei mir so.

  2. Hat sich eigentlich erledigt hierbei handelte es sich um das Rückverfolgungsscript: Hatte er keinen Namen Abgefragt hat er die Nummer nicht dauerhaft behalten sondern das Feld des letzten Anrufes leer gelassen da ich es mit Handy getestet hatte blieb dort nichts stehen.

Hoffe konnte jetzt ein bisschen Klarheit schaffen. Sorry für das missverständnis

Hallo Rainer,
benutze schon seit einer Ewigkeit dieses Skript von dir.

//Konfiguration
$fritzbox = 'xxxxxxxxxx';
$fritzgui = 'http://' . $fritzbox . '/cgi-bin/webcm';
$password = 'xxxxxxx';
$anzeigen = array(1, 2, 3); //1 = Kommend, 2 = Kommend (Fehler), 3 = Gehend
$anzahl = 10;

//Ab hier nichts mehr ändern
$object = IPS_GetObject($IPS_SELF);
$parentID = $object['ParentID'];

//Installer
if ($IPS_SENDER == "Execute")
{

    IPS_SetHidden($IPS_SELF, true);
    IPS_SetName($IPS_SELF, "Auslese-Skript");

    $parentObject = IPS_GetObject($parentID);
    if ($parentObject['ObjectType'] !== 1)
    {
        $instanceID = IPS_CreateInstance("{485D0419-BE97-4548-AA9C-C083EB82E61E}");
        IPS_SetParent($instanceID, $parentID);
        $parentID = $instanceID;
        IPS_SetParent($IPS_SELF, $parentID);
        IPS_SetName($instanceID, "Anruferliste");
    }

    IPS_SetScriptTimer($IPS_SELF, 300);

}

$login = file_get_contents('http://' . $fritzbox . '/cgi-bin/webcm?getpage=../html/login_sid.xml');

$session_status_simplexml = @simplexml_load_string($login);

if($session_status_simplexml === false)
{
    die("Fehler beim einlesen der XML Daten. Wahrscheinlich ist eine zu alte Firmware installiert");
}
else if ($session_status_simplexml->iswriteaccess == 1)
{
    $SID = $session_status_simplexml->SID;
}
else
{
   $challenge = $session_status_simplexml->Challenge;
    $response = $challenge . '-' . md5(iconv("UTF-8", "UCS-2LE", $challenge . '-' . $password));
   $postdata = http_build_query(array('getpage' => '../html/de/menus/menu2.html', 'login:command/response' => $response));

    $opts = array('http' =>
                                array(
                                    'method' => 'POST',
                                 'header' => 'Content-Length: '.strlen($postdata)."
".
                                                'Content-Type: application/x-www-form-urlencoded',
                                    'content'=> $postdata
            )
    );

    $context  = stream_context_create($opts);
   $sendlogin = file_get_contents($fritzgui, false, $context);

   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;
    }
}

//Anrufliste aktualisieren
$postdata = http_build_query(array('getpage' => '../html/de/menus/menu2.html','sid' => $SID, 'var:menu' => 'home', 'var:pagename' => 'foncalls'));

$opts = array('http' =>
                            array(
                                'method'  => 'POST',
                             'header'=> 'Content-Length: '.strlen($postdata)."
".
                                           'Content-Type: application/x-www-form-urlencoded',
                                'content' => $postdata
        )
);

$context  = stream_context_create($opts);
$getnewlist = file_get_contents($fritzgui, false, $context);

//Anrufliste abholen
$postdata = http_build_query(array('getpage' => '../html/de/FRITZ!Box_Anrufliste.csv', 'sid' => $SID));

$opts = array('http' =>
                            array(
                                'method'  => 'POST',
                             'header'=> 'Content-Length: '.strlen($postdata)."
".
                                           'Content-Type: application/x-www-form-urlencoded',
                                'content' => $postdata
        )
);

$context  = stream_context_create($opts);
$anrufliste = file_get_contents($fritzgui, false, $context);
$anrufliste = explode("
", $anrufliste);

$str = "<table width='90%' align='center'>"; // Farbe anpassen oder style entfernen
$str .= "<tr><td></td><td><b>Datum</b></td><td><b>Name/Rufnummer</b></td><td><b>Nebenstelle</b></td><td><b>Zeit</b></td></tr>";

$pos = 0;
for($i=3; $i<=sizeof($anrufliste); $i++)
{
    $eintrag = explode(";", $anrufliste[$i]);
    if(strlen($eintrag[2]) > 0)
      $eintrag[3] = $eintrag[2];
    unset($eintrag[2]);
    if(strlen($eintrag[4]) > 0)
      $eintrag[5] = $eintrag[4];
    if(strlen($eintrag[3]) == 0)
      $eintrag[3] = "Unbekannt";
    unset($eintrag[4]);
    $caller = $eintrag[0];
    switch($caller) {
       case 1:
          $eintrag[0] = "<img src=/user/fritz/Callin.png>";
          break;
       case 2:
          $eintrag[0] = "<img src=/user/fritz/Callinfailed.png>";
          break;
       case 3:
          $eintrag[0] = "<img src=/user/fritz/Callout.png>";
          break;
        default:
           $eintrag[0] = "";
           break;
    }
    if(in_array($caller, $anzeigen))
    {
        $str .= "<tr>";
        foreach($eintrag as $data)
            $str .= '<td>'.$data.'</td>';
        $str .= "</tr>";

        $pos++;
    }
    if($pos >= $anzahl)
        break;
}
$str .= "</table>";

$vid = CreateVariableByName($parentID, "Content", 3);
IPS_SetIcon($vid, "Speaker");
IPS_SetVariableCustomProfile($vid, "~HTMLBox");
SetValue($vid, $str);

$postdata = http_build_query(array('getpage' => '../html/de/menus/menu2.html', 'sid' => $SID, 'security:command/logout' => 'logout'));

$opts = array('http' =>
                            array(
                                'method'  => 'POST',
                             'header'=> 'Content-Length: '.strlen($postdata)."
".
                                           'Content-Type: application/x-www-form-urlencoded',
                                'content' => $postdata
        )
);

$context  = stream_context_create($opts);
$logout = file_get_contents($fritzgui, false, $context);

function CreateVariableByName($id, $name, $type)
{
    global $IPS_SELF;
    $vid = @IPS_GetVariableIDByName($name, $id);
    if($vid === false)
    {
        $vid = IPS_CreateVariable($type);
        IPS_SetParent($vid, $id);
        IPS_SetName($vid, $name);
        IPS_SetInfo($vid, "this variable was created by script #$IPS_SELF");
    }
    return $vid;
}

?>

bekomme seit ca einer Woche diese Fehlermeldung,

Notice: Undefined offset: 2 in C:\IP-SYMCON\scripts\25289.ips.php on line 115

Notice: Undefined offset: 4 in C:\IP-SYMCON\scripts\25289.ips.php on line 118

Notice: Undefined offset: 3 in C:\IP-SYMCON\scripts\25289.ips.php on line 120

Notice: Undefined offset: 7 in C:\IP-SYMCON\scripts\25289.ips.php on line 114

Notice: Undefined offset: 2 in C:\IP-SYMCON\scripts\25289.ips.php on line 115

Notice: Undefined offset: 4 in C:\IP-SYMCON\scripts\25289.ips.php on line 118

Notice: Undefined offset: 3 in C:\IP-SYMCON\scripts\25289.ips.php on line 120

habe weder was an der Box noch am Skript etwas geändert. Kannst Du mir vlt. sagen woran das liegen könnte?
Danke.