FB CALLLIST Anrufer Foto mit anzeiegen

Begonnen von Tommy82, 30 Oktober 2018, 21:37:25

Vorheriges Thema - Nächstes Thema

Tommy82

Hallo,
gibt es eine möglichkeit ein Anrufer Foto (sofern vorhanden) mit anzeigen zu lassen?
Ich kenne das von meinem VU+ Reciver mit dem FritzCallmonitor so, das wie hier auch das Telefonbuch der FB ausgelesen wird, und dann kann man ein Verzeichniss (in meinem Fall auf einem NAS) angeben wo die Bilder der Anrufer liegen, die Bildnamen entsprechen der Telefonnummer des Anrufers.

Wäre sowas möglich mit ins Modul einzubauen?

Danke
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

rischbiter123

Moin,

als Workaround:

Dummy anlegen:
defmod Anruferbild dummy
attr Anruferbild devStateIcon 00:Transparent.png 01:unknown.png 02:telefonieren.png 1:Andiruf.png 2:Kristinruf.png 3:Justinruf.png 4:Mamaruf.png 5:Nicoleruf.png 6:Silkeruf.png 7:Halleruf.png

Bei mir sind die Bilder im Icon-Verzeichnis, es müsste sich aber auch der Pfad angeben lassen

Notify beim Klingeln:
defmod TelefonAnzeige_rein notify Telefon:event:.ring sleep 1.5;; {Telefonanzeige()}
Die 1,5 Sekunden Pause sind, weil ich mir den Anrufer auch vorlesen lasse

Eintrag in 99_myUtils:
sub Telefonanzeige() {
my $number=(ReadingsVal("Telefon","external_number",0));
my $name=(ReadingsVal("Telefon","external_name",0));
if($name eq "unknown") {fhem ("set Anruferbild 01")}
elsif ($number eq "xxx")
{fhem ("set Anruferbild 1")}
elsif ($number eq "xxx")
{fhem ("set Anruferbild 1")}
elsif ($number eq "xxx")
{fhem ("set Anruferbild 2")}
elsif ($number eq "xxx")
{fhem ("set Anruferbild 2")}
elsif ($number eq "xxx")
{fhem ("set Anruferbild 3")}
elsif ($name eq "Mama")
{fhem ("set Anruferbild 4")}
elsif ($number eq "xxx")
{fhem ("set Anruferbild 5")}
elsif($name eq "xxx")
{fhem ("set Anruferbild 6")}
elsif($number eq "xxx")
{fhem ("set Anruferbild 7")}
else
{fhem ("set Anruferbild 02")}
}

xxx durch die Nummer bzw. den Namen ersetzen

Notify beim Auflegen:
defmod TelefonAnzAus notify Telefon:event:.disconnect set Anruferbild  00
Anruferbild 00 ist ein Transparenzicon

Für abgehende Gespräche muss das Event connect statt ring heißen

LG

Andreas
4*Raspi, Max Thermostate und Fensterkontakte, FB7590, Mysensors und NanoCUL, IT und Sonoff, zigbee2mqtt2

Tommy82

Hi,
erstmal danke für deinen Workaround, werd ich mir ansehen und mal sehen ob ich damit klar komme, aber mal noch drei Fragen dazu, hast du den Anruferbildern eine bestimmte Größe verpasst, oder ist die egal?

Wofür nutzt du das Anruferbild 00, Transparenzicon?

Hast du das ganze auch in eine FTUI angebunden? Wenn ja wie?

Danke
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

rischbiter123

Moin,

Die Bilder haben bei mir 200*200 Pixel.

Das Tranzparenticon ist das 'Bild', welches angezeigt wird, wenn kein Anruf getätigt wird. Habe es mal angehängt.

Ich benutze Floorplan, FTUI leider nicht. Kann sein, dass Du dafür die Bildgröße anpassen musst.

LG

Andreas
4*Raspi, Max Thermostate und Fensterkontakte, FB7590, Mysensors und NanoCUL, IT und Sonoff, zigbee2mqtt2

Markus Bloch

Zitat von: Tommy82 am 30 Oktober 2018, 21:37:25
Wäre sowas möglich mit ins Modul einzubauen?

Natürlich ist sowas grundsätzlich möglich, das ist Open-Source. Ich persönlich jedoch hab keine Pläne so etwas zu implementieren, ich freue mich aber dennoch über Vorschläge, sowie Patches die FB_CALLLIST um so etwas ergänzen.

Ich hab jetzt so spontan keine Idee, wie man sowas am besten in FB_CALLLIST umsetzen könnte. Vielleicht hat ja hier jemand eine Idee wie man sowas machen könnte. Also wie das dann im Ende für den User sich darstellen würde.

Auf der TODO-Liste für FB_CALLLIST habe ich aktuell noch Counter-Readings für die verschiedenen Anruf-Typen (incoming, outgoing, missed-call, etc.).

Gruß
Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

KölnSolar

#5
Hallo Markus,
ich bin zufällig hier rein gestolpert, obwohl ich FB_CALLLIST gar nicht nutze.  ::) Aber der workaround von Andreas ist ja eher auf den FB_CALLMONITOR bezogen.  ;)
Da ich mich derzeit viel mit dem STV und DLNA beschäftige, Du auch Maintainer für YAMAHA_xy bist, nehme ich mal den Thread zum Anlass, die dadurch bei mir ausgelösten Gedanken hier zur Diskussion zu stellen:
- der Einsatz von Multimedia wird immer weitreichender. Das Bedürfnis der FHEM-User ist riesig, irgendetwas auf ein Gerät(z.B. FS20SIG, echo, Alexa, SamsungTV...) zu streamen oder auf einer GUI(z.B. Floorplan, FTUI) darzustellen, sei es aufgrund eines events(z.B. FB_CALLMONITOR ) oder aus einem Informationsbedürfnis(z.B. FB_CALLLIST) heraus.
- Im Erzeugen von events sind wir mit FHEM super
- Die einzelnen Module für die diversen Ausgabegeräte/GUI ebenso.
- Und auch für die Erzeugung von Mediendateien(z.B. IPCAM, RSS) haben wir tolle Module.
- Aber irgendwie fehlt uns eine ordentliche Integration/Verwaltung von Medien:
  Beim FS20SIG musste ich Audiostreams erzeugen und dann auf die SD des FS20SIG kopieren
  Für den echo musste ich sie dann nach Amazon Music kopieren.
  Für den Samsung TV habe ich den Weg über DLNA(demnächst via Modul DLNARenderer  ;) ;D ;)) gewählt. Dafür hab ich aber miniDLNA
  installieren müssen, um Medien zu verwalten und im STV_Modul habe ich 2 Attribute für eine URI-Definition, die mit 2 set-Befehlen verknüpft
  sind für die Ausgabe. Im DLNARenderer sind 10 Möglichkeiten vorhanden. Also die Anzahl der Möglichkeiten Modul-individuell und begrenzt.
  Für die CAM habe ich einen individuellen Pfad zur Bildablage angeben/ausdenken müssen.
  Mit curl ein dynamisch erzeugtes RSS-jpg irgendwo ablegen müssen.

Soweit die Situation.

Was uns also meiner Meinung nach fehlt, ist:
1. Eine generelle "logische" Verzeichnisstruktur für Mediendateien, also eine Konvention, an die sich alle, die ein Modul betreuen, per "preset" halten sollten. Also so etwas wie ein Unterverzeichnis Media unterhalb des FHEM-Hauptverzeichnisses und darunter die Verzeichnisse Bild, Audio, Video
2. Ein sehr simples Medienverwaltungsmodul, welches eine Art Mini-Datenbank verwaltet.
    - Alias
    - Link/Dateiname
    - (directory)
    Der User erfasst einen Alias zu einer existierenden Datei, legt eine URI mit einem Alias an.
    Beispiel zu dem hiesigen Thread: Telefonnr. - Bilddatei
3. Standardfunktionen, die die Modulautoren nutzen sollten/können, um Mediendateien auf devices zu streamen, in einer GUI anzuzeigen. Zugriff erfolgt über den Alias und aus den vorgegebenen Verzeichnissen.
    Ein identischer Set-Befehl in allen Modulen(z.B. streamplay) mit dem Parameter Alias.
4. Standardfunktionen, die die Modulautoren nutzen sollten/können, um Ihre Mediendateien bei der Erzeugung in den directories abzulegen.  Die erzeugenden Module bekommen 2 Attribute:
     - directory(gibt es vermutlich heute schon bei allen betroffenen Modulen)
     - prefix_alias (z.B. den filename ohne Datentyperweiterung;im Verwaltungsmodul veränderbar)

Vorteile der ganzen Geschichte:
- eindeutige Verzeichnisstruktur; transparente Verwaltung an einem Ort und über Modulgrenzen hinweg(keine individuellen myUtils oder sonstige Konstrukte wie im obigen Beispiel nötig)
- keine modulindividuellen Begrenzungen(Anzahl) auf filenames/URIs bzw. unbegrenzte Anzahl von Definitionen
- verringerte Tipparbeit bei Nutzung eines Befehls im Frontend
- Verlagerung der Medienselektion vom Modul(Kombination von Attribut mit URI und set-Befehl) in zeit- oder event-orientierte Helperfunktion(z.B. notify, at ......)
- Vereinheitlichung der Modulentwicklung; Einfachere Modulkonzeption
- User-Nutzen: Wechselt man sein device physisch aus, bleibt beim Modulwechsel und Streaming alles wie gehabt.

Was meinst Du zu meinen Gedanken ?

Grüße Markus
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

Tommy82

#6
Zitat von: rischbiter123 am 30 Oktober 2018, 22:11:58
Moin,

als Workaround:
......
LG

Andreas

Hi, also der Workaround funktioniert grundsätzlich, es wird aber ja immer nur der aktuelle STATE gesetzt, und beim  Auflegen wieder auf "Transparenz.png" zurückgesetzt, wäre es auch möglich das die letzten z.b. 10 Anrufe jeweils in einem reading gespeichert werden, der STATE sollte natürlich immer aktuell bleiben.

Danke erstmal für den guten Workaround

Dann hab ich noch das Problem das mir das ganze nicht auf der FTUI dargestellt wird, habe es sowohl mit dem Symbol wie auch mit dem Image Widget versucht, beim Image wird mir garnichts angezeigt, beim Symbol wird mir irgend ein "seltsames" Symbol angezeigt.
Habs grad mal noch so versucht:
<div data-type="symbol" data-device="Anruferbild"  data-states='["594948929","473993""]' data-icons='[594948929.png"]' ></div> aber auch dann wird nichts angezeigt

Vieleicht hat da auch noch einer eine idee

Danke
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

KölnSolar

Zitatund beim  Auflegen wieder auf "Transparenz.png" zurückgesetzt,
wenn Du das 2. notify nicht definierst, behältst Du ja wenigstens schon einmal den letzten Anrufer.
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

Tommy82

#8
Ja das letzte ist aber dann immer Transparenz, ich möchte aber gerne 10 Anrufe in einem Reading gespeichert haben, so das ich die letzten 10 Anrufer mir immer mit Bild dargestellt werden, in meiner FB CALLIST werden mir immer die letzten 10 Anrufer angezeigt, den möchte ich gerne ein Bild zu ordnen

Müsste das nicht über ein setreading in dem teil der 99_MyUtils möglich sein, in form von
{fhem ("setreading Anruferbild $Anruf1 $Anruf2 Anruf3 01"

und im Dummy eine readingList mit Anruf1 Anruf2 Anruf3 usw.?
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

Paul

Zitat von: Tommy82 am 06 November 2018, 16:02:29
in meiner FB CALLIST werden mir immer die letzten 10 Anrufer angezeigt, den möchte ich gerne ein Bild zu ordnen


Im Telefonbuch der FB können doch Bilder gespeichert werden. Das Modul müßte nur die Bilder mit dem Telefonbuch auslesen.
Cubietruck, HM-USB, CUL, FS20, FHT, HUE, Keymatic

Tommy82

Zitat von: Paul am 14 Dezember 2018, 00:39:00
Im Telefonbuch der FB können doch Bilder gespeichert werden. Das Modul müßte nur die Bilder mit dem Telefonbuch auslesen.

Das stimmt, das wäre eine gute Lösung wenn das eingebaut werden könnte
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

Markus Bloch

Hallo zusammen,

ich habe das herunterladen der Kontakt-Fotos aus der FritzBox mal testweise implementiert:


  • Man kann ein Verzeichnis definieren in dem Kontaktfotos nach dem Schema "<Rufnummer>.jpg" (auch gif, png, etc. kann benutzt werden, Dateiendung ist egal)
  • Kontaktbilder können per TR-064 abgerufen und bei Vorhandensein in dieses Verzeichnis heruntergeladen werden
  • Bei eingehenden und abgehendem Anruf wird geprüft, ob eine Datei in diesem Verzeichnis mit der external_number als Dateiname existiert, wenn ja, wird der Dateiname als Reading "contact_image" ausgegeben

Dadurch kann man entweder die Bilder aus dem Fritz-Telefonbuch verwenden oder eigene Bilder ablegen.

Folgende neue Attribute wurden dazu implementiert:


  • contact_images - Flag (0/1) - Defaultwert: 0 (deaktiviert) - aktiviert die Verwendung von Kontakt-bildern (Hauptschalter für Download & Verwendung von Kontaktbildern)
  • contact_images_via_tr064 - Flag (0/1) - Defaultwert: 1 (aktiviert) - Sofern aktiviert, werden die Kontaktbilder via TR-064 aus dem FritzBox-Telefonbuch ermittelt (setzt die Nutzung von TR-064 im Attribut "fritzbox-remote-phonebook-via" vorraus). Kann bei Bedarf deaktiviert werden, wenn man nur eigene Bilder lokal verwenden möchte. Falls im Rahmen eines TR-064 Downloads von Bildern das lokale Verzeichnis nicht existieren sollte, wird es automatisch angelegt sofern das Perl-Modul File::Path vorhanden ist.
  • contact_images_dir - Verzeichnis - Defaultwert: [global:modpath]/www/contact_images - Konfiguriert das lokale Verzeichnis in dem die Kontaktbilder liegen
  • contact_images_default - Defaultwert: "none" - Der Standardwert welcher für das Reading "contact_image" zu verwenden ist, wenn kein Kontaktbild existiert. Hier könnte man dann ein eigenes Dummy-Bild im Verzeichnis hinterlegen und den Dateinamen hier angeben

Im Anhang befindet sich die testweise Implementation.

Um das bei euch zu verwenden, bitte das Modul herunterladen, einen "reload 72_FB_CALLMONITOR" durchführen und dann das Attribut "contact_images" aktivieren.

Nun meine Frage, kann man damit was anfangen oder sollte man das eher irgendwie anders rausgeben? Da ich kein FTUI verwende bin ich mir nicht sicher, was am besten Sinn macht um die Fotos dann auch einfach zu integrieren.

Viele Grüße

Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

rischbiter123

Moin Markus,

das Herunterladen der Bilder hat prima geklappt. Nur wie bekommt man diese jetzt am besten in der Calllist angezeigt?

LG

Andreas
4*Raspi, Max Thermostate und Fensterkontakte, FB7590, Mysensors und NanoCUL, IT und Sonoff, zigbee2mqtt2

Markus Bloch

Das wäre dann der nächste Schritt, das auch in FB_CALLLIST zu unterstützen. Aktuell geht es erstmal reinweg um FB_CALLMONITOR überhautp die Bilder zu sammeln und bei Vorhandensein herauszugeben.

Was mich primär interessiert und wo ich noch unschlüssig bin ist, wie ein Kontaktfoto am besten als Reading bekannt gemacht werden sollte:

- Nur der Dateiname?
- Dateiname mit vollständigem Dateisystempfad: "/opt/fhem/www/contact_images"
- ...

Von IPCAM kenn ich es, dass nur der reine Dateiname generiert wird und als Reading zur Verfügung gestellt wird. So würde ich das auch gerne handhaben wollen. Für FB_CALLLIST müsste ich dann eine Möglichkeit haben den absoluten Dateipfad zu einem Kontaktbild zu ermitteln, damit ich es in FB_CALLLIST darstellen kann. Das ist aber wiegesagt der nächste Schritt.

Viele Grüße

Markus


Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

rischbiter123

Der Bildname erscheint zumindest in den Readings.
setstate Telefon opened
setstate Telefon 2019-01-07 11:26:31 call_duration 0
setstate Telefon 2019-01-07 11:26:31 call_id 95085c494d9d85eeb33fc9b05e02bc41
setstate Telefon 2019-01-07 11:26:31 contact_image 01577268xxxx.jpg
setstate Telefon 2019-01-07 11:26:31 direction incoming
setstate Telefon 2019-01-07 11:26:31 event disconnect
setstate Telefon 2019-01-07 11:26:31 external_connection SIP2
setstate Telefon 2019-01-07 11:26:31 external_name Andi Handy Privat
setstate Telefon 2019-01-07 11:26:31 external_number 01577268xxxx
setstate Telefon 2019-01-07 10:26:29 internal_connection DECT_2
setstate Telefon 2019-01-07 11:26:31 internal_number xxxxxx
setstate Telefon 2019-01-07 11:26:31 missed_call 01577268xxxx (Andi Handy Privat)
setstate Telefon 2019-01-07 08:14:27 state opened


LG

Andreas
4*Raspi, Max Thermostate und Fensterkontakte, FB7590, Mysensors und NanoCUL, IT und Sonoff, zigbee2mqtt2