FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: HansDampfHH am 31 Januar 2016, 15:01:29

Titel: FB_CALLMONITOR und external_number auslesen / notify
Beitrag von: HansDampfHH am 31 Januar 2016, 15:01:29
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.
Titel: Antw:FB_CALLMONITOR und external_number auslesen / notify
Beitrag von: Otto123 am 31 Januar 2016, 15:31:09
warum doppelt (http://forum.fhem.de/index.php/topic,48481.0.html)?
Titel: Antw:FB_CALLMONITOR und external_number auslesen / notify
Beitrag von: Markus Bloch am 31 Januar 2016, 15:54:18
Warum so kompliziert?


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


Alternativ gehts noch einfacher mit DOIF.

Gruß
Markus
Titel: Antw:FB_CALLMONITOR und external_number auslesen / notify
Beitrag 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
Titel: Antw:FB_CALLMONITOR und external_number auslesen / notify
Beitrag von: Markus Bloch am 31 Januar 2016, 15:57:11
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.
Titel: Antw:FB_CALLMONITOR und external_number auslesen / notify
Beitrag von: JoWiemann am 31 Januar 2016, 15:58:24
Mist, stimmt. Asche auf mein Haupt.

Grüße Jörg
Titel: Antw:FB_CALLMONITOR und external_number auslesen / notify
Beitrag 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)
Titel: Antw:FB_CALLMONITOR und external_number auslesen / notify
Beitrag von: Markus Bloch am 31 Januar 2016, 18:34:35
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.
Titel: Antw:FB_CALLMONITOR und external_number auslesen / notify
Beitrag von: Otto123 am 31 Januar 2016, 18:41:41
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
Titel: Antw:FB_CALLMONITOR und external_number auslesen / notify
Beitrag von: HansDampfHH am 31 Januar 2016, 20:07:09
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?
Titel: Antw:FB_CALLMONITOR und external_number auslesen / notify
Beitrag von: Markus Bloch am 31 Januar 2016, 20:11:49
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
Titel: Antw:FB_CALLMONITOR und external_number auslesen / notify
Beitrag von: HansDampfHH am 31 Januar 2016, 20:21:18
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.
Titel: Antw:FB_CALLMONITOR und external_number auslesen / notify
Beitrag von: Markus Bloch am 31 Januar 2016, 20:22:29
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
Titel: Antw:FB_CALLMONITOR und external_number auslesen / notify
Beitrag von: HansDampfHH am 31 Januar 2016, 20:59:45
Leider nicht. Weder bei ein- noch ausgehenden Anrufen.
Immer noch unknown. Kann ich da irgendwo nachsehen, wo wie was?
Titel: Antw:FB_CALLMONITOR und external_number auslesen / notify
Beitrag von: Markus Bloch am 31 Januar 2016, 21:05:50
Du hast das Attribut fritzbox-remote-phonebook wieder entfernt, damit ist das Telefonbuch nicht mehr eingelesen.
Titel: Antw:FB_CALLMONITOR und external_number auslesen / notify
Beitrag von: HansDampfHH am 31 Januar 2016, 21:19:37
Halleluja !
Perfekt, danke für Deine Geduld.
Funktioniert wie gewünscht. Wobei man ja einige attr setzen muss, wo mir nicht klar war, dass man da mehrere setzen muss.
Titel: Antw:FB_CALLMONITOR und external_number auslesen / notify
Beitrag von: Markus Bloch am 31 Januar 2016, 22:19:58
Ich gebe zu, dass die Anzahl der Attribute nicht umbedingt übersichtlich ist. Sie bringt dem Nutzer aber eine riesige Flexibilität in der Anwendung.

In der Zeit die ich schon bei FHEM bin, habe ich gelernt, dass jeder ganz andere Anforderungen oder Einsatzzwecke für ein Modul in seiner Umgebung hat. Daher eine hohe Flexibilität durch so viele Parameter.

für deinen Zweck reicht (fritzbox-remote-phonebook-via tr064 ist standardmäßig so gesetzt):

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


Was ich dir noch empfehlen würde ist das setzen des Attributes "local-area-code" mit deiner Ortsvorwahl um Ortsgespräche richtig zu erkennen und korrekt über Internet auflösen zu können.

Andere (z.B. Ich) haben keine Usernamen auf der FritzBox eingerichtet. Wiederum andere haben ältere FritzBox-Modelle, wo man das Telefonbuch nur über einen Telnet-Zugang abfragen kann, andere haben Telefonanlagen da dran, wo die führenden Nullen entfernt werden müssen, usw. usw.

Das ganze ist mit der Zeit und den Einsatzszenarien bei den verschiedensten Usern so gewachsen.

Viele Grüße

Markus
Titel: Antw:FB_CALLMONITOR und external_number auslesen / notify
Beitrag von: HansDampfHH am 31 Januar 2016, 22:58:10
Ist ja durchaus der Grund für FHEM, die Flexibilität.
local-area-code noch gesetzt, guter Hinweis !

Bis zum nächsten Problem ;-)