-
Autor
In der Diskussion im Thread FritzBox reconnect über Script hat ostfriese erwähnt, dass bereits öfters nach einem Script gefragt wurde, das eine FRITZ!Box rebooten kann. Nachdem ich gerade in der Materie drin war, habe ich noch ein bisschen recherchiert und in den folgenden Links Vorlagen gefunden, die ich für den Shelly adaptieren konnte:
https://www.media-techport.de/2023/08/fritzb…ipt-neustarten/
https://forum.heimnetz.de/threads/repeat…en-tr-064.1061/
Das folgende Script kann zumindest eine 6490 Cable erfolgreich rebooten:
let user = "";
let password = "";
let host = "fritz.box";
let port = 49000;
function reboot() {
Shelly.call(
"HTTP.Request",
{
method: "POST",
url: "http://" + user + ":" + password + "@" + host + ":" + port.toString() + "/upnp/control/deviceconfig",
headers: {
"Content-Type": 'text/xml; charset="utf-8"',
SoapAction: "urn:dslforum-org:service:DeviceConfig:1#Reboot",
},
body: [
'<?xml version="1.0" encoding="utf-8"?>',
'<s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">',
" <s:Body>",
' <u:Reboot xmlns:u="urn:dslforum-org:service:DeviceConfig:1"></u:Reboot>',
" </s:Body>",
"</s:Envelope>",
].join(""),
},
function (response, error_code, error_message) {
if (error_code !== 0) {
print("Call failed with error " + error_code + " (" + error_message + "). ");
} else if (response.code !== 200) {
print("Fritzbox responded with HTTP code " + response.code + " (" + response.message + "). ");
} else {
print("Fritzbox response: " + response.body);
}
},
);
}
reboot();
Alles anzeigen
Da der Reboot offenbar zwingend eine Autorisierung erfordert, müssen Benutzer und Passwort im Klartext im Script eingetragen werden - ob das klug ist, muss jeder selber wissen ;-).
Ich bitte um Feedback, falls das Ding auf anderen Modellen nicht funktionieren sollte - ich bin kein großer Fritzbox-Experte, aber ich werde mein Bestes tun ;).