Neues Modul Telefonmonitor (TM)

Begonnen von Elektrolurch, 20 September 2014, 14:17:38

Vorheriges Thema - Nächstes Thema

Bernhard

ein ähnliches Problem ergibt sich bei Rufweiterleitung über die FB (paralellruf).
Das ist auch erst im Nachhinein ermittelbar (oder aus Wissen).

Bernhard

Puschel74

Hallo,

@Elektrolurch
Hier http://forum.fhem.de/index.php/topic,19238.msg208778.html#msg208778 hat sich jemand die Mühe gemacht und die internal_number aus dem Callmonitor im Telefonmonitor anzuzeigen.
Klar, das ganze macht natürlich nur Sinn wenn man mehrere internal_number hat.
Es gibt ja einige die das haben.

Kannst du dir das mal bitte anschauen und wenn ok bitte einpflegen?
Danke.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Elektrolurch

Hallo,

hatte ich schon gestern (ohne das Beispiel von oben) implementiert und getestet, allerdings noch nicht für alle Einstellungen des "monitor-type".
Außerdem kann man die calling-line (also die Nummer, auf der man angerufen wird) per Attribut (hash) auf einen beliebigen Namen mappen. Angezeigt wird es in G0..G4.

Weitere features:

# Version 1.6
# added:  attr line-filter accepts a list of ',' seperated incoming calling line numbers for filtering incoming or outgoing calls by calling line
# or a hash for mapping lines to text
# example
# attr myTM line-filter 304050,304060
# or
# attr myTM line-filter {'304050' => 'geschftl.', '304060' => 'priv'}
# line-information is stored in G0...G4
#
# added:
# $INTERNAL_CONNECTION / %INTERNAL_CONNECTION as variables for calling methods
# added: method-connect


Mit der neuen "Methode" "method-connect" und der Variablen $INTERNAL-CONNECTION kann man dann z.B. sich ein mapping bauen und herausfinden, in welchem Raum das Gespräch angenommen wurde.

%Phone_to_room = {'DECT_1' => 'Büro', 'DECT_2' = Schlafzimmer', 'DECT_3' => 'Küche'};

Das ganze, zur Unterstützung einer Anwesenheitserkennung. (derzeit gedanklich experimentell :-))

Werde die neue Version 1.6 nach Test so am Wochenende wieder in den Beitrag 1 hochladen. Muss noch ein bisserl testen.
Hatte z.B. für den Hash für den line-filter einen Tippfehler drin, so dass mir beim eingehenden Anruf fhem abstürzte. Habe da jetzt für die korrekte Syntax des Attributes noch ein check eingebaut, ob das eval auch eine hash-Referenz zurückliefert. usw....

Gruß

Elektrolurch

configDB und Windows befreite Zone!

Puschel74

Hallo,

tja schneller als die Polizei erlaubt.
Ich hab im anderen Beitrag (Callmonitor für Anfänger) Bescheid gegeben.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Elektrolurch

Hallo,

die neue Version 1.6 habe ich in Beitrag 1 hochgeladen.
Sich nun per (beliebigen) Namen die benutzte calling-line (Telefonnummer des Amtsanschlusses) anzeigen zu lassen, funktioniert (ist in G0...G4 gespeichert). Alle Nummern, die nicht im Attribut line-filter aufgeführt sind (Liste oder hash), werden nicht angezeigt.
Außerdem kann man jetzt auch bei "connect" einen fhem-Befehl ausführen lassen (z.B. den TV leiser stellen). Um zu wissen, in welchem Raum das Gespräch geführt wurde, gibt es jetzt noch die $INTERNAL_CONNECTION (man muss nur noch z.B. DECT_3 auf den Raum mappen)...

Ich habe jetzt nicht für alle monitor-type die neuen Features in allen Kombis durchprobiert... hoffe es klappt aber so.

Da ich jetzt die "Bedingung" für die Anzeige eines Gespräches in eine Routine (TM_Store) "gezogen" habe, wären weitere Erweiterungen diesbezüglich wohl nun recht einfach...

Gruß

Elektrolurch
configDB und Windows befreite Zone!

cocojambo

@ Elektrolurch

Dein Telefonmodul ist klasse, deine ständigen Erweiterungen und Verbesserungen ebenfalls, auch wenn ich Sie noch nicht alle nutze und ausprobiert habe.
Was mir aber von Anfang an aufgefallen ist, das wenn man aus der Telefonanlage (Auersbach 5020) mit Kuzwahlnummern über die Fritzbox einen Gesprächsteilnehmer anwählt, erscheint dieser Anruf nicht im Telefonmonitor. In der Fritzbox unter Anrufe ist dieser jedoch aufgeführt. Am Anfang dachte ich, das das nur sporadisch passiert und habe jetzt in deiner neuen Version gezielt Nummern aus meiner Kurzwahlliste angewählt, alle fehlen in dem Telefonmonitor, stehen aber in der Fritzbox (FB7390), auch bei längeren Gesprächen nicht.
Woran liegt das? und was kann man da ändern?
Solltest du dazu irgend welche Angaben, Sreenshots, Files, etc brauchen, kann ich dir diese gerne zusenden.
Gruß aus Köln
Norbert
FHEM6.2 FB7490 FB7430 3xraspi2+3+4 2xHM-LAN-CFG 2xESP CUL868 CUNO868 HUE-Bridge Harmony-Hub 5xHM-LC-Sw-PI-2 3xHM-WDS30-T2-SN 1xHM-LC_Sw4-DR 3xHM-ES-PMSw1-PI 7xFS20SIG2 6xFS20KSE 2xHM-ES-PMSW1-PL 5xS300TH 1xASH2200 1xEM1000

Elektrolurch

Hallo,

ich verarbeite nur die Events, die ich von der Fritzbox zugesandt bekomme.
Entweder lässt Du mal beim Telefonieren den Eventmonitor mitlaufen oder mach mal folgendes:

meineFB ist hier die Fritzbox, also vom Typ Callmonitor:

define meineFB_not notify meineFB:.* {Log(1,"$NAME $EVENT");;}

;; wenn du das über die Kommandozeile eingibst.
Dann steht der Kram im fhem-log.

Getestet habe ich noch nicht alles.
Bugfix: Es gibt ein warning, wenn man eine "mehtod-ring" definiert, da die Variable "internal-connection" noch nicht gesetzt ist.
und:
In manchen Situationen wird die Gesprächsdauer nicht aktualisiert, dann bleibt "<>" in der Anzeige stehen. Konnte das aber noch nicht finden.
Der Fall trat ein, wenn ich mich selbst angerufen habe.


Gruß

Elektrolurch
configDB und Windows befreite Zone!

cocojambo

Hei Michael
Ich habe die neuste Version der 33_readingsGroup.pm, die ich am 10.10.14 im Forum gefunden habe, eingespielt. Ich glaube du hast mich sogar darauf aufmerksam gemacht. Damit waren einige Fehler weg. Aber meine Frage ist doch:
Wo liegt der Unterschied, wenn die Telefonanlage eine Nummer "durch die Fritzbox" wählt oder ich von einem Apparat aus eine Nummer wähle?
Die Fritzbox kann doch diesen unterschiedlichen Wähl- Vorgang nicht erkennen, denn in der Fritzbox ist die Nummer wie jede Andere auch in der Reihenfolge ganz normal gespeichert. Wenn man also die Events der Fritzbox "mitschneidet" und auswertet, muß doch der Anruf der Telefonanlage dabei sein, weil dieser ja auch wie jeder normale Ruf "durch die Box geht". Das ist er aber nicht der Fall und taucht auch nicht im TM auf.
Die Hinweise von Elektrolurch kann ich zwar teilweise verstehen, haben aber doch meiner Meinung nach nichts direkt mit der durch die Fritzbox gehenden Anrufe zu tun und deren Anrufanzeige, oder? Ich sehe da erst mal keinen Zusammenhang, denn beide Ruf Varianten erkennt die Box, nur der TM liest sie nicht oder bekommt sie nicht mit, aber warum?
Gruß aus Köln
Norbert
FHEM6.2 FB7490 FB7430 3xraspi2+3+4 2xHM-LAN-CFG 2xESP CUL868 CUNO868 HUE-Bridge Harmony-Hub 5xHM-LC-Sw-PI-2 3xHM-WDS30-T2-SN 1xHM-LC_Sw4-DR 3xHM-ES-PMSw1-PI 7xFS20SIG2 6xFS20KSE 2xHM-ES-PMSW1-PL 5xS300TH 1xASH2200 1xEM1000

Roaster

Hi,

ich hatte jetzt die Tage Mal das Phänomen, dass es kein Update (in der Spalte Dauer) in der readingsGroup gab wenn innerhalb der gleichen Zeit, bspw. 12:44 Uhr zwei Telefonate stattfanden. D.h. das erste Telefonat wurde beendet und gleich sofort darauf auch noch innerhalb 12:44 ein zweites Telefonat begonnen wurde. Es wurde ein und dasselbe Telefon verwendet.

Weder beim ersten noch beim zweiten Telefonat wurde nach dem Auflegen der Werte in der Spalte Dauer geändert.

Ich werde das jetzt Mal weiter beobachten...

Gruß,
Michael

Elektrolurch

Zitat:

ich hatte jetzt die Tage Mal das Phänomen, dass es kein Update (in der Spalte Dauer) in der readingsGroup gab wenn innerhalb der gleichen Zeit, bspw. 12:44 Uhr zwei Telefonate stattfanden. D.h. das erste Telefonat wurde beendet und gleich sofort darauf auch noch innerhalb 12:44 ein zweites Telefonat begonnen wurde. Es wurde ein und dasselbe Telefon verwendet.


Hatte ich zwei Beiträge oben bereits geschrieben.
Ursache muss ich erst debuggen.

Der TM verarbeitet alle Events, den der FBCallMonitor an ihn liefert. Philosophieren darüber hilft nichts, oben steht der Vorschlag, wie man das Problem angehen kann.

Gruß

Elektrolurch

configDB und Windows befreite Zone!

Roaster

Oh, hatte den Beitrag von dir nicht bis zum Ende gelesen, da die ersten paar Zeilen eine Antwort auf ein anderes Problem enthielten, sorry.

Danke trotzdem für die Antwort ;)

cocojambo

@Elektrolurch
Ich habe deine Version 1.6 jetzt auch mit der Internal number am laufen, funktioniert bis jetzt wunderbar. Im Log erscheint immer bei dem Status ring und call eine PERL WARNING:

TM_Monitor: status:  ring
2014.10.30 08:41:38 3: Anruf (ring) von unknown 0221??????? callID: b8aabd1d1312cac479438a4e88c01391
2014.10.30 08:41:38 1: PERL WARNING: Use of uninitialized value $linefilter in concatenation (.) or string at ./FHEM/99_myUtilsTM.pm line 226.

TM_Monitor: status:  call
2014.10.30 09:06:22 1: PERL WARNING: Use of uninitialized value $linefilter in concatenation (.) or string at ./FHEM/99_myUtilsTM.pm line 226.

hat das was zu sagen oder kann man diese Meldung ignorieren?
Gruß
Norbert
FHEM6.2 FB7490 FB7430 3xraspi2+3+4 2xHM-LAN-CFG 2xESP CUL868 CUNO868 HUE-Bridge Harmony-Hub 5xHM-LC-Sw-PI-2 3xHM-WDS30-T2-SN 1xHM-LC_Sw4-DR 3xHM-ES-PMSw1-PI 7xFS20SIG2 6xFS20KSE 2xHM-ES-PMSW1-PL 5xS300TH 1xASH2200 1xEM1000

Elektrolurch

Hallo Norbert;

my $linefilter = AttrVal($name,'line-filter',undef);
Log3($name,4,"TM_Store: linefilter $linefilter");

Falls Du den line-filter verwendest hast, so ist das Attribut nicht gesetzt, ansonsten werde ich die Log-Ausgabe in das daruntr liegende if ziehen.

Gruß

Elektrolurch

configDB und Windows befreite Zone!

cocojambo

@Eletrolurch
Hi,
Habe jetzt den line Filter so verwendet:
attr myTM line-filter {'304050' => 'geschftl.', '304060' => 'priv'}
natürlich mit meinen Werten, super, funktioniert.

Frage: Könnte man nicht wenn dieser Filter nicht verwendet wird so was wie: " attr myTM line-filter=0 " einbauen?

Oder ist die Idee nix?
Gruß
Norbert
FHEM6.2 FB7490 FB7430 3xraspi2+3+4 2xHM-LAN-CFG 2xESP CUL868 CUNO868 HUE-Bridge Harmony-Hub 5xHM-LC-Sw-PI-2 3xHM-WDS30-T2-SN 1xHM-LC_Sw4-DR 3xHM-ES-PMSw1-PI 7xFS20SIG2 6xFS20KSE 2xHM-ES-PMSW1-PL 5xS300TH 1xASH2200 1xEM1000

Elektrolurch

Wenn das Attribut 'line-filter' nicht gesetzt ist, werden alle Anrufe aufgezeichnet.
Die Ausgabe des logs stand nur an der falschen Stelle, daher die perl-Warnung, wenn das Attribut nicht existiert.
In der nächsten Version ist das weg.
configDB und Windows befreite Zone!