Fritzbox mit PHP Anrufliste auslesen

  • Hallo,


    ich habe einige Beispiel zum Auslesen (der Anrufliste in) der Fritzbox gefunden, leider keine für das letzte Update der Fritzbox.


    Eine von AVM

    https://avm.de/fileadmin/user_…on-ID_deutsch_13Nov18.pdf

    beschreibt den Login mit PHP Beispiel.


    Seit einigen Tagen ist ein Update in der Fritzbox, wonach das Anmeldeverfahren nicht mehr geht. Die SID wird nicht mehr gefunden und bringt nur noch 0000000000000000.



    Es gibt auch was zum neuen Login, was ich nicht auf die Reihe bekomme.

    https://at.avm.de/fileadmin/us…deutsch%20-%20Nov2020.pdf

    https://avm.de/fileadmin/user_…ID_deutsch_2021-05-03.pdf


    Hat da jemand ne Idee, wie das umgeschrieben wird?


    Ich habe im Netz nur noch eine weitere Seite gefunden, wo dazu was geschrieben wurde.


    http://home.mengelke.de/cgi-bin/


    Danke fürs lesen.

    Ich habe eine Raspi Beere 3 und freue mich, dass sie läuft. Ich programmiere gern und freue mich wenn es auch funktioniert. Aber grundsätzlich hab ich keine Ahnung davon :conf:

    Bitte löscht nie dieses Forum! Hier steht alles drin was ich mir merken muss!

    • Official Post

    Du könntest versuchen die Session ID evtl. mit folgendem Skript zu holen


    und in PHP folgendes verwenden

    PHP
    $sid = shell_exec("/Pfad/zum/Skript.sh");

    Natürlich ungetestet!

  • hyle, das ist wunderbar.


    Hätte ich den /Pfad/zum/Skript.sh gleich richtig geschrieben, hatte ich sicher früher antworten können :conf:


    Es funktioniert.


    Danke :danke_ATDE:

    Guido

    Ich habe eine Raspi Beere 3 und freue mich, dass sie läuft. Ich programmiere gern und freue mich wenn es auch funktioniert. Aber grundsätzlich hab ich keine Ahnung davon :conf:

    Bitte löscht nie dieses Forum! Hier steht alles drin was ich mir merken muss!

  • Nur eine leere Zeile nach dem Ausführen in der Console.

    Bash
    #!/bin/bash
    FBF="192.168.178.1"
    USER="fritz1682" # oder falls nicht vorhanden, dann leer lassen
    PASS="passwort"
    CHALLENGE=$(curl -s -k "${FBF}/login_sid.lua" | grep -Po '(?<=<Challenge>).*(?=</Challenge>)')
    MD5=$(echo -n ${CHALLENGE}"-"${PASS} | iconv -f ISO8859-1 -t UTF-16LE | md5sum -b | awk '{print substr($0,1,32)}')
    RESPONSE="${CHALLENGE}-${MD5}"
    SID=$(curl -i -s -k -d "response=${RESPONSE}&username=${USER}" "${FBF}" | grep -Po -m 1 '(?<=sid=)[a-f\d]+')
    echo ${SID} | cut -d" " -f1

    Was gäbs für Möglichkeiten zur Fehlersuche? Kenn mich in bash leider gar nicht aus, Code ist auch nicht grad für Anfänger :conf::conf::conf:

  • Bin mitlerweile schon etwas weiter.

    Code
    Challenge:
    ea36ac1b
    MD5:
    d5ecabfa334534a6be8a5b1d3f4499d3
    Komplett
    -d5ecabfa334534a6be8a5b1d3f4499d3

    Häng in Zeile 11, der RESPONSE verbindet die 2 Strings nicht... :wallbash:

    Bin echt langsam am verzweifeln... Hab schon alles mögliche ausprobiert, bekomm die Strings einfach nicht verbunden. Der vor dem Minus- Zeichen wird immer ignoriert :denker:

  • Sorry, hab ich gestern überlesen.

    Ist zum steuern und vor allem auslesen von Smarthome Daten aus der FB. Hab da z.B. ein paar Heizkörpertermostate über DECT dran.

    Lese alle Daten 1x pro Minute über einen Crontab aus. Hierfür wird immer die Session-ID benötigt. Hat auch die letzten Jahre super funktioniert bis zum Update der FB.
    Habs zuvor über PHP ausgelesen:

    Bekomm es leider nicht hin, den Code für die neue Anmeldung umzuschreiben. War schon ein paar Stunden dran...


    Das vielversprechendste ist momentan dein Skript. Hier häng ich nur noch an der Kleinigkeit, dass die 2 Strings sich nicht verbinden lassen. Hab hier schon alles mögliche ausprobiert aber in Bash hab ich kaum was gemacht bis jetzt...

  • Hier häng ich nur noch an der Kleinigkeit, dass die 2 Strings sich nicht verbinden lassen

    Die Lösung hast Du ja nun offenbar hier Bash Strings verbinden gefunden. ;)


    Lese alle Daten 1x pro Minute über einen Crontab aus.

    Das m.M.n. viel zu oft , denn die 301er verbrauchen ja Strom zum Auslesen und Senden der Daten und damit die Batterien. Davon abgesehen ändern sich so schnell keine Temperaturen im Normalbetrieb. Wenn Du Lüften erkennen willst, dann würde imho auch locker alle 15 Minuten ausreichen.

  • Quote

    Das m.M.n. viel zu oft , denn die 301er verbrauchen ja Strom zum Auslesen und Senden der Daten und damit die Batterien. Davon abgesehen ändern sich so schnell keine Temperaturen im Normalbetrieb. Wenn Du Lüften erkennen willst, dann würde imho auch locker alle 15 Minuten ausreichen

    Muss mich hier korrigieren. Alle 15 Minuten wird ausgelesen. Die FB frägt nur alle 15 Minuten den Status der mit DECT verbunden Geräte ab. Es wird auch immer nur der letzte Status abgefragt. "Live" abfragen kann man die HKR leider nicht. Auch ein umstellen der Temperatur kann unter Umständen bis zu 15 Minuten dauern.


    Die Zeile 11 im Skript habe ich jetzt überwunden ;) Leider komm ich immer noch nicht zu einer SessionID.

    Läuft das Skript bei dir?

  • Läuft das Skript bei dir?

    Dein Skript? Ja. Und meins auch:


  • erledigt?

    Ich habe eine Raspi Beere 3 und freue mich, dass sie läuft. Ich programmiere gern und freue mich wenn es auch funktioniert. Aber grundsätzlich hab ich keine Ahnung davon :conf:

    Bitte löscht nie dieses Forum! Hier steht alles drin was ich mir merken muss!