file_get_contents bzw. Sys_GetURLContent mit https://

Servus Leute.

Ich hoffe ihr könnt mir helfen. Es geht darum:
Ich möchte per IP-S über eine entfernte Fritzbox einen Fritz DECT200 schalten.
Der Befehl (file_get_contents(„https://IP bzw Dyn/webservices/homeautoswitch.lua?ain=id der DECT200&switchcmd=setswitchoff&sid=“.$SID):wink: ist mir bekannt, doch leider funktioniert es nicht.

Bei mir zu Hause im eigenem Netzwerk, funktioniert folgendes Script:


<?

$fritzbox_ip = 'IP der FB';
$password    = 'XXXX';

$ch = curl_init('http://IP der FB/login_sid.lua');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$login = curl_exec($ch);
$session_status_simplexml = simplexml_load_string($login);
if ($session_status_simplexml->SID != '0000000000000000')
{
   $SID = $session_status_simplexml->SID;
}
else
{
   $challenge = $session_status_simplexml->Challenge;
   $response = $challenge . '-' . md5(mb_convert_encoding($challenge . '-' . $password, "UCS-2LE", "UTF-8"));

   curl_setopt($ch, CURLOPT_POSTFIELDS, "response={$response}&page=/login_sid.lua");
   $sendlogin = curl_exec($ch);
   $session_status_simplexml = simplexml_load_string($sendlogin);

   if ($session_status_simplexml->SID != '0000000000000000')
   {
   $SID = $session_status_simplexml->SID;
   }
   else
   {
      echo "Fehler: Login fehlgeschlagen";
      return;
    }
}

curl_close($ch);

file_get_contents("http://IP der FB/webservices/homeautoswitch.lua?ain=ID des DECT200&switchcmd=setswitchoff&sid=".$SID);

?>

Wenn ich das Script mit den Dyn Daten der entfernten FB ändere, kommt die Fehlermeldung:

Warning: file_get_contents(): Unable to find the wrapper „https“ - did you forget to enable it when you configured PHP? in C:\IP-Symcon\scripts\53012.ips.php on line 37

Wenn ich anstatt des Befehls file_get_contents, Sys_GetURLContent benutze, habe ich zwar keinen Fehler aber auch null Funktion.

Wenn ich mich für die Fernwartung auf der entfernten Fritzbox anmelde, muss ich auch einen Benutzernamen eingeben. Ein versuch nach dem Schema https://admin:xxxxx@dynadresseFB. hat nicht geholfen.
Was mache ich falsch, und was ist ein wrapper? Wie bekomme ich den oder wie erstelle ich ihn?

Die folgende Seite hat mir nicht weitergeholfen:
http://www.tdressler.net/ipsymcon/doc_wrapper/html/index.html

Jemand einen Tipp für mich?
Danke im vorraus.

Diese Seite hilft auch nicht? Da ist die komplette Implementation eines Dect200 für IPS drin.http://www.tdressler.net/ipsymcon/fritz_aha.html

Für die Anmeldung auf der Fritzbox braucht man einen Sessioncookie. Beispiele finden sich hier im Forum.

Tommi

Servus Tommi.
Erstmal danke für deine Hilfe.
Das lesen dieser Seite hat mir nicht geholfen. Kann aber auch an mir liegen. Auch hier ist das Problem, die Anmeldung an der entfernten FB. Sessioncookie? Klingt klasse. So noch nicht gehört. Werde mal nach suchen.

Gruß Sascha.

Nach dem Login muss man bei FritzOS >5.5 für jede weitere Aktion den Sessioncookie nutzen. Unter dem angegeben Link sind Downloads, wo die komplette Procedure inclusive Abfrage und Steuerung des Dect200 abgehandelt wird sowie Links zur Dokumentation bei AVM. Zufällig verwende ich die Scripte selber :rolleyes:

Tommi

Im eigenem Netzwerk wird das auch ohne Probleme funktionieren. Aber auf eine entfernte FB? Wie komme ich denn an diesen wrapper? Der soll dafür sorgen, dass man auch auf gerate zugreifen kann, die sich nicht im eigenem Netzwerk befinden.

Gruß Sascha.

welchen wrapper meinst Du? Der IPS_Wrapper, den Du auf z.B. auf einem internen Webserver installieren kannst, der seinerseits aus dem Internet erreichbar ist, liegt hier.

Ich kann mir gut vorstellen, das AVM Anfragen zu Smarthome Devices aus dem Internet abblockt, nachdem Sie ja ein wenig in der Diskussion bezüglich Sicherheit gestanden haben.

Tommi