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 @bahnuhr last edited by

      @bahnuhr du nutzt einen anderen adapter ! muss ich mal kucken - der "leere'" tr-064-community.0.callmonitor.inbound.caller tut es auch im moment - ich warte mal auf @SBorg und seinen output

      bahnuhr 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 du nutzt einen anderen adapter ! muss ich mal kucken - der "leere'" tr-064-community.0.callmonitor.inbound.caller tut es auch im moment - ich warte mal auf @SBorg und seinen output

        Ja, ich habe folgende Instanzen installiert.

        fritzbox
        fritzdect
        tr.064 alt
        tr.064 community

        Scripte hatte ich mir geschrieben für fritzbox und tr.064.

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

          @bahnuhr bin momentan vorsichtig mit zu vielen adaptern - habe manchmal "stack exceeded" fehler und bekomm ihn nicht weg

          bahnuhr 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:

            stack exceeded

            Was isn das?

            Wieviel Adapter hast du denn?
            Welches System?

            Lt. Instanz hab ich derzeit 33 Prozesse.

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

              @bahnuhr nutze proxmox - das linux system meldet plötzlich diesen fehler - manchmal crashed iobroker und startet neu oder der javascript adapter und der js controller benutzen über 80% cpu time - die iobroker vm ist auch mein nas server und es ist nicht klar, ob ein script oder ein nicht iobroker service plötzlich resourcen braucht - auf github gibt es dazu auch schon ein issue - ram ist eigentlich genug da

              eine zeitlang kam der fehler wenn ein linux script (über crontab -e) "iobroker backup" aufrufte und gleichzeitig der nas server dateien kopierte usw - eine unendliche geschichte

              Aug  9 11:11:38 raspberry3 bash[449]: RangeError: Maximum call stack size exceeded
              Aug  9 11:11:38 raspberry3 bash[449]:     at Function.from (buffer.js:199:28)
              Aug  9 11:11:38 raspberry3 bash[449]:     at new Buffer (buffer.js:182:17)
              Aug  9 11:11:38 raspberry3 bash[449]:     at Sender.frameAndSend (/opt/iobroker/node_modules/iobroker.admin/node_modules/ws/lib/Sender.js:166:14)
              Aug  9 11:11:38 raspberry3 bash[449]:     at /opt/iobroker/node_modules/iobroker.admin/node_modules/ws/lib/Sender.js:126:12
              Aug  9 11:11:38 raspberry3 bash[449]:     at Sender.applyExtensions (/opt/iobroker/node_modules/iobroker.admin/node_modules/ws/lib/Sender.js:287:5)
              Aug  9 11:11:38 raspberry3 bash[449]:     at /opt/iobroker/node_modules/iobroker.admin/node_modules/ws/lib/Sender.js:120:10
              Aug  9 11:11:38 raspberry3 bash[449]:     at Sender.flush (/opt/iobroker/node_modules/iobroker.admin/node_modules/ws/lib/Sender.js:268:3)
              Aug  9 11:11:38 raspberry3 bash[449]:     at /opt/iobroker/node_modules/iobroker.admin/node_modules/ws/lib/Sender.js:270:10
              Aug  9 11:11:38 raspberry3 bash[449]:     at /opt/iobroker/node_modules/iobroker.admin/node_modules/ws/lib/Sender.js:127:7
              Aug  9 11:11:38 raspberry3 bash[449]:     at Sender.applyExtensions (/opt/iobroker/node_modules/iobroker.admin/node_modules/ws/lib/Sender.js:287:5)
              
              
              1 Reply Last reply Reply Quote 0
              • SBorg
                SBorg Forum Testing Most Active last edited by

                Habe es jetzt erst mal wieder teilweise anders gelöst...
                Klingelt... Bild vom Anrufer (wenn vorhanden) wird angezeigt... mehr im Moment nicht, da müsste man dann mal klären was noch alles passieren soll.

                Da ich jetzt wieder Rohre verlegen und löten gehe, nur mal zu Testzwecken, aber WICHTIG! LÄUFT NUR AUF LINUX!

                
                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.connect.json').val);
                    
                    try {let Bild = json.imageurlcaller;
                        var DL = 'wget -O /opt/iobroker/iobroker-data/files/vis.0/xxx/caller_pic.jpg "' + Bild + '"';
                        console.log(DL);
                        exec(DL);
                
                        } catch (e) {
                          console.log('Kein Bild für Anrufer vorhanden...');
                          return;
                        }
                
                });
                
                

                Benötigt nur den Community-Adapter. In Zeile #8 ist der Pfad und ggf. Bildname anzupassen: /opt/iobroker/iobroker-data/files/vis.0/xxx/caller_pic.jpg Das Leerzeichen hinter ...jpg und vor dem " dabei beachten.
                Dann in VIS nur zB ein Image-Widget + das Bild auswählen (vorher mal anrufen damit eins angelegt wird und man es auch auswählen kann ^^)

                Ausstehender Test: unbekannter Anrufer

                liv-in-sky 2 Replies Last reply Reply Quote 1
                • 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
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            970
                                            Online

                                            32.0k
                                            Users

                                            80.4k
                                            Topics

                                            1.3m
                                            Posts

                                            vis
                                            6
                                            42
                                            3870
                                            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