NEWS
FritzBox-PBpics per TR-064 Community-Adapter
-
@SBorg sagte in FritzBox-PBpics per TR-064 Community-Adapter:
da der TR-064 Adapter bei der FB anfragt und somit eine gültige SID erhält
Wäre es möglich wenn der TR doch den Link abruft, dass er dann gleichzeitig das Bild auf einem Netzwerkordner speichert.
So z.B.
Anruf kommt
TR legt Pfad in Variable
TR speichert das Bild auf einem Netzwerkordner mit immer dem gleichen Namen (z.B. "Bild.jpg")
(Ordner kann man ja als Variable abfragen)Dann könnte iframe auf die Datei "Bild.jpg" zugreifen.
mfg
-
@SBorg danke dir für die erklärung - ich muss zugeben - ich war da voll egoistisch und hatte gehofft, dass dein linux script das macht - ich habe nicht an windows oder android user gedacht
je mehr ich über diese thematik, lese umso mehr komme ich mir vor, als ob einem affen die intgralrechnung erklärt wird
-
@SBorg sagte in FritzBox-PBpics per TR-064 Community-Adapter:
da der TR-064 Adapter bei der FB anfragt
Ich hab mir mal die Datei "callmonitor.js" angeschaut.
Könnte man nicht an dieser Stelle etwas einbauen ?
Also:
Nehme die Url und speichere das Bild in einen Ordner.Oder funktioniert dies nicht?
-
Viel zu kompliziert
Ich hatte deine Idee mit dem speichern des Bildes gestern schon und wieder verworfen, bis du mir gerade die Bretter vorm Kopf mit einer kleinen Aussage deinerseits entfernt hast...@bahnuhr sagte in FritzBox-PBpics per TR-064 Community-Adapter:
Anruf kommt
Manchmal kann es sooo einfach sein (auch wenn du wohl im ersten Augenblick auch nur Bahnhof verstehst).
Es braucht nur ein Blockly mit einer handvoll Anweisungen, fertig. Mal sehen ob das so funktioniert wie ich es mir gerade vorstelle.
Hat jemand Zeit? Meine Badrenovierung schreitet nicht voran solange ich hier... -
mal ne andere frage - ich habe gerade getestet, ob ich via sql datgenbank die bilder laden kann - das klappt auch soweit (sehr umständlich und ohne automatisierung bei einem neuen contact)
ich wollte unbekannte anrufer abfangen und habe festgestellt, wenn ich bei meinem handy die nummer bei einem anruf sperre, werden die caller listen nicht upgedatet - es stehen einfsch die alten (letzten anrufer) drin
ist das bei euch auch so ?
-
@SBorg sagte in FritzBox-PBpics per TR-064 Community-Adapter:
Es braucht nur ein Blockly mit einer handvoll Anweisungen, fertig.
Ich als bahnuhr verstehe derzeit auch nur bahnhof.
Sag mir was du meinst, ich probiere/teste es dann aus.
Wenn möglich bitte in js (blockly ist nicht mein Ding). -
@bahnuhr
Moin,
ich habe es auch nicht hinbekommen, in der FritzBox hinterlegte Anruferbilder im vis anzuzeigen und habe mir ein JS gebastelt, welches Anruferbilder anzeigt, die in einem Ordner auf dem Raspi abgespeichert sind, auf dem ioBroker läuft://############################## // Anruferbild //############################## const id1 = 'tr-064.0.callmonitor.ringing'; // Datenpunkt-ID "ringing" vom TR-064 Callmonitor var bild var anrufer // Pruefen, ob Telefon klingelt, dann (verzoegert um 1000 ms) den state abfragen on({id: id1, change: "gt"},function(obj) { setTimeout(function(){ anrufer = getState("tr-064.0.callmonitor.inbound.callerName").val; Anruferbild() ; }, 1000); }); function Anruferbild() { var kein_bild = "/vis/anruferbilder/kein_bild.jpg"; var joerg = "/vis/anruferbilder/jörg.jpg"; var britta = "/vis/anruferbilder/britta.jpg"; var renate_hdy = "/vis/anruferbilder/renate_hd.jpg"; var elisabeth = "/vis/anruferbilder/elisabeth.jpg"; var wiltraut = "/vis/anruferbilder/wiltr.jpg"; var rene = "/vis/anruferbilder/renejulia.jpg"; var theis = "/vis/anruferbilder/theis.jpg"; var richter = "/vis/anruferbilder/richterg.jpg"; var nehl = "/vis/anruferbilder/nehl.jpg"; var sikora = "/vis/anruferbilder/sikora.jpg"; var gepp = "/vis/anruferbilder/amgepp.jpg"; // Anrufername muss in FritzBox-Tel.Buch hinterlegt sein ! if(anrufer == "Baumann Jörg Hdy") { bild = joerg} else if(anrufer == "Taghavi Renate Hdy") { bild = renate_hdy} else if(anrufer == "Baumann Elisabeth Hdy") { bild = elisabeth} else if(anrufer == "Kopka Wiltraud") { bild = wiltraut} else if(anrufer == "Kopka Wiltraud Hdy") { bild = wiltraut} else if(anrufer == "Kopka Rene") { bild = rene} else if(anrufer == "Kopka Rene Hdy") { bild = rene} else if(anrufer == "Koppe Britta") { bild = britta} else if(anrufer == "Theis Wolfgang Priv") { bild = theis} else if(anrufer == "Theis Wolfgang Hdy") { bild = theis} else if(anrufer == "Gepp") { bild = gepp} else if(anrufer == "Richter Gertrud") { bild = richter} else if(anrufer == "Nehl Margot") { bild = nehl} else if(anrufer == "Sikora Thomas Priv") { bild = sikora} else if(anrufer == "Sikora Thomas Priv1") { bild = sikora} else if(anrufer == "Sikora Thomas Hdy") { bild = sikora} else if(anrufer == "Sikora Thomas Gesch.") { bild = sikora} else { var bild = kein_bild } setState ('javascript.0.telefon.anruferbild', bild, true); log (" "); log ('### Anrufer: ' + anrufer + ' Bild: ' + bild + ' ###'); if (anrufer == ""){ setState ('tr-064.0.callmonitor.inbound.callerName', 'unbekannt', true); } if (bild == "kein_bild"){ setState ('tr-064.0.callmonitor.inbound.callerName', 'unbekannt', true); } // nur zur Sicherheit } // Ende function Anruferbild
Hinweise:
1.) Verzögerung von 1000 ms (setTimeout) ist notwendig, damit genügend Zeit ist, getstate abzufragen.
2.) variable "anrufer" muss exakt! so heißen, wie die Namen im FB-Tel.Buch hinterlegt sind.
3.) var kein_bild ist notwendig, falls Anrufer unbekannt, bzw. nicht im FB-Tel.Buch hinterlegt ist.
4.) kein_bild.jpg kann z.B. ein Bild mit einem Fragezeichen "?" sein, muss aber als jpg-Bild vorhanden sein.
5.) Pfad "/vis/anruferbilder/xyz.jpg" ist willkürlich gewählt, hier liegen die Anruferbilder.
6.) Maße (Breite x Höhe) der Bilder sollten bei allen Bildern ungefähr gleich groß sein und so gewählt werden, daß sie im entspr. vis erkennbar sind.Sieht dann z.B. so aus:
Kann man bestimmt eleganter lösen, aber es funktioniert.
Gruß
Jörg -
Danke,
ich habe soetwas ähnliches auch per Script gelöst.Es wäre halt schön, wenn man dies nicht doppelt machen müsste.
Und wenn der schon angezeigte Link funktionieren würde. -
Aktualisiert sich bei euch der Pic-Datenpunkt callee/caller bei gleichem Anrufer?
...und ev. bekomme ich es am WE sogar fertig wenn nix dazwischenkommt oder neue Probleme auftreten -
meinst du den hier :
tr-064-community.0.callmonitor.connect.imageurlcalleeder aktualisiert sich nicht bei gleichem anrufer
habe weiter oben schon mal gefragt:
ich wollte unbekannte anrufer abfangen und habe festgestellt: wenn ich bei meinem handy die nummer sperre, wird tr-064-community.0.callmonitor.inbound.callerName nicht upgedatet - es steht einfach die alte (letztn anrufer) drin - ist das bei dir auch so ? - es ändert sich nur tr-064-community.0.callmonitor.inbound.caller - der datenpunkt ist dann leer -
Den meinte ich und war eines meiner aktuellen Probleme. Seit gestern sind aber beide Datenpunkte weg und werden nicht mehr angelegt...
Deswegen bin ich nun auf den DP json ausgewichen. Der aktualisiert sich anscheinend bei jedem Anruf (bitte Feedback ob dem so ist) und enthält bei einem Kontakt mit Bild auch ein Objekt imageurlcallee/r
Damit konnte ich es unter Linux zumindest lauffähig bekommen
...muss ich dann, wenn sich der DP wunschgemäß aktualisiert, "nur" noch in JS umschreiben... -
@SBorg jup - json wird upgedated - aber auch dort scheint problem bei unbekannten nummern zu sein - es bleibt der letzt wert stehen
also müßte bei unbekannten nummern noch tr-064-community.0.callmonitor.inbound.caller abgefragt werden, da dieser datenpunkt leer ist, wenn unbekannt anruft (sonst wird dort nummer angezeigt)
-
@liv-in-sky sagte in FritzBox-PBpics per TR-064 Community-Adapter:
@SBorg jup - json wird upgedated - aber auch dort scheint problem bei unbekannten nummern zu sein - es bleibt der letzt wert stehen
also müßte bei unbekannten nummern noch tr-064-community.0.callmonitor.inbound.caller abgefragt werden, da dieser datenpunkt leer ist, wenn unbekannt anruft (sonst wird dort nummer angezeigt)
Ich frage zu dieser Beurteilung den DP: fritzbox.0.calls.ringActualNumber ab.
Hier wird bei unbekannt ja: ### ? ###
übermittelt.Und dies frage ich per Script ab.
Wenn gewünscht kannst du mein Script zum Testen gerne haben.
mfg
-
-
@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 communityScripte hatte ich mir geschrieben für fritzbox und tr.064.
-
@bahnuhr bin momentan vorsichtig mit zu vielen adaptern - habe manchmal "stack exceeded" fehler und bekomm ihn nicht weg
-
@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.
-
@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)
-
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
-
@SBorg super job - bild ist angekommen
jetzt muss ich nur noch das mit unbekannter anrufer lösen
und viel spass beim "rohr verlegen"