Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Visualisierung
    4. FritzBox-PBpics per TR-064 Community-Adapter

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    FritzBox-PBpics per TR-064 Community-Adapter

    This topic has been deleted. Only users with topic management privileges can see it.
    • liv-in-sky
      liv-in-sky @SBorg last edited by liv-in-sky

      @SBorg super job - bild ist angekommen 🙂 🌟🌟🌟🌟🌟

      jetzt muss ich nur noch das mit unbekannter anrufer lösen

      und viel spass beim "rohr verlegen"

      1 Reply Last reply Reply Quote 0
      • liv-in-sky
        liv-in-sky @SBorg last edited by liv-in-sky

        @SBorg oje - war zu schnell - bild kommt zwar an- ist aber leer

        ich dachte, man muss eine avm sid erzeugen, damit linux auf das bild zugreifen kann ?

        1 Reply Last reply Reply Quote 0
        • SBorg
          SBorg Forum Testing Most Active last edited by

          Der TR-064 erzeugt schon eine gültige SID, allerdings nur für den Rechner auf dem auch der Broker läuft. Da das JS auf dem Server läuft ist somit die SID gültig. Willst du den Link des TR-Adapters aber in der VIS aufrufen, ist die Verbindung nicht mehr Server >> FritzBox, sondern VIS-Rechner (Tablett, Laptop oder was man gerade benutzt) >> FritzBox und die übermittelte SID ungültig.
          Um das Ganze zu umgehen lade ich also vom Server (mit gültiger SID) das Bild lt. Link herunter und speichere es in der VIS lokal ab. Damit kann auch der Rechner darauf zugreifen 🙂

          Ich habe noch ein Debug drin gelassen, schau mal in der JS-Console ob beim Anruf

          ...: wget -O /[PFAD]/[BILD] "http://192.168.1.1:49000/download.lua?path=/var/InternerSpeicher/FRITZ/fonpix/1234567890-0.jpg&sid=xxxxxxxxxxxxxxxx&pbid=0"
          

          erscheint. Wichtig ist ob hinten die URL auftaucht. Den ganzen wget-Teil kannst du auch 1:1 im Terminal am Server absetzen, dann sollte das Bild erzeugt worden sein.

          bahnuhr liv-in-sky 2 Replies Last reply Reply Quote 0
          • bahnuhr
            bahnuhr Forum Testing Most Active @SBorg last edited by

            @SBorg sagte in FritzBox-PBpics per TR-064 Community-Adapter:

            ...: wget -O /[PFAD]/[BILD] "http://192.168.1.1:49000/download.lua?path=/var/InternerSpeicher/FRITZ/fonpix/1234567890-0.jpg&sid=xxxxxxxxxxxxxxxx&pbid=0"

            Hast du schon einen vergleichbaren Befehl für js.

            würde fs gehen?

            liv-in-sky 1 Reply Last reply Reply Quote 0
            • liv-in-sky
              liv-in-sky @bahnuhr last edited by

              @bahnuhr

              schon mal getestet ?
              https://www.heise.de/download/product/wget-3073

              bahnuhr 1 Reply Last reply Reply Quote 0
              • liv-in-sky
                liv-in-sky @SBorg last edited by

                @SBorg

                das hier kommt im log:

                wget -O /opt/iobroker/iobroker-data/files/vis.0/armin/img/google-img/caller_pic.jpg "http://192.168.178.1:49000/download.lua?path=https://www.google.com/m8/feeds/photos/media/axxx.xxxxy%40gmail.com/1d12449a0fcc6fcd,240,"Kg9MBGcHfCt7I2A9LEokR05lAk00GEoeYgw."&sid=15bea6b40d7a21e5&pbid=240"
                

                das hier kommt,wenn ich das caller.jpg in der vis auswähle

                Image 2.png

                Image 4.png

                1 Reply Last reply Reply Quote 0
                • bahnuhr
                  bahnuhr Forum Testing Most Active @liv-in-sky last edited by

                  @liv-in-sky sagte in FritzBox-PBpics per TR-064 Community-Adapter:

                  @bahnuhr

                  schon mal getestet ?
                  https://www.heise.de/download/product/wget-3073

                  Nein,
                  und ich will auch kein Extra Programm installieren.

                  Müsste ja mit js auch gehen.

                  SBorg 1 Reply Last reply Reply Quote 0
                  • bahnuhr
                    bahnuhr Forum Testing Most Active last edited by

                    Müsste man nicht einen anderen Weg gehen.

                    1. phonebook müsste wieder laufen.
                      Funktioniert mit der community Version ja derzeit nicht. Mit der alten von soef hat das geklappt.
                      Also Eingabe der Nr. bei phonebook.number und dann wurde der image link angezeigt.

                    2. Es müsste doch möglich sein, dass der Adapter das Bild gleich speichert.
                      Auf Netzwerkordner, etc.

                    Wäre diese Vorgehensweise nicht die richtige ?

                    1 Reply Last reply Reply Quote 0
                    • SBorg
                      SBorg Forum Testing Most Active @bahnuhr last edited by

                      @bahnuhr sagte in FritzBox-PBpics per TR-064 Community-Adapter:

                      Müsste ja mit js auch gehen.

                      Geht sicherlich, aber mit größerem Aufwand. Wer will, gerne, ich aber nicht (ich nutze weder das eine noch das andere. Sorry, da hänge ich nicht noch mehr Zeit rein.)

                      @bahnuhr sagte in FritzBox-PBpics per TR-064 Community-Adapter:

                      Müsste man nicht einen anderen Weg gehen.

                      Viele Wege führen nach Rom und es wird keiner daran gehindert sie zu gehen 🙂

                      @liv-in-sky Das Problem tritt bei mir wegen des internen FritzBox-Speichers nicht auf. Beim Google-Link sind die "" im Link das Problem. Füge mal direkt vor Zeile #8 (also var DL=...)

                      Bild = Bild.replace(/"/g, '%22');
                      

                      ein, das müsste eigentlich die Anführungszeichen Link konform maskieren?

                      liv-in-sky 1 Reply Last reply Reply Quote 0
                      • bahnuhr
                        bahnuhr Forum Testing Most Active last edited by

                        Danke für die Antwort.

                        Dann bin ich auch raus (weil ich es nicht kann).

                        Suche ja schon ca. 2 Jahre nach einer Lösung.

                        Und auch mehrere Beiträge hier im Forum; und auch issue (mehrere).

                        Lösung bisher keine.

                        Schade; wäre gut gewesen.

                        1 Reply Last reply Reply Quote 0
                        • liv-in-sky
                          liv-in-sky @SBorg last edited by liv-in-sky

                          @SBorg

                          leider selbes ergebnis

                          Image 5.png

                          kann ich auch etwas mit dem internen speicher machen - vielleicht hilft das ?

                          log:

                          wget -O /opt/iobroker/iobroker-data/files/vis.0/armin/img/google-img/caller_pic.jpg "http://192.168.178.1:49000/download.lua?path=https://www.google.com/m8/feeds/photos/media/axxx.xxxy%40gmail.com/1d12449a0fcc6fcd,240,%22Kg9MBGcHfCt7I2A9LEokR05lAk00GEoeYgw.%22&sid=8378c49ede729c31&pbid=240"
                          
                          1 Reply Last reply Reply Quote 0
                          • SBorg
                            SBorg Forum Testing Most Active last edited by

                            Zumindest ist die URL jetzt korrekt encodet. Aber egal ob intern oder extern (kann ich halt nicht testen), ich glaube der Adapter spackt rum. Gestern ging noch alles, heute läuft es wieder mal nicht mehr.
                            Also schau ich auf den json-DP. Logisch warum es nicht mehr läuft: DP aktualisiert nicht (zumindest bei gleichem Anrufer) und die SID von gestern steht immer noch drin. Daraus resultiert dann kein "richtiges" Bild, sondern eigentlich eine Text-Datei

                            <?xml version="1.0"?>
                            <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"
                            s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
                            <s:Body><s:Fault><faultcode>s:Client</faultcode><faultstring>UPnPError</faultstring>
                            <detail><UPnPError xmlns="urn:dslforum-org:control-1-0"><errorCode>606</errorCode><errorDescription>Action Not Authorized</errorDescription></UPnPError></detail></s:Fault></s:Body></s:Envelope>
                            

                            was uns sagt, dass die SID aus dem Link nicht mehr gültig ist...
                            Also wird jetzt das JS der Einfachheit halber nur das Linux-SID-Skript aufrufen und die URL übergeben, dafür aber immer eine neue SID per Challenge generieren.

                            1 Reply Last reply Reply Quote 0
                            • SBorg
                              SBorg Forum Testing Most Active last edited by

                              Sodele, mal wieder etwas Zeit gehabt. Bis auf "selber und unbekannter Anrufer" läuft es jetzt 🙂
                              Google-Link kann ich nicht testen, durch Umstellung der Syntax und Nutzung von curl sollte es aber IMO laufen.

                              Notwendig:

                              • Simple-API-Adapter
                              • Linux Shell-Script
                              • JavaScript

                              Linux-Script auf den ioB-Server (bei mir /opt/iobroker/script/fritz_sid.sh)

                              #!/bin/sh
                              # V0.0.1 / 16.08.2019 - ermittelt eine gültige SID von der FritzBox
                              
                              ### User-Einstellungen ###
                              IP="192.168.x.x"
                              FRITZ_USER="username"
                              USER_PW="geheim"
                              ##########################
                              
                              ### ab hier braucht man nix zu ändern, außer man weiß genau was man tut ... ;)
                              # Challenge abholen
                                CHALLENGE=`wget -O - "http://$IP/login_sid.lua" 2>/dev/null | sed 's/.*<Challenge>\(.*\)<\/Challenge>.*/\1/'`
                              
                              # login aufbauen und hashen
                                CPSTR="$CHALLENGE-$USER_PW"
                              
                                MD5=`echo -n $CPSTR | iconv -f ISO8859-1 -t UTF-16LE | md5sum -b | awk '{print substr($0,1,32)}'`
                                RESPONSE="$CHALLENGE-$MD5"
                                URL_PARAMS="username=$FRITZ_USER&response=$RESPONSE"
                              
                              # login senden und SID herausfischen
                                SID=`wget -O - "http://$IP/login_sid.lua?$URL_PARAMS" 2>/dev/null | sed 's/.*<SID>\(.*\)<\/SID>.*/\1/'`
                              
                              # SID übergeben
                                echo ${SID}
                              
                              ###EOF
                              

                              JavaScript (Zeile #7 [ggf.] und #12 anpassen)

                              on({id: "tr-064-community.0.callmonitor.ringing"/*ringing*/, val: true}, function (obj) {
                              
                                  //Bild vom aktuellen Gespräch
                                  var json = JSON.parse(getState('tr-064-community.0.callmonitor.inbound.json').val);
                                  
                                  try {let Bild = json.imageurlcaller;
                                      run_shell_command("/opt/iobroker/script/fritz_sid.sh", 
                                       function (SID) { 
                                           console.log('FritzBox-SessionID: ' + SID);
                                           let regex = /sid=\w{16}/ig;
                                           let DLURL = Bild.replace(regex, "sid="+SID.substr(0, SID.length-1));
                                           var DL = 'curl -o /opt/iobroker/iobroker-data/files/vis.0/xxx/caller_pic.jpg ' + "'" + DLURL + "'";
                                           console.log(DL);
                                           exec(DL); 
                                      });
                              
                                      } catch (e) {
                                        console.log('Kein Bild für Anrufer vorhanden...');
                                        return;
                                      }
                              
                              });
                              
                              
                              function run_shell_command(command,cb) {   
                                  exec(command, function(err,stdout,stderr){
                                      if(err) {
                                        cb(stderr);
                                      } else {
                                        cb(stdout);
                                     }
                                 });
                              }
                              
                              

                              ToDo: selber und unbekannter Anrufer, Doku, auf GitHub schieben...

                              liv-in-sky 1 Reply Last reply Reply Quote 0
                              • liv-in-sky
                                liv-in-sky @SBorg last edited by

                                @SBorg ich trau es mir gar nicht sagen aber ich habe das problem wieder - es kommt ein bild (richtige zeit und datum ) aber es ist leer bzw

                                <HTML><HEAD><TITLE>404 Not Found (ERR_NOT_FOUND)</TITLE></HEAD><BODY><H1>404 Not Found</H1><BR>ERR_>
                                

                                steht drin

                                im log steht die id

                                javascript.0	2019-08-17 18:40:23.527	info	script.js.Armin_Schalter.ALLERLEI.FRITZBOXSQLUserPic: curl -o /opt/iobroker/iobroker-data/files/vis.0/armin/img/google-img/caller_pic.jpg 'http://192.168.178.1:49000/download.lua?path=https://www.goog
                                javascript.0	2019-08-17 18:40:23.527	info	script.js.Armin_Schalter.ALLERLEI.FRITZBOXSQLUserPic: FritzBox-SessionID: d4adaef91132587f
                                
                                SBorg 1 Reply Last reply Reply Quote 0
                                • SBorg
                                  SBorg Forum Testing Most Active @liv-in-sky last edited by Homoran

                                  @liv-in-sky sagte in FritzBox-PBpics per TR-064 Community-Adapter:

                                  ich trau es mir gar nicht sagen...

                                  Warum? Wenn es nicht geht, geht es nicht. Ich kann es halt nicht testen und nur raten. Ich hab jetzt mal einen Google-Kontakt angelegt und es auf der FB eingerichtet, geht bei mir aber nicht (steht auch dabei, dass man ein FritzFon braucht?). Die Namensauflösung klappt noch, aber der TR-064 legt keinerlei Bild-URL an. Ich bekomme schon im Telefonbuch keine Anzeige, dass ein Foto hinterlegt ist...
                                  Ist dein ioB-Server headless oder kannst du dort einen Browser öffnen? Die SID scheint zu funktionieren, nur kann er sich anscheinend bei Google nicht korrekt einloggen. Du kannst dann mal versuchen ob das Bild unter dem generierten Link http://192.168.178.1:49000/download.lua?path=https://www.... angezeigt werden kann.
                                  Eventuell liegt es doch wieder an den "" im Link. Das sollte eigentlich curl und '' verhindern. Du könntest noch versuchen sie zu encoden:
                                  Nach let DLURL = ... noch eine Zeile einfügen:

                                  DLURL = DLURL.replace(/"/g, '%22');
                                  

                                  Wenn ich mir allerdings bei deinem obigen Post die Google-URL so ansehe, und dann die Google-API, verstehe ich den Teil ,240,"Token Entfernt; Homoran; Admin" nicht wirklich. Das ist in der API nicht vorgesehen, muss also anscheinend von der FB kommen...?

                                  liv-in-sky 1 Reply Last reply Reply Quote 0
                                  • liv-in-sky
                                    liv-in-sky @SBorg last edited by

                                    hi @SBorg

                                    man benötigt ein fritzphone ? hab ich nicht - ich habe das google konto hinterlegt - sonst nichts

                                    ich bin davon ausgegangen, das es so funktioniert, weil ich dachte: wenn die handy app boxtofritz das kann, dann muss es ja gehen - mein irrtum : ich weiß ja garnicht, wo die app das bild holt - die userbilder sind ja auf dem handy in den kontakten verfügbar.

                                    ich mach es jetzt einfach so wie bisher - es kommen selten neue nummern hinzu

                                    • google contakte im browser öffnen
                                    • alle contacte exportieren als google csv
                                    • csv mit openoffice öffnen und alle spalten bis auf name und bild-url löschen
                                      -csv in mysql importieren
                                    • script welches tr064 adapter-usernamen holt und die bild url aus der mysql datenbank - wenn ringing aktiv
                                    • läuft - etwas umständlich - für meine bedürfnisse aber ok
                                      -unbekannte anrufe, fertige anrufe, gleiche anrufe- kann alles das script abfangen

                                    falls jmd. eine idee hat, wie man den csv download process automatisieren kann - bitte her damit

                                    1 Reply Last reply Reply Quote 0
                                    • SBorg
                                      SBorg Forum Testing Most Active last edited by

                                      Will bei mir nicht. Ist aber egal, ich nutze es ja eh nicht (und wenn nur intern und da funktioniert es).
                                      ...und das andere ist ein OAuth-Token der für Google benötigt wird. Spätestens da hört es jetzt aber wirklich auf.

                                      Du kannst die Daten auch per Google-API auslesen: https://developers.google.com/contacts/v3/

                                      liv-in-sky 1 Reply Last reply Reply Quote 0
                                      • liv-in-sky
                                        liv-in-sky @SBorg last edited by

                                        @SBorg sagte in FritzBox-PBpics per TR-064 Community-Adapter:

                                        Du kannst die Daten auch per Google-API auslesen: https://developers.google.com/contacts/v3/

                                        das hatte ich mal angeschaut - übersteigt meinen horizont - entweder mit java oder mit phyton (das muss ja auch irgendwie installiert/eingebunden werden) - bin froh, wenn meine javascripts irgendwie funktionieren

                                        danke dir

                                        1 Reply Last reply Reply Quote 0
                                        • First post
                                          Last post

                                        Support us

                                        ioBroker
                                        Community Adapters
                                        Donate

                                        574
                                        Online

                                        32.0k
                                        Users

                                        80.4k
                                        Topics

                                        1.3m
                                        Posts

                                        vis
                                        6
                                        42
                                        3867
                                        Loading More Posts
                                        • Oldest to Newest
                                        • Newest to Oldest
                                        • Most Votes
                                        Reply
                                        • Reply as topic
                                        Log in to reply
                                        Community
                                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                        The ioBroker Community 2014-2023
                                        logo