Wenn die 7170 Session unterstützt, sollte es grundsätzlich gehen. Das erfährst Du aus deiner Firmware, desweiteren musst Du sehen ob die Parameter identisch sind, ansonsten wird das nix.
Hier mal das komplette Script(7270) mit Rückmeldung und Debugausgabe im PopupFenster Webfront.
Dort siehst Du dann, bei Klick auf Ein/Aus wenn vorhanden die SessionID und den Zustand ob Ein oder Ausgeschaltet.
Passwort und Variablen ID unten anpassen!!
<?
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 = 'xxxxxxx';
$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(54707 /*[Fritzbox\Wlan\Wlan 5 GHz\Wlan]*/, 1);
}
else
{
print_r($matches);
SetValue(54707 /*[Fritzbox\Wlan\Wlan 5 GHz\Wlan]*/, 0);
}
$logout = array('getpage' => $fritzseite, 'sid' => $SID, 'security:command/logout' => 'logout');
$sendlogout = http_post_fields($fritzgui, $logout);
}
?>