Fritzbox 7270/Wlan Repeater Scripts

Hallo Jürgen,

ersetz das mal und poste mal die Meldung. Einfach über Webfront schalten. Einmal ein und aus.

$checksetting = array('getpage' => $fritzseite, 'var:menu' => 'fon', 'var:pagename' => 'fondevices');
    $sendcheck = http_post_fields($fritzgui, $checksetting);
    preg_match('@name="tam:settings/TAM0/Active" value="([10])"@i', $sendcheck, $matches);
    print_r($matches);

Habe es jetzt versucht. Bekomme bei An und bei Aus jeweils die gleiche Fehlermeldung.

Probier das nochmal.

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

Ergebnis bitte posten.

Hier die Fehlermeldung

OK, jetzt sollte er auch wieder den Status gesetzt haben, das Array ist da. Es sollte Aus sein.:slight_smile:

Habe jetzt wieder auf TAM0 umgestellt und die beiden print_r auskommentiert. Jetzt funktioniert es wieder. Versuche jetzt mal das WLan dementsprechend zu ändern, das funktioniert nähmlich auch nicht mehr.

Danke, Jürgen

Habe es jetzt mit meinem WLan versucht, aber ich bekomme es einfach nicht hin. Wie beim AB wird das WLan zwar an- und ausgeschaltet, die Variable im WF bleibt jedoch immer auf Aus.

Es kann doch nicht so schwer sein das hier rauskopieren

'sid' => $SID,

und auch im Wlan Script einzufügen. :confused:
Hatte ja gedacht, Du hast es verstanden warum es nicht ging.

Mann, bin ich blöde. Hatte wohl tatsächlich heute Nacht Tomaten auf den Augen.

Danke nochmal, Jürgen

Aufgrund der Tatsache, dass die Pecl Erweiterung für http nicht immer verfügbar war und ist und in den kommenden IPS Versionen auch nicht „verfügbar“ sein wird, hab ich die Abfrage komplett auf cURL umgestellt.

Ich empfehle, die Scripts jetzt umzubauen das wenn es soweit ist, nicht das große Geschrei los geht. :wink:

Im ersten Post hab ich als Beispiel ein Script hinzugefügt, welches als Grundlage dienen kann. Seht es euch an und übernehmt es dann mit euren Änderungen.

ich würde mir gerne die verpassten Anrufe des Anruferscripts als Zähler in eine separate Variable schreiben lassen, damit mir Steffi dann mitteilt: „du hast x Anrufe verpasst“. Wie müsste dies ins Anruflisten-Script gepackt werden?

Es ist immer das selbe. :rolleyes: Es ist schön wenn Du weist, wie dein Script aussieht, nur woher sollen wir es wissen. Glaskugel ist kaputt.

Aber in etwa so.:smiley:

$entgangeneAnrufe = count($anrufe);
SetValue(12345, $entgangeneAnrufe);

Danke Rainer

da das Scipt von Dir ist, dachte ich, müsste es nicht nochmal posten.

hier noch ein Link für die wahrscheinlich besten Glaskugeln :D:D:D

Moin !

Ich benutze schon eine Weile folgendes Skript:

<?
if($IPS_SENDER == "WebFront") return;

$address = "Fritz.box";

$contentRecv = 'POST /upnp/control/WANIPConn1 HTTP/1.1
Cache-Control: no-cache
Connection: Close
Pragma: no-cache
Content-Type: text/xml; charset="utf-8"
User-Agent: Microsoft-Windows/6.1 UPnP/1.0
SOAPACTION: "urn:schemas-upnp-org:service:WANIPConnection:1#GetStatusInfo"
Content-Length: '.(287+strlen($address)).'
Host: '.$address.':49000

<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><m:GetStatusInfo xmlns:m="urn:schemas-upnp-org:service:WANIPConnection:1"/></SOAP-ENV:Body></SOAP-ENV:Envelope>
';

$data = SendPacket($contentRecv);
$connectionStatus = GetTextBetween($data, "<NewConnectionStatus>", "<\/NewConnectionStatus>");
if($connectionStatus == "Connected")
{
    SetValue(13384 /*[Fritzbox\Verbindung\Status]*/, true);
}
else
{
   SetValue(13384 /*[Fritzbox\Verbindung\Status]*/, false);
}
$lastConnectionError = GetTextBetween($data, "<NewLastConnectionError>", "<\/NewLastConnectionError>");
SetValue(20128 /*[Fritzbox\Verbindung\Verbindungsfehler]*/, $lastConnectionError);
$upTime = GetTextBetween($data, "<NewUptime>", "<\/NewUptime>");
SetValue(39161 /*[Fritzbox\Verbindung\UpTime]*/, gmstrftime('%H:%M:%S', $upTime));


function SendPacket($content)
{
    global $address;
   $port = 49000 /*[Objekt #49000 existiert nicht]*/;

   $fp = fsockopen ($address, $port, $errno, $errstr, 10);
   if (!$fp)
    {
       echo "$errstr ($errno)<br />
";
   }
    else
    {
        fputs ($fp, $content);
      $ret = "";
      while (!feof($fp))
        {
         $ret.= fgets($fp,128);
      }
      fclose($fp);
    }
   if(!(strpos($ret, "200 OK") === false))
    {
        return $ret;
   }
    else
    {
       die("Invalid Response: ".$ret);
   }
}

function GetTextBetween($string, $start, $end)
{
    preg_match_all("/$start(.*)$end/i", $string, $match);
   return $match[1][0];
}

?>

aus Post http://www.ip-symcon.de/forum/f53/fritzbox-7270-wlan-repeater-scripts-8267/index13.html#post110362

Funktioniert auch ganz wunderbar, ich habe nur einen Wunsch, den ich mir leider nicht selbst erfüllen kann :rolleyes:

Ich würde gerne die uptime in Tagen/Monaten darstellen.

Wenn ich aber aus

$upTime = GetTextBetween($data, "<NewUptime>", "<\/NewUptime>");
SetValue(39161 /*[Fritzbox\Verbindung\UpTime]*/, gmstrftime('%H:%M:%S', $upTime));

$upTime = GetTextBetween($data, "<NewUptime>", "<\/NewUptime>");
SetValue(39161 /*[Fritzbox\Verbindung\UpTime]*/, gmstrftime ('%Y:%M:%D:%H:%M:%S', $upTime));

mache, sieht es aus wie im Anhang. Mir ist schon klar, dass ich irgendwie den unix timestamp vom aktuellen Datum abziehen muss - aber das war es dann auch schon mit meinem Verständnis…

Kann mir einer helfen ? Bitte ? ^^

Viele Grüße
Martin
mache steht dort

Hallo Martin, ich frag mal anders rum. Hast Du eine Zwangstrennung, wenn ja, dann ist die Uptime max 23:59:59 da sie dann wieder von vorne anfängt.

Nein, keine Zwangstrennung - ist ein Kabeldeutschland Kabelanschluss…

Setz mal ein echo $upTime; Einmal ausführen und poste mal das Ergebnis.

6609

hab sie aber auch vor ~2h rebootet…

Das ist nicht viel. :wink:

…tut mir leid? :smiley: