FB_CALLMONITOR und external_number auslesen / notify

Begonnen von HansDampfHH, 31 Januar 2016, 15:01:29

Vorheriges Thema - Nächstes Thema

HansDampfHH

Ich komme leider noch nicht ganz zu recht mit meinem Vorhaben.

Ich möchte ein notify triggern wenn ein Anruf (eingehend oder ausgehend) über FB_Callmonitor erfolgt.
Aktuell sieht mein notify so aus:

define FritzBoxAnruf notify FritzBox:event:.* {TelefonMonitor ($EVENT)}


Dazu habe ich in 99_myUtils.pm folgende Methode:

sub TelefonMonitor($) {
  my ( $event, $arg ) = split( ':', $_[0] );
  $arg = ltrim($arg);
 
  my $title = '';
  my $number = '';
 
  if($arg eq 'ring' ){
    $title = 'Anruf eingehend';
  }elsif($arg eq 'call'){
    $title = 'Anruf ausgehend';
  }

  $number = ???;
 
  Log(3,"$title: $number");
}


Hier kann ich als Event call oder ring abfragen. Schon mal gut.
Wie komme ich an dieser Stelle aber an das Reading external_number vom Callmonitor?

Am Ende möchte ich eine Nachricht versenden mit der Info über eingehend/ausgehend und der externen Nummer.
FHEM Docker, CUL868, Zigbee, CCU2, Jeelink

Otto123

#1
warum doppelt?
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Markus Bloch

Warum so kompliziert?


define FritzBoxAnruf notify FritzBox:event:.(call|ring) {Log 3, ReadingsVal("FritzBox", "external_number","")}


Alternativ gehts noch einfacher mit DOIF.

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)

JoWiemann

Hallo,

warum ein notify. Der FB_CALLMONITOR hat doch vier Methoden, wo Du eine eigene Routine reinhängen kannst.

Die Methoden werden als Attribute definiert und lauten, siehe auch <Device specific help>:

method_call, method_connect, method_disconnect, method_ring

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

Markus Bloch

Zitat von: JoWiemann am 31 Januar 2016, 15:55:13
Hallo,

warum ein notify. Der FB_CALLMONITOR hat doch vier Methoden, wo Du eine eigene Routine reinhängen kannst.

Die Methoden werden als Attribute definiert und lauten, siehe auch <Device specific help>:

method_call, method_connect, method_disconnect, method_ring

Grüße Jörg

Nicht das ich wüsste. Ich glaube das verwechselst du mit dem TelefonMonitor Modul von Elektrolurch.
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

JoWiemann

Mist, stimmt. Asche auf mein Haupt.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

Otto123

Jetzt antwortet ihr auch noch alle auf den Thread auf den ich nur bemerkt habe, dass die Frage doppelt gestellt wurde  8)
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Markus Bloch

Zitat von: Otto123 am 31 Januar 2016, 18:30:08
Jetzt antwortet ihr auch noch alle auf den Thread auf den ich nur bemerkt habe, dass die Frage doppelt gestellt wurde  8)

Ja das stimmt, hab ihn oben als ersten gesehen und draufgegangen da CALLMONITOR im Titel stand. Erst später bemerkt, dass es der zweite war.
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

Otto123

Zitat von: Markus Bloch am 31 Januar 2016, 18:34:35
Ja das stimmt, hab ihn oben als ersten gesehen und draufgegangen da CALLMONITOR im Titel stand. Erst später bemerkt, dass es der zweite war.
na ja und das war ja auch noch ich, der den hoch geschoben hat  :P
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

HansDampfHH

Ja, tut mir leid. Beim ersten Post gab es ein Connection refused. Daher noch einmal.
Mist, der erste Post ging wohl doch durch. Kann den jemand löschen/zusammenfügen?

Vielen Danke für eure Hinweise !
Hat mir schon sehr geholfen. Kann mir jemand vielleicht noch einen Schubs in Sachen external-name geben?

Ich habe den Callmonitor so angelegt:


define FritzBox FB_CALLMONITOR 192.168.178.1
attr FritzBox fritzbox-user Test
attr FritzBox fritzbox-remote-phonebook 1
attr FritzBox fritzbox-remote-phonebook-via tr064


Wen ich nun direkt per get FritzBox showPhonebookEntries die Einträge des Adressbuches abfrage bekomme ich eine Liste.
Super. Aber wenn ich in meiner Methode versuche über $name = ReadingsVal("FritzBox","external_name",99); an den Namen zu kommen steht da immer nur unknown. Was mach ich falsch?
FHEM Docker, CUL868, Zigbee, CCU2, Jeelink

Markus Bloch

Du hast die Rückwärtssuche nicht aktiviert. Das Telefonbuch hast du zwar eingelesen, aber es wird momentan nicht benutzt. Dir fehlt das Attribut reverse-search. Diese muss mit einer Liste von zu durchsuchenden "Anbietern" gefüllt sein in welcher Reihenfolge nach einem Namen gesucht werden soll.

Beispiel:
reverse-search phonebook,klicktel.de,dasoertliche.de

bedeutet, bei einer Rückwärtssuche einer Nummer zuerst im Telefonbuch nachschauen (was ja schon eingelesen ist), falls kein Eintrag, dann bei klicktel.de nachschlagen, falls nicht, usw.

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)

HansDampfHH

Hm, leider auch nicht:

define FritzBox FB_CALLMONITOR 192.168.178.1
attr FritzBox fritzbox-user Test
attr FritzBox fritzbox-remote-phonebook-via tr064
attr FritzBox reverse-search phonebook,klicktel.de,dasoertliche.de


Auch hier ergibt ReadingsVal("FritzBox","external_name",99) nur unknown. In den Logs steht auch nicht mehr.
Komisch, da get FritzBox showPhonebookEntries eben die ganze LIste aufführt.
FHEM Docker, CUL868, Zigbee, CCU2, Jeelink

Markus Bloch

external_name wird erst beim nächsten Anruf-Event richtig gesetzt. Nachträglich wird das nicht korrigiert. Also ab jetzt an beim nächsten Anruf wird dann der Name nachgeschlagen.

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)

HansDampfHH

Leider nicht. Weder bei ein- noch ausgehenden Anrufen.
Immer noch unknown. Kann ich da irgendwo nachsehen, wo wie was?
FHEM Docker, CUL868, Zigbee, CCU2, Jeelink

Markus Bloch

Du hast das Attribut fritzbox-remote-phonebook wieder entfernt, damit ist das Telefonbuch nicht mehr eingelesen.
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)