Probleme mit Scripts Fritzbox 7270

Funktionieren die Skripte auch mit der 7390 ? Da tut sich irgendwie nix bei mir … (2.2, 2.1 & aktuelle Box Firmware)

Was tut sich denn nicht. Fehlermeldungen usw…

Ich habe noch keine, kann deshalb nicht testen.

Ansonsten sieh dir mal eine Quelltextseite an.

Bei der DSL Info seite habe ich jetzt folgende fehlermeldung.
Irgendwie blick ich das noch nicht :frowning:

Ok oder doch. Die Ordnerstruktur muss angelegt werden.

Ich denke die Fritzbox 7170 geht nicht:(

Warning: simplexml_load_string() [function.simplexml-load-string]: Entity: line 70: parser error : xmlParseEntityRef: no name in C:\IP-Symcon\scripts\25713.ips.php on line 14

Warning: simplexml_load_string() [function.simplexml-load-string]: if (h1 != null && h2 != null) h1.value=h2.value; in C:\IP-Symcon\scripts\25713.ips.php on line 14

Warning: simplexml_load_string() [function.simplexml-load-string]: ^ in C:\IP-Symcon\scripts\25713.ips.php on line 14

Notice: Trying to get property of non-object in C:\IP-Symcon\scripts\25713.ips.php on line 17

Notice: Trying to get property of non-object in C:\IP-Symcon\scripts\25713.ips.php on line 23
Fehler: Login fehlgeschlagen

Ich habe dir doch den Link gegeben. Installiere alle extension dann gehen auch die Scripts. :confused::confused:

Zumal lesen geholfen hätte. :mad:

Hallo Rainer,

das habe ich gemacht. Ich habe 2 Boxen eine 7270 auf der gehts Problemlos. Nur auf der 7170 nicht.

Gruss
Frank

Hallo Frank,

dann wird auf deiner 7170 nicht die aktuellste Firmware drauf sein und es muss ein Passwort vergeben sein!

Hallo Rainer ist beides Version: Labor-Version 29.04.99-12526

Gruss
Frank

Hallo
Wenn ich das WLAN auf meiner Fritz!Box 7270 ein bzw. ausschalten will, bringt die Fehlerkonsole (siehe Anhang) eine Meldung, mit der ich nichts anfangen kann. Das WLAN wird zwar trotzdem ein- bzw. ausgeschalten, aber mich stört halt die Fehlermeldung.
Folgendes Script verwende ich:

<?
if ($IPS_SENDER == "Execute")
{
    echo "Dieses Script kann nicht von Hand gestartet werden.";
    return;
}

if ($IPS_SENDER == "WebFront")
{
    $fritzbox_ip = 'fritz.box';
    $fritzgui    = 'http://fritz.box/cgi-bin/webcm';
    $fritzseite  = '../html/de/menus/menu2.html';
    $password    = 'lalilu';
    $ein         = '1';
    $aus         = '0';

    $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);
    //print_r($session_status_simplexml);

    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];
          print_r($SID);
       }
       else
       {
          echo "Fehler: Login fehlgeschlagen";
          return;
        }
    }

    if ($IPS_VALUE)
    {
        $wlan = http_post_fields($fritzgui, array('getpage' => $fritzseite, 'sid' => $SID, 'wlan:settings/ap_enabled' => $ein));
        
    }
    else
    {
       $wlan = http_post_fields($fritzgui, array('getpage' => $fritzseite, 'sid' => $SID, 'wlan:settings/ap_enabled' => $aus));
       

    $checksetting = array('getpage' => $fritzseite, 'var:menu' => 'wlan', 'var:pagename' => 'common');
    $sendcheck = http_post_fields($fritzgui, $checksetting);
    preg_match('@name="wlan:settings/ap_enabled" value="([10])"@i', $sendcheck, $matches);
    if (isset($matches[1]) && $matches[1] == 1)
    {
       print_r($matches);
        SetValue(57005 /*[FritzBox\WLAN\WLAN ein/aus]*/, 1);
    }
    else
    {
        print_r($matches);
       SetValue(57005 /*[FritzBox\WLAN\WLAN ein/aus]*/, 0);
    }

    $logout = array('getpage' => $fritzseite, 'sid' => $SID, 'security:command/logout' => 'logout');
    $sendlogout = http_post_fields($fritzgui, $logout);
}

?>

Was bedeutet diese Fehlermeldung und wie bekomme ich die weg?
Hab vor ein paar Tagen ein Update auf V2.30 #1776 gemacht, kann es eventuell damit zusammenhängen?

MfG
computerpap

Eigentlich ist das keine Fehlermeldung, sondern eine Benachritigung das es Ein bzw. Ausgeschaltet wurde.

Hallo Uwe
Danke für deine Hilfe. Kannst du mir sagen, was ich im Script ändern muß, damit diese Meldung nicht mehr kommt?
Ob das WLAN an oder aus ist, seh ich ja im Webfront, da brauch ich nicht noch eine Meldung.

MfG
computerpap

Hm gute Frage, nimm mal das hier.

<?
if ($IPS_SENDER == "WebFront")
{
    SetValue(55196 /*[Infos\Fritzbox\Anruferliste\Wlan]*/, $IPS_VALUE);
}

$fritzbox_ip = 'fritz.box';
$fritzgui    = 'http://fritz.box/cgi-bin/webcm';
$fritzseite  = '../html/de/menus/menu2.html';
$password    = 'lalilu';
$ein         = '1';
$aus         = '0';

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

if ($IPS_VALUE)
{
    $wlan = http_post_fields($fritzgui, array('getpage' => $fritzseite, 'sid' => $SID, 'wlan:settings/ap_enabled' => $ein));
}
else
{
   $wlan = http_post_fields($fritzgui, array('getpage' => $fritzseite, 'sid' => $SID, 'wlan:settings/ap_enabled' => $aus));
}

$logout = array('getpage' => $fritzseite, 'sid' => $SID, 'security:command/logout' => 'logout');
$sendlogout = http_post_fields($fritzgui, $logout);


?>

Hallo Uwe
Dein Script funktioniert, super, vielen Dank!

MfG
computerpap

print_r($matches); 

das steht 2mal bei dir im Script, deshalb kommt die Fehlerkonsole!

Hallo zusammen,

die Scripte laufen absolut einwandfrei. Besten Dank an alle Programmierer. Bin in PHP leider „noch“ nicht so fit und habe folgendes Problem.

Ich will nur die letzten 5 Anrufer aus der Anrufliste in einer Textbox oder ähnlichem direkt im Webfront anzeigen lassen. Das ganz soll möglichst automatisch nach einem Anruf aktualisiert werden.

Hier auf dem Screenshot zu sehen .

http://www.ip-symcon.de/forum/f56/webfront-wenig-aufgehuebscht-12715/index5.html#post107549

Hat das eventuell schon jemand realisiert und wenn ja wie ?

Besten Dank

Thomas

<?
$filename = "../webfront/user/Fritzbox/Anrufliste.csv";
$id = @fopen($filename, "r");
$i = 0;
while (($data = fgetcsv($id, filesize($filename), ";")) && $i < 7)
{
    $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);

//echo "<table width='980' align='center'>";
$str = "<table width='100%' align='center'>";
foreach($table as $row)
{
    //echo "<tr>";
    $str.= "<tr>";
    foreach($row as $data)
    //echo "<td width='auto'><div align='center'>$data</div></td>";
    $str.= '<td>'.$data.'</td>';
    //echo "</tr>";
    $str.= "</tr>";
}
//echo "</table>
";
$str .= "</table>";

//SetValue(29663 /*[Fritzbox\Anruflisten\Anrufliste Rainer]*/, $str);

IPS_SetScriptTimer($IPS_SELF, 0);
?>

Perfekt , Danke Rainer. Werde ich heute Abend testen.

Je nachdem wie Du deine Anrufe handelst, musst Du das Script noch entsprechend aufrufen. Ich mach das über DISCONNECT.

Funktioniert perfekt danke.

Frage noch :

Kann ich bei einer String Variablen mit dem Profil HTML-Box den Kopf in der Anzeige im Webfront ausblenden, heißt dass nur die HTML Box angezeigt wird oder geht das nicht ?

Thomas

Hallo Thomas,

nein, das geht nicht. Die HTML-Box ist Bestandteil des Profil. Du kannst nur zuklappen.