neulich bin ich zufällig auf „Tamper Data“ gestoßen, das ist ein Add On für den Firefox. Damit kann man alles sichtbar machen, was im Hintergrund auf einer Webseite alles so ab geht. Und das ist natürlich genial, wenn man wissen möchte was die Fritz Box für Befehle absendet, so das wir diese in IPS verwenden können. Damit habe ich bisher eigentlich alles in IPS basteln können.
Deshalb wollte ich es an dieser Stelle mal vorbringen, vielleicht hilft es dem einen oder anderen neue Fritz Box Befehle zu finden. Man braucht dann nicht mehr in dem Quellcode der Box zu suchen… Einige kennen das bestimmt schon, für mich als nicht Programmierer war das eine große Entdeckung.
Ihr geht wie folgt vor:
Im Firefox das Add On „Tamper Data“ installieren
Nach Neustart dann mit der Alt-Taste das Menü im Firefox einblenden und mit „Extras - Tamper Data“ auswählen.
in dem dann geöffneten Fenster „Tamper beginnen“ auswählen.
jetzt wird alles protokolliert was ihr im Web macht. hier kann man als Neuling wie ich viel entdecken…
Ihr startet dann Tamper erst bevor ihr in der Fritz Box Oberfläche, z.B. wo ihr WLAN aktiviert, den OK bzw. Übernehmen Button drückt, oder vor dem Button Drücken die Liste löschen auswählen. Dann steht im ersten Protokolleintrag der gesendete Befehl, darin findet ihr dann die Benötigte URL und den POSTDATA Befehl denn ihr dann nur noch in die vorhandenen und bekannten Skripte übernehmen müßt. Ggf. mit Variablen ergänzen und schon habt ihr die Fritz Box voll unter Kontrolle von IPS.
Ich hoffe es kann dem einen oder anderen weiterhelfen…
Viel Spaß damit.
Grüße Helmut
ich habe gerade auf FRITZ!OS 06.00 geupdatet und es funktioniert kein Fritzbox-Skript mehr bei mir. Ich kann das Wlan nicht mehr per Skript EIN/AUS-schalten. Es wird aber auch keine Fehlermeldung geschmissen.
Hat eventuell jemand schon einen FIX dafür?
Ich habe auch auf 6.0 umgestellt, meine Fritz-Scripte angetestet und nichts Aufälliges festgestellt. Dein Posting hat mich daher aufgeschreckt und ich habe daher den WLAN-Switch nochmal explizit getestet. Alles ok.
Hier mein Script:
neulich bin ich zufällig auf „Tamper Data“ gestoßen, das ist ein Add On für den Firefox. Damit kann man alles sichtbar machen, was im Hintergrund auf einer Webseite alles so ab geht. Und das ist natürlich genial, wenn man wissen möchte was die Fritz Box für Befehle absendet, so das wir diese in IPS verwenden können. Damit habe ich bisher eigentlich alles in IPS basteln können.
Hallo Helmut,
danke für den TIP. Mit Firebug kommt man zwar auch an alle Informationen ran, aber Tamper Datat serviert einem ja die Post-Parameter auf dem Tablett. Gutes Tool.
nachdem ich nun wieder am heimischen PC taste, habe ich mir das Add-on gleich installiert und war überrascht, was da so alles angezeigt wird. Somit musste ich feststellen, dass die Abfrage ein ganz andere ist als ich noch im Script hatte. Das habe ich nun wie auch im Beitrag von Bonox angepasst und WLAN Schalten GEHT JETZT! Danke euch beiden. Super Tool!
Offene Fragen:
Habt ihr eine Idee, wie ich den AB (die AB) via IPS ein- und wieder ausschalten kann? Da kommt bei mir keine POST-Meldung, deren Daten man schön übernehmen kann.
Wie kann ich die aktuellen Einstellungen wie Status AB oder WLAN nur auslesen, ohne sie zu ändern. Als Workaround ist hier beim Ändern in der Fritzbox eine IPS-Variable zu setzen. Geht doch sicherlich auch anders, oder?
Hallo Andreas,
ich habe mal auf die Schnelle ein Script für den AB zusammengebastelt. Funktioniert bei mir. Das ganze läuft über einen Ajax-Get Request. Der wird auch in Tamper Data angezeigt.
Hier das Script:
Ob es für den Parameter „switch“ noch andere Werte als toggle gibt, konnte ich noch nicht herausfinden (das Bett ruft).
Das Auslesen der Stati für den AB müsste über den WWW-Reader mit Cutter und TextParser oder eigenem Parser über die zurückgegebenen Daten möglich sein. Ich nutze IPS-Variablen ohne Rückmeldung der Fritzbox - das reicht mir und hat bislang immer richtig funktioniert. Die Fritz-Box ist ja keine FS20-Device :).
auch ich arbeite bisher nicht mit Rückmeldungen der FritzBox und kann deshalb wenig dazu sagen. Das Skript von BONOX funktioniert bei mir ebenfalls.
Bezüglich dem toggle Befehl, konnte ich nichts anderes finden. Aber wenn man im Skript die Zeile
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
weglässt, wird wenn man das Skript manuell startet eine Info in der Skriptausgabe ausgegeben ob ein oder ausgeschalten wurde: {„switch_on“:false,„cur_idx“:1} oder {„switch_on“:true,„cur_idx“:1}
Ich weis aber nicht wie man das abfangen kann und entsprechend auswerten… aber ggf. ist das ja ein Ansatz wie man den Status dann ordentlich in IPS darstellen kann.
nun geht es bei mir auch wieder. Diese Syntax hatte ich auch schon probiert. Mein Fehler war allerdings die Aufsplittung der zu sendenden URL in curl_init und curl_setopt. Das klappte gar nicht. Alles zusammengezogen und damit Funktion. Hängt vermutlich damit zusammen, dass es hier kein POSTDATA gibt und somit curl_setopt nich benutzt werden kann.
Bezüglich dem toggle Befehl, konnte ich nichts anderes finden. Aber wenn man im Skript die Zeile
PHP-Code:
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
weglässt, wird wenn man das Skript manuell startet eine Info in der Skriptausgabe ausgegeben ob ein oder ausgeschalten wurde: {„switch_on“:false,„cur_idx“:1} oder {„switch_on“:true,„cur_idx“:1}
Ich weis aber nicht wie man das abfangen kann und entsprechend auswerten… aber ggf. ist das ja ein Ansatz wie man den Status dann ordentlich in IPS darstellen kann.
Die Auswertung habe ich jetzt mal so gelöst:
<?
include "fritzboxlogin.php"; // Fritzbox-Login - IPS-ID 37048
IPS_SetHidden($_IPS['SELF'], true);
$ab = 56452 /*[EDV\Fritzbox\AB\AB Familie]*/;
// -----------------------------------------------------------------------------
//Anrufbeantworter 0 ein/ausschalten
$ch = curl_init("http://{$fritzbox}/fon_devices/tam_list.lua?sid={$SID}&useajax=1&TamNr=0&switch=toggle&xhr=1&t1384129162155=nocache");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$return = curl_exec($ch);
curl_close($ch);
// Status umschalten
SetValue($ab, !GetValue($ab));
// Optional: Rückmeldung der Ausführung auswerten
preg_match_all('(false|true)', $return, $zustand);
if ($zustand[0][0] == "false")
{
echo "AB ist aus.";
// Status in IPS weiterverarbeiten ...
}
if ($zustand[0][0] == "true")
{
echo "AB ist ein.";
// Status in IPS weiterverarbeiten ...
}
?>
Wird der Port mit einem Telefon mit Code #95 freigeschaltet ?
Ist wohl solange her das ich dies nicht mehr wusste.
Ansonsten finde ich keine Möglichkeit in der FritzBox den Port frei zu schalten.