Hallo,
jetzt habe ich aus dem 99_myUtilsTelefon ein Modul gemacht.
Was ist neu?
- es lassen sich bezüglich des FB_CallMonitors der Fritzbox nun beliebig viele Objekte des TMs erzeugen, die etwas unterschiedliches darstellen können, z.B. eine Instanz für alle Anrufe und nur eine für verpassste Anrufe
Das Modul sollte beliebig viele Anrufe, die gleichzeitig geführt werden, verarbeiten können.
- Die Anzeige wird schon beim event "ring" aktualisiert.
- Für "ring" und "disconnect" lassen sich per Attribut sowohl Aufrufe an fhem, als auch Aufrufe von perl-Code starten.
- Die Anzeigesymbole sind per Attribut einstellbar.
- ein seperates Notify für den Telefonmonitor ist nicht mehr notwendig
define myTM TM <Fritzbox>
<Fritzbox> ist vom Typ type FB_CALLMONITOR
Attribute:
disable:0,1
maxlines # Zahl der anzuzeigenden Zeilen - 1 !!! (4 zeigt 5 Zeilen an)
monitor-type:all,incoming,outgoing,missed-call,all-after-disconnect # default: all
symbol-incoming# default "=>"
symbol-incoming-noconnect # default: "0>"
symbol-outgoing # default "<="
symbol-outgoing-noconnect # default: "<0"
symbol-answering-machine # default: "AB", "AB2"...
symbol-connected # default "<->, during call
update:0,1,2
# 0 uses readingsBulkUpdate für alle Zeilen
# 1 die erste Zeile wird per readingsSingleUpdate aktualisiert
# 2 alle Zeilen werden per readingsSingleUpdate aktualisiert
Das ist derzeit experimentell, da leider per readingsBulkUpdate keine sofoortige Aktualisierung der benutzten readingsGroup auf dem Screen erfolgt.
Nachteil von readingsSingleUpdate ist, dass hier für jede Zelle der Anzeigengroupe events durch fhem laufen und eine Menge Zeit "verschwendet" wird.
Wer also keine "sofortige Aktualisierung" der Anzeige benötigt, setzt update auf 0
An dem Problem wird noch gearbeitet!!!!
verbose:0,1,2,3,4,5,6 method-ring method-disconnect";
method-ring method-disconnect
Beispiel
Sobald das Telefon klingelt, geht das Licht an, wenn der Anruf beendet ist, gehts wieder aus.
attr myTM method-ring set Lampe1 ein
attr myTM method-disconnect set Lampe1 aus
attr myTM1 method-ring {TelefonAktion($EXTERNAL_NAME,$EXTERNAL_NUMBER,$INTERNAL_NUMBER);;;;}
Bitte die ";;;;" beachten!
Für FHEM werden die internen Variablen
%EXTERNAL_NAME, %EXTERNAL_NUMBER und %INTERNAL_NUMBER mit den aktuellen Werten belegt
Für perl-Aufrufe, die entsprechenden mit einem "$" stattt "%".
Anzeige des Anrufers auf einem Samsung TV:
attr myTM2 method-ring set mySTV call Anruf von %EXTERNAL_NAME %EXTERNAL_NUMBER
Beispiel für die Anzeige per readingsGroup
define TM TM meineFB
define Anrufliste readingsGroup <Pos>,<Art>,<Datum>,<Name>,<Nummer>,<Dauer> TM:A0,B0,C0,D0,E0 TM:A1,B1,C1,D1,E1 TM:A2,B2,C2,D2,E2 TM:A3,B3,C3,D3,E3 TM:A4,B4,C4,D4,E4
attr Anrufliste mapping {'TM' => '{sprintf("%d.",$ROW-1);;}'}
attr Anrufliste noheading 0
attr Anrufliste nolinks 1
attr Anrufliste nostate 1
attr Anrufliste notime 1
attr Anrufliste room Telefon
Version 1.5
Bugfix: bei AB
Ergänzung: Standardattribute werden unterstützt
Neu:
set TM clear
löscht die Anzeige (F5 notwendig)
set TM monitor-type <mtype>
setzt das Attribut. Dies wurde in den set-Befehl mit aufgenommen, so dass man in einer readingsGroup als letzte Zeile eine Auswahl des monitor-types einblenden lassen kann und diese von der GUI aus veränderbar ist.
Version 1.52 30.9.2014
BugFix: TM_SetValue -> readingsSingleUpdate $update replaced b<y 1
Version 1.53
room,alias added.
'missed-calls' probably fixed
problems with 'callID' on some installations, added additional loging for verbose 6.
Version 1.54
Bugfix: missed_call replaced by missed-call
# 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
# version 1.61 (06.12.2014)
# Bug fix: internal_connection not valid during ring -> replaced by 'ring'
# Bug fix: correct setting of call-duration, depending on monitor-type
# Bug fix: TM_Store: Log with undef, if filter not set
# added to Attrlist: icon,group, method-call
Elektrolurch
Hallo,
ich bekomme die Meldung
define myTM myTM TM 192.168.10.1: TM_Define: 192.168.10.1 does not exists or ist not of type FB_CALLMONITOR
Der normale Callmonitor lief bis jetzt
Hallo,
Zitat:
define myTM myTM TM 192.168.10.1: TM_Define: 192.168.10.1 does not exists or ist not of type FB_CALLMONITOR
192.... ist ja auch kein Objekt vom type FB_CallMonitor!!!!
Einfach lesen, was da steht...
Ich hatte es oben ausdrücklich beschrieben.
Du hast doch:
define meineFritzBox FB_CALLMONITOR 192.168.10.1
und dann muss es natürlich lauten:
define myTM TM meineFritzBox
Elektrolurch
Hallo,
danke für die Hilfe! Das hab auch ich jetzt hin bekommen :-[ ;)
Nur die Icons fehlen mir jetzt noch und im Feld Pos ist auch was verkehrt.
Sorry bin total anfänger :-[ :-[ :-[
Danke
(http://abload.de/img/unbenanntkjx84.png)
Unter dem Thema "Calmonitor für Anfänger" gibt es eine Reihe Beispiele, wie man in der readingsGrup per Attribut Mapping den Text für die "Anrufrichtung" in ein Icon umwandelt
Servus Eletrolurch,
Ich habe das neue Modul bereits im Einsatz, soweit scheint es super zu laufen - nochmals vielen Dank für die Überarbeitung! Ich habe allerdings noch keine Gelegenheit gehabt die Aktualisierung (aller fünf) Einträge in der readingsGroup zu beobachten. Ich hatten schlichtweg den PC während der letzten Anrufe nicht am Laufen.
Was ich noch gerne getestet hätte ist die Verwendung von Symbolen anstatt von Zeichen zur Anzeige der Art der Anrufe. Ich habe dies bis jetzt probiert:
attr CallMon symbol-incoming 'phone_ring_in@green' # default "=>"
attr CallMon symbol-incoming-noconnect 'phone_ring_in@red' # default: "0>"
attr CallMon symbol-outgoing 'phone_ring_out@green' # default "<="
attr CallMon symbol-outgoing-noconnect 'phone_ring_out@red' # default: "<0"
attr CallMon symbol-answering-machine 'audio_volume_mid@lightgreen' # default: "AB", "AB2"...
attr CallMon symbol-connected 'phone_ring_out@yellow' # default "<->, during call
Also entweder ich muss noch ein Prozentzeichen (oder dergleichen) vor den Symbolnamen einfügen, oder das Modul ist für Symbole nicht vorbereitet. OK, mit Hilfe eines Mappings in der readingsGroup sollte auch dies lösbar sein.
Es wäre wohl aber schicker, wenn man es gleich in der Definition lösen könnte.
Noch eine Frage, es ist eventuelle auch eine mögliche Erweiterung: wenn ein Anruf auf dem AB der FritzBox aufgezeichnet ist. Wäre es denkbar mit Hilfe eines Commands in der readingsGroup, also eines ausführbaren Buttons, den Anrufbeantworter gleich abzuhören. Das wäre die Krönung des ganzen Moduls ;)
Ich stelle mir vor, dass ich innerhalb der fhem Oberfläche die Wave-Datei oder was auch immer in der FritzBox gespeichert wird, herunterladen kann und auf dem PC oder (Android-)Tablet anhören kann.
Noch eine Frage zu deinen Beispielen: Was macht eigentlich die folgende Zeile innerhalb der readingsGroup genau?
attr Anrufliste mapping {'TM' => '{sprintf("%d.",$ROW-1);;}'}
Es wird wohl irgendetwas gemappt. Muss ich das TM durch den Namen meiner Gerätedefinition ersetzen? Also beispielsweise CallMon?
Edit: ich habe soeben die FritzBox Oberfläche aufgerufen. Dort kann man bereits im Einstiegsbild die aufgezeichneten Anrufe abrufen. Ein Link dazu lautet beispielsweise
Zitathttp://fritz.box/lua/photo.lua?sid=d7e86737b6c05c3d&myabfile=%2Fdata%2Ftam%2Frec%2Frec.0.003
Es erscheint dann ein Downloaddialog, der zum Speichern oder Öffnen einer Wave-Datei auffordert. Wäre prima, wenn man dies auch innerhalb von fhem mit dem neuen Callmonitor realisieren könnte.
Grüße,
Michael
Hallo,
ich versuch die Icons nun seit gestern durch Mapping in die readingsGroup einzubinden bekomme es aber nicht hin kann jemand den tipp geben wie es gehen soll bitte?
Danke im Vorraus.
Hallo,
Ich kriegs auch nicht hin.
Ich mach mal ein Beispiel. Die 1. Anrufliste ist über den callmonitor definiert, die 2. über den Telefonmonitor:
# Anzeige der Anrufliste generieren:
define Anrufliste readingsGroup <Art>,<Datum>,<Name>,<Nummer>,<Dauer> my_callmonitor:A0,B0,C0,D0,E0 my_callmonitor:A1,B1,C1,D1,E1 my_callmonitor:A2,B2,C2,D2,E2 my_callmonitor:A3,B3,C3,D3,E3 my_callmonitor:A4,B4,C4,D4,E4
attr Anrufliste group Anrufuebersicht
attr Anrufliste mapping  
attr Anrufliste nameStyle style="font-weight:bold"
attr Anrufliste noheading 0
attr Anrufliste nolinks 1
attr Anrufliste nostate 1
attr Anrufliste notime 1
attr Anrufliste room Telefon
attr Anrufliste style style="font-size:14px"
attr Anrufliste valueIcon {'A0.out_connected' => 'phone_call_out@lightgreen', 'A0.out_notconnected' => 'phone_call_out@red','A0.in_connected' => 'phone_call_in@lightgreen','A0.in_notconnected' => 'phone_call_in@red', 'A0.AB' => 'audio_volume_mid@lightgreen', 'A1.out_connected' => 'phone_call_out@lightgreen', 'A1.out_notconnected' => 'phone_call_out@red','A1.in_connected' => 'phone_call_in@lightgreen','A1.in_notconnected' => 'phone_call_in@red', 'A1.AB' => 'audio_volume_mid@lightgreen','A2.out_connected' => 'phone_call_out@lightgreen', 'A2.out_notconnected' => 'phone_call_out@red','A2.in_connected' => 'phone_call_in@lightgreen','A2.in_notconnected' => 'phone_call_in@red', 'A2.AB' => 'audio_volume_mid@lightgreen','A3.out_connected' => 'phone_call_out@lightgreen', 'A3.out_notconnected' => 'phone_call_out@red','A3.in_connected' => 'phone_call_in@lightgreen','A3.in_notconnected' => 'phone_call_in@red', 'A3.AB' => 'audio_volume_mid@lightgreen','A4.out_connected' => 'phone_call_out@lightgreen', 'A4.out_notconnected' => 'phone_call_out@red','A4.in_connected' => 'phone_call_in@lightgreen','A4.in_notconnected' => 'phone_call_in@red', 'A4.AB' => 'audio_volume_mid@lightgreen'}
#attr Anrufliste fp_9_Telefon 370,206,0,Anrufliste
define TM TM my_callmonitor
define Anrufliste1 readingsGroup <Pos>,<Art>,<Datum>,<Name>,<Nummer>,<Dauer> TM:A0,B0,C0,D0,E0 TM:A1,B1,C1,D1,E1 TM:A2,B2,C2,D2,E2 TM:A3,B3,C3,D3,E3 TM:A4,B4,C4,D4,E4
attr Anrufliste1 group Anrufuebersicht
attr Anrufliste1 mapping  1
attr Anrufliste1 nameStyle style="font-weight:bold"
attr Anrufliste1 noheading 0
attr Anrufliste1 nolinks 1
attr Anrufliste1 nostate 1
attr Anrufliste1 notime 1
attr Anrufliste1 room Telefon
attr Anrufliste1 style style="font-size:14px"
attr Anrufliste1 valueIcon {'A0.out_connected' => 'phone_call_out@lightgreen', 'A0.out_notconnected' => 'phone_call_out@red','A0.in_connected' => 'phone_call_in@lightgreen','A0.in_notconnected' => 'phone_call_in@red', 'A0.AB' => 'audio_volume_mid@lightgreen', 'A1.out_connected' => 'phone_call_out@lightgreen', 'A1.out_notconnected' => 'phone_call_out@red','A1.in_connected' => 'phone_call_in@lightgreen','A1.in_notconnected' => 'phone_call_in@red', 'A1.AB' => 'audio_volume_mid@lightgreen','A2.out_connected' => 'phone_call_out@lightgreen', 'A2.out_notconnected' => 'phone_call_out@red','A2.in_connected' => 'phone_call_in@lightgreen','A2.in_notconnected' => 'phone_call_in@red', 'A2.AB' => 'audio_volume_mid@lightgreen','A3.out_connected' => 'phone_call_out@lightgreen', 'A3.out_notconnected' => 'phone_call_out@red','A3.in_connected' => 'phone_call_in@lightgreen','A3.in_notconnected' => 'phone_call_in@red', 'A3.AB' => 'audio_volume_mid@lightgreen','A4.out_connected' => 'phone_call_out@lightgreen', 'A4.out_notconnected' => 'phone_call_out@red','A4.in_connected' => 'phone_call_in@lightgreen','A4.in_notconnected' => 'phone_call_in@red', 'A4.AB' => 'audio_volume_mid@lightgreen'}
Vielleicht hat einer ne Idee.
Gruß
Carlos
Hallo,
da ich keine Icons verwende, kann ich hier nur mutmassen:
Im TM kann man für die einzelenen Anrufarten Textsymbole setzen, z.B. fßür "symbol-incoming" ist das default "=>".
Ein mapping in der readingsGroup auf ein Icon geschieht immer vom value (hier also das "=>" auf das Icon).
Zitat:
Noch eine Frage, es ist eventuelle auch eine mögliche Erweiterung: wenn ein Anruf auf dem AB der FritzBox aufgezeichnet ist. Wäre es denkbar mit Hilfe eines Commands in der readingsGroup, also eines ausführbaren Buttons, den Anrufbeantworter gleich abzuhören. Das wäre die Krönung des ganzen
Muss ich mal darüber nachdenken, vermutlich ist es etwas kompliziert, eine Regel für die Links zu finden, die eindeutig ist.
AkuAktualisierung des screens:
attr CallMon update 0
setzen und beobachten, ob es dann immer noch sofort (ohne Drücken von F5) bei einem eingehenden Anruf zur Aktualisierung des Screens kommt.
Habe mal den Aktualisierungsprozess ausgebaut und seperat getestet und da hat es auch mit update = 0 funktioniert und es kostet deutlich weniger an Rechenzeit.
Gruß
Elektrolurch
Hi,
Zitat von: Elektrolurch am 20 September 2014, 14:17:38
symbol-incoming# default "=>"
symbol-incoming-noconnect # default: "0>"
symbol-outgoing # default "<="
symbol-outgoing-noconnect # default: "<0"
symbol-answering-machine # default: "AB", "AB2"...
symbol-connected # default "<->, during call
Ich habe mir das Coding Mal angesehen, da ich auf der Suche nach den Standard Texten für die Verbindungsarten war. Kann es sein, dass der Default für Incoming nicht "=>" ist sondern "->", also das Gleichheitszeichen ein Minuszeichen? Gleiches gilt für möglicherweise auch für das Outgoing. Dann, denke ich, ist der Text für Connected, so wie es scheint nicht "<->" sondern "con".
Was ich nicht auf Anhieb finden konnte, ich aber möglicherweise für das ValueIcon benötige, ist der Text für den Anrufbeantworter. Ist der Text hier tasächlich "AB" dann "AB2" und so weiter? Fehlt dann "AB1"? Wie weit gehen die Texte? bis "AB4" beziehungsweise noch weitere Nummern, je nach Anzahl der angezeigten Einträge?
Zitat von: Elektrolurch am 22 September 2014, 10:20:33
im TM kann man für die einzelenen Anrufarten Textsymbole setzen, z.B. fßür "symbol-incoming" ist das default "=>".
Ein mapping in der readingsGroup auf ein Icon geschieht immer vom value (hier also das "=>" auf das Icon).
Ich habe versucht die Anzeige der Symbole mit
attr Anrufliste2 valueFormat {($VALUE eq '->')?"phone_ring_in@green"}
attr Anrufliste2 valueIcon {'->' => 'phone_ring_in@green', '0>' => 'phone_missed_in@red'}
zu erreichen. War jedoch nicht erfolgreich.
Egal, ob ich das valueFormat entferne oder nicht. Es wird mir kein Symbol angezeigt.
Soweit ich das mit dem Attribut valueIcon verstanden habe, müsste ich ohnehin
{'A0.->' => 'phone_ring_in@green'}
schreiben. Dies wiederum würde bedeuten, dass ich für jedes mögliche A, also A0, A1, A2, A3, A4 diese Definition einstellen muss. Bei fünf A-Variablen und insgesamt sechs Zuständen sind dies 30 Definition. Das ist mir schon ein wenig zuviel, vor allem wenn ich nachträglich daran was ändern muss.
Diese Diskussion hatte ich aber schon Mal mit dem alten Callmonitor. Da habe ich gefragt, ob man nicht irgendetwas mit A* verwenden könnte, also etwas generischer.
Ich denke das würde man alles nicht benötigen, wenn man dem Callmonitor als Text für die jeweiligen Anrufarten, bereits das entsprechende Symbol mitgeben könnte. Aber daran bin ich ja bereits mit meinen Möglichkeiten gescheitert. Ich weiß, dass du, Elektrolurch, keine Symbole verwenden kannst, es wäre aber prima, wenn hier der ein oder andere User vielleicht noch den entscheidenden Tipp geben könnte.
Grüße,
Michael
Ach ja, noch eins. Im Beispiel oben ist in der readingsGroup die Nummer des Anrufs zu sehen. Das will bei mir aber nicht klappen:
define CallMon TM FritzBox
attr CallMon disable 0
attr CallMon maxlines 4
attr CallMon monitor-type all
attr CallMon update 0
define Anrufliste2 readingsGroup <Pos>,<Art>,<Datum>,<Name>,<Nummer>,<Dauer> CallMon:A0,B0,C0,D0,E0 CallMon:A1,B1,C1,D1,E1 CallMon:A2,B2,C2,D2,E2 CallMon:A3,B3,C3,D3,E3 CallMon:A4,B4,C4,D4,E4
attr Anrufliste2 mapping {'TM' => '{sprintf("%d.",$ROW-1);;}'}
Egal, was ich in der letzten Zeile statt dem 'TM' schreibe, also beispielsweise 'CallMon', ich erhalte keinen Positionszähler. Verwende ich 'TM', dann wird in der readingsGroup 'CallMon' ausgegeben. Verwende ich 'CallMon', dann steht dort der Rest der Definition:
Zitat{sprintf("%d.",$ROW-1);;}'
Weiß hier jemand warum dies so ist?
Gruß,
Michael
Hallo,
es muss natürlich CallMon und nicht TM heißen.
Aber es kann sein, dass Deine Version der readingsGroup im mapping noch keinen perl-Ausdruck versteht, ich hatte das als Ergänzung dem Autor vorgeschlagen, möglicherweise hat er es noch nicht in die offizielle Version übernommen.
mach doch mal zur Probe das mapping auf => '%ROW'
also ohne perl-Ausdruck zwischen den ''.
Ansonsten kannst Du auch die erste Spalte in der rg, in der der device-Name steht, ausblenden, in dem Du:
attr Anrufliste2 nonames 1
setzt.
Gruß
Elektrolurch
ups da war noch was.
die perl ausdrücke beim mapping hatte ich noch nicht eingecheckt.
kannst du mir bitte noch mal nur diesen teil so wie er bei dir funktioniert als diff schicken.
danke
andre
Hallo Andre,
klar.
Eigentlich ist es auch nur die Zeilen hinter:
# Der Hash kann auch einen perl-Ausdruck enthalten.
Als ich das mit dem eval gesehen habe, hat das wahre Begeisterungsstürme bei mir ausgelöst. Du hattest das ja schon in der Lookup2 implementiert und ich hatte mich gewundert, warum nicht auch für das mapping. Damit tuen sich ja unendliche Möglichkeiten auf....
Hier die sub, wie sie bei mir läuft
sub
lookup($$$$$$$$$)
{
my($mapping,$name,$alias,$reading,$value,$room,$group,$row,$default) = @_;
if( $mapping ) {
if( ref($mapping) eq 'HASH' ) {
$default = $mapping->{$name} if( defined($mapping->{$name}) );
$default = $mapping->{$reading} if( defined($mapping->{$reading}) );
$default = $mapping->{$name.".".$reading} if(
defined($mapping->{$name.".".$reading}) );
$default = $mapping->{$reading.".".$value} if(
defined($mapping->{$reading.".".$value}) );
#} elsif( $mapping =~ m/^{.*}$/) {
# my $DEVICE = $name;
# my $READING = $reading;
# my $VALUE = $value;
# $mapping = eval $mapping;
# $default = $mapping if( $mapping );
} else {
$default = $mapping;
}
return $default if( !defined($default) );
$default =~ s/\%ALIAS/$alias/g;
$default =~ s/\%DEVICE/$name/g;
$default =~ s/\%READING/$reading/g;
$default =~ s/\%VALUE/$value/g;
$default =~ s/\%ROOM/$room/g;
$default =~ s/\%GROUP/$group/g;
# Elektrolurch:
$default =~ s/\%ROW/$row/g;
$default =~ s/\$ALIAS/$alias/g;
$default =~ s/\$DEVICE/$name/g;
$default =~ s/\$READING/$reading/g;
$default =~ s/\$VALUE/$value/g;
$default =~ s/\$ROOM/$room/g;
$default =~ s/\$GROUP/$group/g;
# Elektrolurch
$default =~ s/\$ROW/$row/g;
# Der Hash kann auch einen Perl-Code enthalten
if( $default =~ m/^{.*}$/) {
$default = eval $default;
$default = "" if( $@ );
}
}
return $default;
}
Zitat von: Elektrolurch am 23 September 2014, 09:20:05
es muss natürlich CallMon und nicht TM heißen.
Dachte ich mir schon ;-)
Zitat von: Elektrolurch am 23 September 2014, 09:20:05
Aber es kann sein, dass Deine Version der readingsGroup im mapping noch keinen perl-Ausdruck versteht, ich hatte das als Ergänzung dem Autor vorgeschlagen, möglicherweise hat er es noch nicht in die offizielle Version übernommen.
So sieht es wohl aus. Dann warten wir mal bis Andre die neue Version eingecheckt hat, sofern er die Änderungen für gut befunden hat.
Dann habe ich aber nach wir vor mein Problem mit den Rufarten die ich gerne durch Symbole ersetzt hätte :( Ich weiß nicht, was ich letztendlich in der Definition bei valueIcon angeben muss, da das was offensichtlich an anderer Stelle (alter Callmon) funktioniert hat geht hier nicht (mehr).
Bisher:
attr Anrufliste valueIcon {'A0.out_connected' => 'phone_ring_out@green',
Meine Versuche - ohne Erfolg:
attr Anrufliste2 valueIcon {'A0.->' => 'phone_ring_in@green',
oder
attr Anrufliste2 valueIcon {'->' => 'phone_ring_in@green',
Michael
bitte testet mal kurz die angehängte version.
danke
andre
Also die neue Version erlaubt jetzt auch die Angabe von Perl-Code bei Attribut mapping, wie attr Anrufliste2 mapping {'CallMon' => '{sprintf("%d.",$ROW-1);;}'}
Dankeschön!
Da ich schon den Experten in Sachen readingsGroup dran habe, kannst du hier vielleicht auch noch einen Tipp abgeben: http://forum.fhem.de/index.php/topic,27218.msg202270.html#msg202270 (http://forum.fhem.de/index.php/topic,27218.msg202270.html#msg202270)
Danke,
Michael
Klappt jetzt super mit der Nummerierung!!!
Danke!!!
hallo,
ich bekomme die Fehlermeldung
ZitatError messages while initializing FHEM:
configfile: Unknown module TM
was mache ich falsch?
Hallo,
Die Datei heißt ja 99_myUtilsTM.pm undliegt im FHEM-Verzeichnis, wo die anderen fhem - Module auch liegen.
Alle Dateien, die mit 99_myUtils... beginnen werden von fhem automatisch geladen.
Also, wenn die Datei am richtigen Ort liegt und Du den Namen nicht verändert hast, sollte es funktionieren.
Wird die Datei angezeigt, wenn Du links in fhem auf "Edit" klickst?
Elektrolurch
hi,
ich bin auch ein Esel, bzw. wer lesen kann ist klar im Vorteil ;)
und zwar hatte ich den Inhalt der 99_myUtilsTM.pm in die 99_myUtils.pm (weil ich das TM überlesen hatte). Ich hatte mich auch schon gewundert, warum du keine eigene Datei erstellt hast.
Jetzt klappt alles.
Vielen DANK!!
Gruß Michael
dann ist ja gut. Wenn man den Mechanismus kennt, dann kann man nämlich seinen perl-Code schön strukturieren. Bei mir sind es so ca. 10 99_myUtilsXXX.pm Dateien.
Und es gibt zwei Initialize-Routinen:
- Die eine geht mit myUtilsTM_Initialize an und ruft dann
die
TM_Initialize auf.
So das wenn fhem mal das Modul TM offiziel kennt, man die 99_myUtilsTM in irgendwas wie 78_TM umbenennen kann, die dann aber auch nicht mehr bei Edit angezeigt wird.
ja so ähnlich habe ich das bei mir auch.
Hab jetzt meine dritte drin und so langsam nimmt das ganze Projekt Form an.
@Roaster: hast du es mittlerweile geschafft die Symbole für die Anrufe einzubinden? Ich stehe da vor dem gleichen Problem wie du.
Gruß Michael
Zitat von: elsi89 am 26 September 2014, 08:40:45
@Roaster: hast du es mittlerweile geschafft die Symbole für die Anrufe einzubinden? Ich stehe da vor dem gleichen Problem wie du.
Leider nein, ich wünschte es wäre so. Da komme ich einfach nicht weiter. Bin jetzt nicht so der readingsGroup Experte nur beim "alten" Callmonitor klappte es mit den verwendeten Texte hervorragend.
Ach, da kommt mit gerade noch eine Idee: Evtl. betrachtet Perl(?) diese ganzen Pfeile, wie ->, <->, <- als Code und "übersetzt" diese nicht korrekt. Möglicherweise muss man hier maskieren, evtl. mit %-Zeichen. Da kenne ich mich aber auch nicht wirklich aus, also sowas wie
'%->' => 'symbolname'
Michael
hmpf
dein Vorschlag klappt bei mir leider nicht....
ich glaube ich hab noch einen Bug gefunden.
wenn ich für myTM das Attribut room setzen möchte, dann bekomme ich folgende Meldung:
ZitatTM_Attr: room must at least one of:
Hallo,k
Zitat:
wenn ich für myTM das Attribut room setzen möchte, dann bekomme ich folgende Meldung:
Zitat
TM_Attr: room must at least one of:
Der TM selbst zeigt ja nichts an, außer dem state initialized, daher habe ich da die Standardattribute erst einmal nicht unterstützt.
Symbole:
Da ich keine Ikonen verwende, habe ich es nicht getestet, aber:
Alle Smbole (Text) lassen sich ja per Attribut leicht modifizieren.
Also aus "=>" kann man auch per
attr meineRG symbol-incoming eingehend
machen und dann das ValueIcon über "eingehend" mappen.
Außerdem gibt es da auch genügend Beispiele in dem Ursprungsartikel "Telefonmonitor für Anfänger"..
Gruß
Elektrolurch
Zitat von: Elektrolurch am 26 September 2014, 12:06:35
attr meineRG symbol-incoming eingehend
machen und dann das ValueIcon über "eingehend" mappen.
Hm, so habe ich das natürlich auch noch nicht betrachtet - könnte funktionieren. Mal sehen... Ich melde mich wieder mit dem Ergebnis.
Danke für den Vorschlag!
Michael
hi,
wenn ich das richtig verstanden haben, dann wird ja aus dem '->' nur 'eingehend' gemacht.
Sprich es ändert sich nur der Text.
Das Problem was wir haben ist aber, dass wir den Text über ValueIcon nicht gemappt bekommen.
Ob ich da in meiner DEF '->' => 'phone_call_in@red'
oder 'eingehend' => 'phone_call_in@red'
schreibe ist ja ziemlich egal. Das Problem ist ja dass der Text anscheinend nicht richtig erkannt wird.
Gruß Michael
Hallo,
habe einige kleine Ergänzungen / Bugfixes vorgenommen und die Datei im Beitrag 1 aktualisiert und unter "Version 1.5" die Änderungen beschrieben.
@Michael:
Dein Problem hat aber nichts mit dem TM zu tun, der stellt nur einen "value" zur Verfügung, den dann die readingsGroup in ein Ikon mappen soll.
Daher ist Deine Anfrage hier im Thema eigentlich falsch. Schau Dir mal die Beiträge unter "Neues Modul readingsGroup" und die Beispiele im wiki zur readingsGroup an, da wurde schon ziemlich viel über valueIcons geschrieben.
Mich interessieren die Ikonen herzlich wenig, da sie für einen Screenreader uninteressant (inaccebible) sind.
Gruß
Elektrolurch
hi,
Danke für das Update. Bei mir habe ich es jetzt mit den Symbolen hinbekommen.
Ich habe für myTM folgende Attribute in der fhem.cfg gesetzt:
attr myTM symbol-incoming incoming
attr myTM symbol-incoming-noconnect incoming_noconnect
attr myTM symbol-outgoing outgoing
attr myTM symbol-outgoing-noconnect outgoing_noconnect
und dann habe ich bei der readingsGroup das ValueIcon darauf gemappt:
attr Anrufliste1 valueIcon {'A0.outgoing' => 'phone_call_out@lightgreen', 'A0.incoming' => 'phone_call_in@lightgreen','A0.outgoing_noconnect' => 'phone_missed_in@red', 'A0.incoming_noconnect' => 'phone_missed_out@red', 'A0.AB' => 'phone_answering@lightgreen', 'E0.con' => 'phone_ring@lightgreen','A1.outgoing' => 'phone_call_out@lightgreen', 'A1.incoming' => 'phone_call_in@lightgreen','A1.outgoing_noconnect' => 'phone_missed_in@red', 'A1.incoming_noconnect' => 'phone_missed_out@red', 'A1.AB' => 'phone_answering@lightgreen', 'E1.con' => 'phone_ring@lightgreen','A2.outgoing' => 'phone_call_out@lightgreen', 'A2.incoming' => 'phone_call_in@lightgreen','A2.outgoing_noconnect' => 'phone_missed_in@red', 'A2.incoming_noconnect' => 'phone_missed_out@red', 'A2.AB' => 'phone_answering@lightgreen', 'E2.con' => 'phone_ring@lightgreen','A3.outgoing' => 'phone_call_out@lightgreen', 'A3.incoming' => 'phone_call_in@lightgreen','A3.outgoing_noconnect' => 'phone_missed_in@red', 'A3.incoming_noconnect' => 'phone_missed_out@red', 'A3.AB' => 'phone_answering@lightgreen', 'E3.con' => 'phone_ring@lightgreen','A4.outgoing' => 'phone_call_out@lightgreen', 'A4.incoming' => 'phone_call_in@lightgreen','A4.outgoing_noconnect' => 'phone_missed_in@red', 'A4.incoming_noconnect' => 'phone_missed_out@red', 'A4.AB' => 'phone_answering@lightgreen', 'E4.con' => 'phone_ring@lightgreen'}
als ich das mapping der readingsGroup noch auf den defaultwerden (->, <- etc.) stehen hatte, hat es interessanterweise nicht gefruchtet. Also scheint der da keinen für fhem keinen Text auszugeben den readingsGroup versteht?!
Gruß Michael
Elektrolurch,
ich habe folgendes Phänomen: als ein Anruf reinkam wurden die readingsGroup aktualisiert. In Spalte Dauer stand connected, wohl aufgrund meiner Definition:
attr CallMon symbol-connected connected
Als der Anruf beendet war, wurde die Dauer, also Readings E0 in diesem Fall, nicht aktualisiert. Dort steht nach wie vor connected jetzt drin.
Ist dies möglicherweise ein bekanntes Problem. Ich habe die 1.5. Version noch nicht im Einsatz.
Ach ja folgendes ist noch eingestellt:
attr CallMon update 0
Gruß,
Michael
Bei mir ist das auch so.
Ich hab 1.5 schon im Einsatz.
Gruß Michael
Icon klappen auch bei mir! Super :-* :) :D ;D
Hallo,
das mit dem Ersatz von "connected" durch die Dauer klappt bei mir.
Bitte mal verbose auf 5 setzen und den log hier posten, wenn ein Anruf reinkommt.
Welcher monitor-type ist eingestellt?
Gilt das für alle Anrufe oder nur für eingehende oder verpasste?
Elektrolurch
Also kleines Problem mit den Icons hatte ich doch noch.
Und zwar das Icon des AB wurde nicht angezeigt, da es nicht 'phone_answering@lightgreen' sondern bei mir in fhem 'phone_answersing@lightgreen' heißt.
Da hat sich ein 's' zuviel eingeschlichen, sonst klappt es anscheinend super!
bitte testet noch mal die angehängte version.
ich habe noch ein paar größere dinge umgestellt.
danke
andre
Darf man fragen was sich geändert hat, damit wir nicht Fehler melden die möglicherweise keine sind? ::)
hoffentlich nichts was zu sehen ist und alles was nicht so geht wie früher wäre ein fehler.
im ernst: vor allem intern hat sich einiges geändert um später einfacher erweiterungen zu machen.
gruss
andre
Zitat von: Elektrolurch am 27 September 2014, 09:36:24
das mit dem Ersatz von "connected" durch die Dauer klappt bei mir.
Bei mir ja auch, aber es bleibt connected stehen und wird nicht nach Beenden des Anrufs durch die Zeitangabe ersetzt.
Zitat von: Elektrolurch am 27 September 2014, 09:36:24
Bitte mal verbose auf 5 setzen und den log hier posten, wenn ein Anruf reinkommt.
Mach ich gleich noch und poste hier wieder.
Zitat von: Elektrolurch am 27 September 2014, 09:36:24
Welcher monitor-type ist eingestellt?
Es ist monitor-type all eingestellt.
Zitat von: Elektrolurch am 27 September 2014, 09:36:24
Gilt das für alle Anrufe oder nur für eingehende oder verpasste?
Ich habe es bisher nicht für eingehende Anrufe beobachtet.
Bei Anrufen, deren Nummer und/oder Name nicht übertragen bzw. ermittelt wurde, steht im Callmonitor unknown. Kommt dieser Text von deinem Modul oder von der Fritzbox? Kann man auch diesen Text (in beiden Spalten) ersetzten, durch einen eigenen Text, wie beispielsweise: unbekannt?
Gruß,
Michael
Hallo,
Zitat:
Bei Anrufen, deren Nummer und/oder Name nicht übertragen bzw. ermittelt wurde, steht im Callmonitor unknown. Kommt dieser Text von deinem Modul oder von der Fritzbox? Kann man auch diesen Text (in beiden Spalten) ersetzten, durch einen eigenen Text, wie beispielsweise: unbekannt?
Der kommt von der Fritzbox. Um den änderbar zu machen, müsste ich ein weiteres Attribut einführen.
Bei mir ist monitor-type all oder incoming eingestellt.
Die Dauer des Gespräches kommt erst nach dem Auflegen. Daher wird in der Tabelle nach der Zeile mit der entsprechenden CallID des Gespräches gesucht, da ja auch noch zwischenzeitlich andere 'Gespräche geführt werden können. Die CallID steht in F0...F4. Wenn diese gefunden wurde, wird dann in der entsprechenden Zeile im 'Feld E die Dauer geschrieben.
Da das bei mir einwandfrei funktioniert, wäre es jetzt wichtig, die Unterschiede der Einstellungen herauszufinden und das log zu analysieren.
Gruß
Elektrolurch
@justme1968
Zitat
bitte testet noch mal die angehängte version.
ich habe noch ein paar größere dinge umgestellt.
Ich glaub ich hab nen bug gefunden:
wenn ich beim mapping
{'myTM' => '{sprintf("%d.",$ROW-1);}'}
eingebe, dann bekomm ich im Log folgenden Fehlermeldung:
Global symbol "$ROW" requires explicit package name at (eval 299) line 1.
mit der anderen Testversion ging das noch.
Gruß Michael
ich denke ich habe den fehler gefunden.
die neue version ist wieder hier: http://forum.fhem.de/index.php/topic,27218.msg203485.html#msg203485 (http://forum.fhem.de/index.php/topic,27218.msg203485.html#msg203485)
gruss
andre
läuft.
thx
Zitat von: Elektrolurch am 29 September 2014, 09:17:20
Der kommt von der Fritzbox. Um den änderbar zu machen, müsste ich ein weiteres Attribut einführen.
Wäre prima, wenn du das noch bei Gelegenheit einbauen könntest - Danke!
Jetzt zu meinem Hauptproblem. Ich weiß nicht wo ich anfange soll, da es etwas komplizierter ist das zu beschreiben.
Ich habe gerade von meinem Handy aus zu Hause angerufen. Der Anruft wird korrekt in der readingsGroup angezeigt, in der Spalte Dauer steht connected (beziehungsweise) mein Symbol. Ich nehme den Anruf nicht an und lege wieder auf, am Handy.
Die Anzeige in der readingsGroup aktualisiert sich nicht, das connected bleibt stehen!
Erst wenn ich F5 drücke (im Firefox) ändert sich die Anzeige und die Dauer wird korrekt angezeigt, in diesem Fall mit Null Sekunden wegen dem Nichtabhebens. Zur Sicherheit soeben noch ein zweites Mal getestet. Das Log hierzu, ist angefügt. Achtung es wird sehr umfangreich!
Zitat2014.09.29 20:27:16 5: FB_CALLMONITOR (FritzBox) - received data: 29.09.14 20:27:16;RING;0;0151xxxxxx;;POTS;
2014.09.29 20:27:16 4: FB_CALLMONITOR FritzBox using internal phonebook for reverse search of 0151xxxxxx
2014.09.29 20:27:16 4: FB_CALLMONITOR (FritzBox) - reverse search returned: Handy Papa
2014.09.29 20:27:16 5: Triggering FritzBox (7 changes)
2014.09.29 20:27:16 5: Notify loop for FritzBox event: ring
2014.09.29 20:27:16 5: BatterieStatus: not on any display, ignoring notify
2014.09.29 20:27:16 4: TM_Monitor: event: event arg: ring
2014.09.29 20:27:16 4: TM_Monitor: event: direction arg: incoming
2014.09.29 20:27:16 4: TM_Monitor: event: external_name arg: Handy Papa
2014.09.29 20:27:16 4: TM_Monitor: event: external_number arg: 0151xxxxxx
2014.09.29 20:27:16 4: TM_Monitor: event: external_connection arg: POTS
2014.09.29 20:27:16 4: TM_Monitor: event: internal_number arg:
2014.09.29 20:27:16 4: TM_Monitor: event: call_id arg: 8b5b78b05d8adee4731700516a19c3c5
2014.09.29 20:27:16 3: Anruf von Handy Papa 0151xxxxxx
2014.09.29 20:27:16 4: TM_Update: ID 8b5b78b05d8adee4731700516a19c3c5
2014.09.29 20:27:16 5: Triggering CallMon (24 changes)
2014.09.29 20:27:16 5: Notify loop for CallMon A4: incoming
2014.09.29 20:27:16 5: Triggering Anrufliste2 (1 changes)
2014.09.29 20:27:16 5: Notify loop for Anrufliste2 CallMon.A4: <svg class="icon phone_ring_in green" <snip> </svg>
2014.09.29 20:27:16 5: Triggering Anrufliste2 (1 changes)
2014.09.29 20:27:16 5: Notify loop for Anrufliste2 CallMon.B4: 20:11 29.09.2014
2014.09.29 20:27:16 4: eventTypes: readingsGroup Anrufliste2 CallMon.B4: 20:11 29.09.2014 -> CallMon.B4: .*:.* .*.*
2014.09.29 20:27:16 5: Triggering Anrufliste2 (1 changes)
2014.09.29 20:27:16 5: Notify loop for Anrufliste2 CallMon.C4: Handy Papa
2014.09.29 20:27:16 4: eventTypes: readingsGroup Anrufliste2 CallMon.C4: Handy Papa -> CallMon.C4: Handy Papa
2014.09.29 20:27:16 5: Triggering Anrufliste2 (1 changes)
2014.09.29 20:27:16 5: Notify loop for Anrufliste2 CallMon.D4: 0151xxxxxx
2014.09.29 20:27:16 4: eventTypes: readingsGroup Anrufliste2 CallMon.D4: 0151xxxxxx -> CallMon.D4: .*
2014.09.29 20:27:16 5: Triggering Anrufliste2 (1 changes)
2014.09.29 20:27:16 5: Notify loop for Anrufliste2 CallMon.E4: 0:32
2014.09.29 20:27:16 4: eventTypes: readingsGroup Anrufliste2 CallMon.E4: 0:32 -> CallMon.E4: .*:.*
2014.09.29 20:27:16 5: Triggering Anrufliste2 (1 changes)
2014.09.29 20:27:16 5: Notify loop for Anrufliste2 CallMon.A3: <svg class="icon phone_ring_in red" <snip> </svg>
2014.09.29 20:27:16 5: Triggering Anrufliste2 (1 changes)
2014.09.29 20:27:16 5: Notify loop for Anrufliste2 CallMon.B3: 20:18 29.09.2014
2014.09.29 20:27:16 4: eventTypes: readingsGroup Anrufliste2 CallMon.B3: 20:18 29.09.2014 -> CallMon.B3: .*:.* .*.*
2014.09.29 20:27:16 5: Triggering Anrufliste2 (1 changes)
2014.09.29 20:27:16 5: Notify loop for Anrufliste2 CallMon.C3: Handy Papa
2014.09.29 20:27:16 4: eventTypes: readingsGroup Anrufliste2 CallMon.C3: Handy Papa -> CallMon.C3: Handy Papa
2014.09.29 20:27:16 5: Triggering Anrufliste2 (1 changes)
2014.09.29 20:27:16 5: Notify loop for Anrufliste2 CallMon.D3: 0151xxxxxx
2014.09.29 20:27:16 4: eventTypes: readingsGroup Anrufliste2 CallMon.D3: 0151xxxxxx -> CallMon.D3: .*
2014.09.29 20:27:16 5: Triggering Anrufliste2 (1 changes)
2014.09.29 20:27:16 5: Notify loop for Anrufliste2 CallMon.E3: 0:00
2014.09.29 20:27:16 4: eventTypes: readingsGroup Anrufliste2 CallMon.E3: 0:00 -> CallMon.E3: .*:.*
2014.09.29 20:27:16 5: Triggering Anrufliste2 (1 changes)
2014.09.29 20:27:16 5: Notify loop for Anrufliste2 CallMon.A2: <svg class="icon phone_ring_in green" <snip> </svg>
2014.09.29 20:27:16 5: Triggering Anrufliste2 (1 changes)
2014.09.29 20:27:16 5: Notify loop for Anrufliste2 CallMon.B2: 20:18 29.09.2014
2014.09.29 20:27:16 4: eventTypes: readingsGroup Anrufliste2 CallMon.B2: 20:18 29.09.2014 -> CallMon.B2: .*:.* .*.*
2014.09.29 20:27:16 5: Triggering Anrufliste2 (1 changes)
2014.09.29 20:27:16 5: Notify loop for Anrufliste2 CallMon.C2: unknown
2014.09.29 20:27:16 4: eventTypes: readingsGroup Anrufliste2 CallMon.C2: unknown -> CallMon.C2: unknown
2014.09.29 20:27:16 5: Triggering Anrufliste2 (1 changes)
2014.09.29 20:27:16 5: Notify loop for Anrufliste2 CallMon.D2: unknown
2014.09.29 20:27:16 4: eventTypes: readingsGroup Anrufliste2 CallMon.D2: unknown -> CallMon.D2: unknown
2014.09.29 20:27:16 5: Triggering Anrufliste2 (1 changes)
2014.09.29 20:27:16 5: Notify loop for Anrufliste2 CallMon.E2: 0:20
2014.09.29 20:27:16 4: eventTypes: readingsGroup Anrufliste2 CallMon.E2: 0:20 -> CallMon.E2: .*:.*
2014.09.29 20:27:16 5: Triggering Anrufliste2 (1 changes)
2014.09.29 20:27:16 5: Notify loop for Anrufliste2 CallMon.A1: <svg class="icon phone_ring_in red" <snip> </svg>
2014.09.29 20:27:16 5: Triggering Anrufliste2 (1 changes)
2014.09.29 20:27:16 5: Notify loop for Anrufliste2 CallMon.B1: 20:21 29.09.2014
2014.09.29 20:27:16 4: eventTypes: readingsGroup Anrufliste2 CallMon.B1: 20:21 29.09.2014 -> CallMon.B1: .*:.* .*.*
2014.09.29 20:27:16 5: Triggering Anrufliste2 (1 changes)
2014.09.29 20:27:16 5: Notify loop for Anrufliste2 CallMon.C1: Handy Papa
2014.09.29 20:27:16 4: eventTypes: readingsGroup Anrufliste2 CallMon.C1: Handy Papa -> CallMon.C1: Handy Papa
2014.09.29 20:27:16 5: Triggering Anrufliste2 (1 changes)
2014.09.29 20:27:16 5: Notify loop for Anrufliste2 CallMon.D1: 0151xxxxxx
2014.09.29 20:27:16 4: eventTypes: readingsGroup Anrufliste2 CallMon.D1: 0151xxxxxx -> CallMon.D1: .*
2014.09.29 20:27:16 5: Triggering Anrufliste2 (1 changes)
2014.09.29 20:27:16 5: Notify loop for Anrufliste2 CallMon.E1: 0:00
2014.09.29 20:27:16 4: eventTypes: readingsGroup Anrufliste2 CallMon.E1: 0:00 -> CallMon.E1: .*:.*
2014.09.29 20:27:16 5: BatterieStatus: not on any display, ignoring notify
2014.09.29 20:27:16 4: eventTypes: TM CallMon A4: incoming -> A4: incoming
2014.09.29 20:27:16 4: eventTypes: TM CallMon B4: 20:11 29.09.2014 -> B4: .*:.* .*.*
2014.09.29 20:27:16 4: eventTypes: TM CallMon C4: Handy Papa -> C4: Handy Papa
2014.09.29 20:27:16 4: eventTypes: TM CallMon D4: 0151xxxxxx -> D4: .*
2014.09.29 20:27:16 4: eventTypes: TM CallMon E4: 0:32 -> E4: .*:.*
2014.09.29 20:27:16 4: eventTypes: TM CallMon F4: 67435b6be87e83d0751a6af0635a0f5b -> F4: 67435b6be87e83d0751a6af0635a0f5b
2014.09.29 20:27:16 4: eventTypes: TM CallMon A3: incoming_noconnect -> A3: incoming_noconnect
2014.09.29 20:27:16 4: eventTypes: TM CallMon B3: 20:18 29.09.2014 -> B3: .*:.* .*.*
2014.09.29 20:27:16 4: eventTypes: TM CallMon C3: Handy Papa -> C3: Handy Papa
2014.09.29 20:27:16 4: eventTypes: TM CallMon D3: 0151xxxxxx -> D3: .*
2014.09.29 20:27:16 4: eventTypes: TM CallMon E3: 0:00 -> E3: .*:.*
2014.09.29 20:27:16 4: eventTypes: TM CallMon F3: 10e350d9900a356f2c02088c04d7c14a -> F3: 10e350d9900a356f2c02088c04d7c14a
2014.09.29 20:27:16 4: eventTypes: TM CallMon A2: incoming -> A2: incoming
2014.09.29 20:27:16 4: eventTypes: TM CallMon B2: 20:18 29.09.2014 -> B2: .*:.* .*.*
2014.09.29 20:27:16 4: eventTypes: TM CallMon C2: unknown -> C2: unknown
2014.09.29 20:27:16 4: eventTypes: TM CallMon D2: unknown -> D2: unknown
2014.09.29 20:27:16 4: eventTypes: TM CallMon E2: 0:20 -> E2: .*:.*
2014.09.29 20:27:16 4: eventTypes: TM CallMon F2: 23a8789bb0edda54fa5906d695114d9c -> F2: 23a8789bb0edda54fa5906d695114d9c
2014.09.29 20:27:16 4: eventTypes: TM CallMon A1: incoming_noconnect -> A1: incoming_noconnect
2014.09.29 20:27:16 4: eventTypes: TM CallMon B1: 20:21 29.09.2014 -> B1: .*:.* .*.*
2014.09.29 20:27:16 4: eventTypes: TM CallMon C1: Handy Papa -> C1: Handy Papa
2014.09.29 20:27:16 4: eventTypes: TM CallMon D1: 0151xxxxxx -> D1: .*
2014.09.29 20:27:16 4: eventTypes: TM CallMon E1: 0:00 -> E1: .*:.*
2014.09.29 20:27:16 4: eventTypes: TM CallMon F1: a0da5b48bf790c69348600d3f25a5157 -> F1: a0da5b48bf790c69348600d3f25a5157
2014.09.29 20:27:16 5: Triggering CallMon (6 changes)
2014.09.29 20:27:16 5: Notify loop for CallMon A0: incoming
2014.09.29 20:27:16 5: Triggering Anrufliste2 (1 changes)
2014.09.29 20:27:16 5: Notify loop for Anrufliste2 CallMon.A0: <svg class="icon phone_ring_in green" <snip> </svg>
2014.09.29 20:27:16 5: Triggering Anrufliste2 (1 changes)
2014.09.29 20:27:16 5: Notify loop for Anrufliste2 CallMon.B0: 20:27 29.09.2014
2014.09.29 20:27:16 4: eventTypes: readingsGroup Anrufliste2 CallMon.B0: 20:27 29.09.2014 -> CallMon.B0: .*:.* .*.*
2014.09.29 20:27:16 5: Triggering Anrufliste2 (1 changes)
2014.09.29 20:27:16 5: Notify loop for Anrufliste2 CallMon.C0: Handy Papa
2014.09.29 20:27:16 4: eventTypes: readingsGroup Anrufliste2 CallMon.C0: Handy Papa -> CallMon.C0: Handy Papa
2014.09.29 20:27:16 5: Triggering Anrufliste2 (1 changes)
2014.09.29 20:27:16 5: Notify loop for Anrufliste2 CallMon.D0: 0151xxxxxx
2014.09.29 20:27:16 4: eventTypes: readingsGroup Anrufliste2 CallMon.D0: 0151xxxxxx -> CallMon.D0: .*
2014.09.29 20:27:17 5: Triggering Anrufliste2 (1 changes)
2014.09.29 20:27:17 5: Notify loop for Anrufliste2 CallMon.E0: <svg class="icon phone_ring yellow" <snip> </svg>
2014.09.29 20:27:17 5: BatterieStatus: not on any display, ignoring notify
2014.09.29 20:27:17 4: eventTypes: TM CallMon A0: incoming -> A0: incoming
2014.09.29 20:27:17 4: eventTypes: TM CallMon B0: 20:27 29.09.2014 -> B0: .*:.* .*.*
2014.09.29 20:27:17 4: eventTypes: TM CallMon C0: Handy Papa -> C0: Handy Papa
2014.09.29 20:27:17 4: eventTypes: TM CallMon D0: 0151xxxxxx -> D0: .*
2014.09.29 20:27:17 4: eventTypes: TM CallMon E0: connected -> E0: connected
2014.09.29 20:27:17 4: eventTypes: TM CallMon F0: 8b5b78b05d8adee4731700516a19c3c5 -> F0: 8b5b78b05d8adee4731700516a19c3c5
2014.09.29 20:27:17 4: eventTypes: FB_CALLMONITOR FritzBox event: ring -> event: ring
2014.09.29 20:27:17 4: eventTypes: FB_CALLMONITOR FritzBox direction: incoming -> direction: incoming
2014.09.29 20:27:17 4: eventTypes: FB_CALLMONITOR FritzBox external_name: Handy Papa -> external_name: Handy Papa
2014.09.29 20:27:17 4: eventTypes: FB_CALLMONITOR FritzBox external_number: 0151xxxxxx -> external_number: .*
2014.09.29 20:27:17 4: eventTypes: FB_CALLMONITOR FritzBox external_connection: POTS -> external_connection: POTS
2014.09.29 20:27:17 4: eventTypes: FB_CALLMONITOR FritzBox internal_number: -> internal_number:
2014.09.29 20:27:17 4: eventTypes: FB_CALLMONITOR FritzBox call_id: 8b5b78b05d8adee4731700516a19c3c5 -> call_id: 8b5b78b05d8adee4731700516a19c3c5
Nun noch ein Anruf vom Handy, dieses Mal mit Abheben bei der Gegenstelle. Während des Gesprächs steht in der Spalte Dauer wieder connected. Nach dem Auflegen bei der Gegenstelle, wird die Anzeige wieder nicht aktualisiert. Erst wenn ich F5 drücke. Umgehend verschwindet die Anzeige von connected und stattdessen wird mit 13 Sekunden angezeigt.
Das Log zum Zeitpunkt des Anrufs:
Zitat2014.09.29 20:37:14 5: FB_CALLMONITOR (FritzBox) - received data: 29.09.14 20:37:14;RING;0;0151xxxxxx;;POTS;
2014.09.29 20:37:14 4: FB_CALLMONITOR FritzBox using internal phonebook for reverse search of 0151xxxxxx
2014.09.29 20:37:14 4: FB_CALLMONITOR (FritzBox) - reverse search returned: Handy Papa
2014.09.29 20:37:14 5: Triggering FritzBox (7 changes)
2014.09.29 20:37:14 5: Notify loop for FritzBox event: ring
2014.09.29 20:37:14 5: BatterieStatus: not on any display, ignoring notify
2014.09.29 20:37:14 4: TM_Monitor: event: event arg: ring
2014.09.29 20:37:14 4: TM_Monitor: event: direction arg: incoming
2014.09.29 20:37:14 4: TM_Monitor: event: external_name arg: Handy Papa
2014.09.29 20:37:14 4: TM_Monitor: event: external_number arg: 0151xxxxxx
2014.09.29 20:37:14 4: TM_Monitor: event: external_connection arg: POTS
2014.09.29 20:37:14 4: TM_Monitor: event: internal_number arg:
2014.09.29 20:37:14 4: TM_Monitor: event: call_id arg: 22dd5824aae962652af5baa3fa3adee2
2014.09.29 20:37:14 3: Anruf von Handy Papa 0151xxxxxx
2014.09.29 20:37:14 4: TM_Update: ID 22dd5824aae962652af5baa3fa3adee2
2014.09.29 20:37:14 5: Triggering CallMon (24 changes)
2014.09.29 20:37:14 5: Notify loop for CallMon A4: incoming_noconnect
2014.09.29 20:37:14 5: Triggering Anrufliste2 (1 changes)
2014.09.29 20:37:14 5: Notify loop for Anrufliste2 CallMon.A4: <svg class="icon phone_ring_in red" <snip> </svg>
2014.09.29 20:37:14 5: Triggering Anrufliste2 (1 changes)
2014.09.29 20:37:14 5: Notify loop for Anrufliste2 CallMon.B4: 20:18 29.09.2014
2014.09.29 20:37:14 4: eventTypes: readingsGroup Anrufliste2 CallMon.B4: 20:18 29.09.2014 -> CallMon.B4: .*:.* .*.*
2014.09.29 20:37:14 5: Triggering Anrufliste2 (1 changes)
2014.09.29 20:37:14 5: Notify loop for Anrufliste2 CallMon.C4: Handy Papa
2014.09.29 20:37:14 4: eventTypes: readingsGroup Anrufliste2 CallMon.C4: Handy Papa -> CallMon.C4: Handy Papa
2014.09.29 20:37:14 5: Triggering Anrufliste2 (1 changes)
2014.09.29 20:37:14 5: Notify loop for Anrufliste2 CallMon.D4: 0151xxxxxx
2014.09.29 20:37:14 4: eventTypes: readingsGroup Anrufliste2 CallMon.D4: 0151xxxxxx -> CallMon.D4: .*
2014.09.29 20:37:14 5: Triggering Anrufliste2 (1 changes)
2014.09.29 20:37:14 5: Notify loop for Anrufliste2 CallMon.E4: 0:00
2014.09.29 20:37:14 4: eventTypes: readingsGroup Anrufliste2 CallMon.E4: 0:00 -> CallMon.E4: .*:.*
2014.09.29 20:37:14 5: Triggering Anrufliste2 (1 changes)
2014.09.29 20:37:14 5: Notify loop for Anrufliste2 CallMon.A3: <svg class="icon phone_ring_in green" <snip> </svg>
2014.09.29 20:37:14 5: Triggering Anrufliste2 (1 changes)
2014.09.29 20:37:14 5: Notify loop for Anrufliste2 CallMon.B3: 20:18 29.09.2014
2014.09.29 20:37:14 4: eventTypes: readingsGroup Anrufliste2 CallMon.B3: 20:18 29.09.2014 -> CallMon.B3: .*:.* .*.*
2014.09.29 20:37:14 5: Triggering Anrufliste2 (1 changes)
2014.09.29 20:37:14 5: Notify loop for Anrufliste2 CallMon.C3: unknown
2014.09.29 20:37:14 4: eventTypes: readingsGroup Anrufliste2 CallMon.C3: unknown -> CallMon.C3: unknown
2014.09.29 20:37:15 5: Triggering Anrufliste2 (1 changes)
2014.09.29 20:37:15 5: Notify loop for Anrufliste2 CallMon.D3: unknown
2014.09.29 20:37:15 4: eventTypes: readingsGroup Anrufliste2 CallMon.D3: unknown -> CallMon.D3: unknown
2014.09.29 20:37:15 5: Triggering Anrufliste2 (1 changes)
2014.09.29 20:37:15 5: Notify loop for Anrufliste2 CallMon.E3: 0:20
2014.09.29 20:37:15 4: eventTypes: readingsGroup Anrufliste2 CallMon.E3: 0:20 -> CallMon.E3: .*:.*
2014.09.29 20:37:15 5: Triggering Anrufliste2 (1 changes)
2014.09.29 20:37:15 5: Notify loop for Anrufliste2 CallMon.A2: <svg class="icon phone_ring_in red" <snip> </svg>
2014.09.29 20:37:15 5: Triggering Anrufliste2 (1 changes)
2014.09.29 20:37:15 5: Notify loop for Anrufliste2 CallMon.B2: 20:21 29.09.2014
2014.09.29 20:37:15 4: eventTypes: readingsGroup Anrufliste2 CallMon.B2: 20:21 29.09.2014 -> CallMon.B2: .*:.* .*.*
2014.09.29 20:37:15 5: Triggering Anrufliste2 (1 changes)
2014.09.29 20:37:15 5: Notify loop for Anrufliste2 CallMon.C2: Handy Papa
2014.09.29 20:37:15 4: eventTypes: readingsGroup Anrufliste2 CallMon.C2: Handy Papa -> CallMon.C2: Handy Papa
2014.09.29 20:37:15 5: Triggering Anrufliste2 (1 changes)
2014.09.29 20:37:15 5: Notify loop for Anrufliste2 CallMon.D2: 0151xxxxxx
2014.09.29 20:37:15 4: eventTypes: readingsGroup Anrufliste2 CallMon.D2: 0151xxxxxx -> CallMon.D2: .*
2014.09.29 20:37:15 5: Triggering Anrufliste2 (1 changes)
2014.09.29 20:37:15 5: Notify loop for Anrufliste2 CallMon.E2: 0:00
2014.09.29 20:37:15 4: eventTypes: readingsGroup Anrufliste2 CallMon.E2: 0:00 -> CallMon.E2: .*:.*
2014.09.29 20:37:15 5: Triggering Anrufliste2 (1 changes)
2014.09.29 20:37:15 5: Notify loop for Anrufliste2 CallMon.A1: <svg class="icon phone_ring_in red" <snip> </svg>
2014.09.29 20:37:15 5: Triggering Anrufliste2 (1 changes)
2014.09.29 20:37:15 5: Notify loop for Anrufliste2 CallMon.B1: 20:27 29.09.2014
2014.09.29 20:37:15 4: eventTypes: readingsGroup Anrufliste2 CallMon.B1: 20:27 29.09.2014 -> CallMon.B1: .*:.* .*.*
2014.09.29 20:37:15 5: Triggering Anrufliste2 (1 changes)
2014.09.29 20:37:15 5: Notify loop for Anrufliste2 CallMon.C1: Handy Papa
2014.09.29 20:37:15 4: eventTypes: readingsGroup Anrufliste2 CallMon.C1: Handy Papa -> CallMon.C1: Handy Papa
2014.09.29 20:37:15 5: Triggering Anrufliste2 (1 changes)
2014.09.29 20:37:15 5: Notify loop for Anrufliste2 CallMon.D1: 0151xxxxxx
2014.09.29 20:37:15 4: eventTypes: readingsGroup Anrufliste2 CallMon.D1: 0151xxxxxx -> CallMon.D1: .*
2014.09.29 20:37:15 5: Triggering Anrufliste2 (1 changes)
2014.09.29 20:37:15 5: Notify loop for Anrufliste2 CallMon.E1: 0:00
2014.09.29 20:37:15 4: eventTypes: readingsGroup Anrufliste2 CallMon.E1: 0:00 -> CallMon.E1: .*:.*
2014.09.29 20:37:15 5: BatterieStatus: not on any display, ignoring notify
2014.09.29 20:37:15 4: eventTypes: TM CallMon A4: incoming_noconnect -> A4: incoming_noconnect
2014.09.29 20:37:15 4: eventTypes: TM CallMon B4: 20:18 29.09.2014 -> B4: .*:.* .*.*
2014.09.29 20:37:15 4: eventTypes: TM CallMon C4: Handy Papa -> C4: Handy Papa
2014.09.29 20:37:15 4: eventTypes: TM CallMon D4: 0151xxxxxx -> D4: .*
2014.09.29 20:37:15 4: eventTypes: TM CallMon E4: 0:00 -> E4: .*:.*
2014.09.29 20:37:15 4: eventTypes: TM CallMon F4: 10e350d9900a356f2c02088c04d7c14a -> F4: 10e350d9900a356f2c02088c04d7c14a
2014.09.29 20:37:15 4: eventTypes: TM CallMon A3: incoming -> A3: incoming
2014.09.29 20:37:15 4: eventTypes: TM CallMon B3: 20:18 29.09.2014 -> B3: .*:.* .*.*
2014.09.29 20:37:15 4: eventTypes: TM CallMon C3: unknown -> C3: unknown
2014.09.29 20:37:15 4: eventTypes: TM CallMon D3: unknown -> D3: unknown
2014.09.29 20:37:15 4: eventTypes: TM CallMon E3: 0:20 -> E3: .*:.*
2014.09.29 20:37:15 4: eventTypes: TM CallMon F3: 23a8789bb0edda54fa5906d695114d9c -> F3: 23a8789bb0edda54fa5906d695114d9c
2014.09.29 20:37:15 4: eventTypes: TM CallMon A2: incoming_noconnect -> A2: incoming_noconnect
2014.09.29 20:37:15 4: eventTypes: TM CallMon B2: 20:21 29.09.2014 -> B2: .*:.* .*.*
2014.09.29 20:37:15 4: eventTypes: TM CallMon C2: Handy Papa -> C2: Handy Papa
2014.09.29 20:37:15 4: eventTypes: TM CallMon D2: 0151xxxxxx -> D2: .*
2014.09.29 20:37:15 4: eventTypes: TM CallMon E2: 0:00 -> E2: .*:.*
2014.09.29 20:37:15 4: eventTypes: TM CallMon F2: a0da5b48bf790c69348600d3f25a5157 -> F2: a0da5b48bf790c69348600d3f25a5157
2014.09.29 20:37:15 4: eventTypes: TM CallMon A1: incoming_noconnect -> A1: incoming_noconnect
2014.09.29 20:37:15 4: eventTypes: TM CallMon B1: 20:27 29.09.2014 -> B1: .*:.* .*.*
2014.09.29 20:37:15 4: eventTypes: TM CallMon C1: Handy Papa -> C1: Handy Papa
2014.09.29 20:37:15 4: eventTypes: TM CallMon D1: 0151xxxxxx -> D1: .*
2014.09.29 20:37:15 4: eventTypes: TM CallMon E1: 0:00 -> E1: .*:.*
2014.09.29 20:37:15 4: eventTypes: TM CallMon F1: 8b5b78b05d8adee4731700516a19c3c5 -> F1: 8b5b78b05d8adee4731700516a19c3c5
2014.09.29 20:37:15 5: Triggering CallMon (6 changes)
2014.09.29 20:37:15 5: Notify loop for CallMon A0: incoming
2014.09.29 20:37:15 5: Triggering Anrufliste2 (1 changes)
2014.09.29 20:37:15 5: Notify loop for Anrufliste2 CallMon.A0: <svg class="icon phone_ring_in green" <snip> </svg>
2014.09.29 20:37:15 5: Triggering Anrufliste2 (1 changes)
2014.09.29 20:37:15 5: Notify loop for Anrufliste2 CallMon.B0: 20:37 29.09.2014
2014.09.29 20:37:15 4: eventTypes: readingsGroup Anrufliste2 CallMon.B0: 20:37 29.09.2014 -> CallMon.B0: .*:.* .*.*
2014.09.29 20:37:15 5: Triggering Anrufliste2 (1 changes)
2014.09.29 20:37:15 5: Notify loop for Anrufliste2 CallMon.C0: Handy Papa
2014.09.29 20:37:15 4: eventTypes: readingsGroup Anrufliste2 CallMon.C0: Handy Papa -> CallMon.C0: Handy Papa
2014.09.29 20:37:15 5: Triggering Anrufliste2 (1 changes)
2014.09.29 20:37:15 5: Notify loop for Anrufliste2 CallMon.D0: 0151xxxxxx
2014.09.29 20:37:15 4: eventTypes: readingsGroup Anrufliste2 CallMon.D0: 0151xxxxxx -> CallMon.D0: .*
2014.09.29 20:37:15 5: Triggering Anrufliste2 (1 changes)
2014.09.29 20:37:15 5: Notify loop for Anrufliste2 CallMon.E0: <svg class="icon phone_ring yellow" <snip> </svg>
2014.09.29 20:37:15 5: BatterieStatus: not on any display, ignoring notify
2014.09.29 20:37:15 4: eventTypes: TM CallMon A0: incoming -> A0: incoming
2014.09.29 20:37:15 4: eventTypes: TM CallMon B0: 20:37 29.09.2014 -> B0: .*:.* .*.*
2014.09.29 20:37:15 4: eventTypes: TM CallMon C0: Handy Papa -> C0: Handy Papa
2014.09.29 20:37:15 4: eventTypes: TM CallMon D0: 0151xxxxxx -> D0: .*
2014.09.29 20:37:15 4: eventTypes: TM CallMon E0: connected -> E0: connected
2014.09.29 20:37:15 4: eventTypes: TM CallMon F0: 22dd5824aae962652af5baa3fa3adee2 -> F0: 22dd5824aae962652af5baa3fa3adee2
2014.09.29 20:37:15 4: eventTypes: FB_CALLMONITOR FritzBox event: ring -> event: ring
2014.09.29 20:37:15 4: eventTypes: FB_CALLMONITOR FritzBox direction: incoming -> direction: incoming
2014.09.29 20:37:15 4: eventTypes: FB_CALLMONITOR FritzBox external_name: Handy Papa -> external_name: Handy Papa
2014.09.29 20:37:15 4: eventTypes: FB_CALLMONITOR FritzBox external_number: 0151xxxxxx -> external_number: .*
2014.09.29 20:37:15 4: eventTypes: FB_CALLMONITOR FritzBox external_connection: POTS -> external_connection: POTS
2014.09.29 20:37:15 4: eventTypes: FB_CALLMONITOR FritzBox internal_number: -> internal_number:
2014.09.29 20:37:15 4: eventTypes: FB_CALLMONITOR FritzBox call_id: 22dd5824aae962652af5baa3fa3adee2 -> call_id: 22dd5824aae962652af5baa3fa3adee2
Es folgt noch das Log, nachdem ich aufgelegt habe:
Zitat2014.09.29 20:37:32 5: FB_CALLMONITOR (FritzBox) - received data: 29.09.14 20:37:32;DISCONNECT;0;13;
2014.09.29 20:37:32 5: Triggering FritzBox (9 changes)
2014.09.29 20:37:32 5: Notify loop for FritzBox event: disconnect
2014.09.29 20:37:32 5: BatterieStatus: not on any display, ignoring notify
2014.09.29 20:37:32 4: TM_Monitor: event: event arg: disconnect
2014.09.29 20:37:32 4: TM_Monitor: event: external_name arg: Handy Papa
2014.09.29 20:37:32 4: TM_Monitor: event: external_number arg: 0151xxxxxx
2014.09.29 20:37:32 4: TM_Monitor: event: internal_number arg:
2014.09.29 20:37:32 4: TM_Monitor: event: call_duration arg: 13
2014.09.29 20:37:32 4: TM_Monitor: event: direction arg: incoming
2014.09.29 20:37:32 4: TM_Monitor: event: internal_connection arg: FON1
2014.09.29 20:37:32 4: TM_Monitor: event: external_connection arg: POTS
2014.09.29 20:37:32 4: TM_Monitor: event: call_id arg: 22dd5824aae962652af5baa3fa3adee2
2014.09.29 20:37:32 4: TM_UpdateValue: updateingindex F0 E0 0:13
2014.09.29 20:37:32 4: eventTypes: FB_CALLMONITOR FritzBox event: disconnect -> event: disconnect
2014.09.29 20:37:32 4: eventTypes: FB_CALLMONITOR FritzBox external_name: Handy Papa -> external_name: Handy Papa
2014.09.29 20:37:32 4: eventTypes: FB_CALLMONITOR FritzBox external_number: 0151xxxxxx -> external_number: .*
2014.09.29 20:37:32 4: eventTypes: FB_CALLMONITOR FritzBox internal_number: -> internal_number:
2014.09.29 20:37:32 4: eventTypes: FB_CALLMONITOR FritzBox call_duration: 13 -> call_duration: .*
2014.09.29 20:37:32 4: eventTypes: FB_CALLMONITOR FritzBox direction: incoming -> direction: incoming
2014.09.29 20:37:32 4: eventTypes: FB_CALLMONITOR FritzBox internal_connection: FON1 -> internal_connection: FON1
2014.09.29 20:37:32 4: eventTypes: FB_CALLMONITOR FritzBox external_connection: POTS -> external_connection: POTS
2014.09.29 20:37:32 4: eventTypes: FB_CALLMONITOR FritzBox call_id: 22dd5824aae962652af5baa3fa3adee2 -> call_id: 22dd5824aae962652af5baa3fa3adee2
Der Vollständigkeithalber nochmal meine Konfiguration:
define CallMon TM FritzBox
attr CallMon disable 0
attr CallMon maxlines 4
attr CallMon monitor-type all
attr CallMon symbol-answering-machine AB
attr CallMon symbol-connected connected
attr CallMon symbol-incoming incoming
attr CallMon symbol-incoming-noconnect incoming_noconnect
attr CallMon symbol-outgoing outgoing
attr CallMon symbol-outgoing-noconnect outgoing_noconnect
attr CallMon update 0
define Anrufliste2 readingsGroup <Pos>,<Art>,<Datum>,<Name>,<Nummer>,<Dauer> CallMon:A0,B0,C0,D0,E0 CallMon:A1,B1,C1,D1,E1 CallMon:A2,B2,C2,D2,E2 CallMon:A3,B3,C3,D3,E3 CallMon:A4,B4,C4,D4,E4
attr Anrufliste2 mapping {'CallMon' => '{sprintf("%d.",$ROW-1);;}'}
attr Anrufliste2 nameStyle style="font-weight:bold"
attr Anrufliste2 style style="font-size:20px"
attr Anrufliste2 noheading 0
attr Anrufliste2 nolinks 1
attr Anrufliste2 nostate 1
attr Anrufliste2 notime 1
attr Anrufliste2 room Telefon2
attr Anrufliste2 valueIcon { 'A0.incoming' => 'phone_ring_in@green', 'A0.incoming_noconnect' => 'phone_ring_in@red', 'A0.outgoing' => 'phone_ring_out@green', 'A0.outgoing_noconnect' => 'phone_ring_out@red', 'A0.AB' => 'phone_answersing@blue', 'E0.connected' => 'phone_ring@yellow', 'A1.incoming' => 'phone_ring_in@green', 'A1.incoming_noconnect' => 'phone_ring_in@red', 'A1.outgoing' => 'phone_ring_out@green', 'A1.outgoing_noconnect' => 'phone_ring_out@red', 'A1.AB' => 'phone_answersing@blue', 'E1.connected' => 'phone_ring@yellow', 'A2.incoming' => 'phone_ring_in@green', 'A2.incoming_noconnect' => 'phone_ring_in@red', 'A2.outgoing' => 'phone_ring_out@green', 'A2.outgoing_noconnect' => 'phone_ring_out@red', 'A2.AB' => 'phone_answersing@blue', 'E2.connected' => 'phone_ring@yellow', 'A3.incoming' => 'phone_ring_in@green', 'A3.incoming_noconnect' => 'phone_ring_in@red', 'A3.outgoing' => 'phone_ring_out@green', 'A3.outgoing_noconnect' => 'phone_ring_out@red', 'A3.AB' => 'phone_answersing@blue', 'E3.connected' => 'phone_ring@yellow', 'A4.incoming' => 'phone_ring_in@green', 'A4.incoming_noconnect' => 'phone_ring_in@red', 'A4.outgoing' => 'phone_ring_out@green', 'A4.outgoing_noconnect' => 'phone_ring_out@red', 'A4.AB' => 'phone_answersing@blue', 'E4.connected' => 'phone_ring@yellow' }
Mir ist schon klar, dass eine Dauer in Sekunden/Minuten nur angezeigt werden kann, wenn tatsächlich ein Gespräch geführt wurde, aber so wie es bei mir jetzt ist, ist sowohl beo geführtem als auch bei nicht angenommenen Gespräch immer ein F5 notwendig.
Ich weiß dass das Posting sehr umfangreich geworden ist, die Logs sind aber wohl wichtig um den möglichen Fehler zu finden. Ich habe die aktuellste 99_MyUtilsTM.pm installiert genauso wie das heute veröffentlichte Update für die readingsGroup.
Danke und Grüße,
Michael
Nimm die Version 1.52 aus dem Beitrag 1, damit sollte das gefixed sein.
Das Problem trat nur auf, wenn das Attribut "update" = 0 war.
Elektrolurch
Zitat von: Elektrolurch am 30 September 2014, 09:54:29
Nimm die Version 1.52 aus dem Beitrag 1, damit sollte das gefixed sein.
Kannst Du bitte in der Datei die Versionierung richtig pflegen? Im aktuellen Attachment in Post 1 steht bei mir immer noch 1.4 und das macht es schwer zu erkennen, welche Version den wirklich momentan verwendet wird.
Update: Oh, ist nur in der 3. Zeile falsch, die History ist etwas weiter unten ja drin. Ist mir nur in meiner kleinen Shell nicht aufgefallen.
Danke
Zitat von: Elektrolurch am 30 September 2014, 09:54:29
Nimm die Version 1.52 aus dem Beitrag 1, damit sollte das gefixed sein.
Das Problem trat nur auf, wenn das Attribut "update" = 0 war.
Danke dir für das Update!
Habe die neue Version jetzt herunter geladen und in fhem eingespielt, nur nach wie vor bleibt in den Readings, in diesem Fall bei E0, das connected, nach dem Beenden eines Anrufs, stehen. Wie gesagt in den Readings und nicht in der readingsGroup. Das heißt dass möglicherweise jetzt die Anzeige korrekt funktioniert, nur die Aktualisierung in den Readings jetzt nicht mehr stattfindet.
Ah und während des Schreibens dieses Beitrags habe ich mir das Log angesehen. Dort steht:
Zitat
2014.09.30 21:10:58 5: FB_CALLMONITOR (FritzBox) - received data: 30.09.14 21:10:58;DISCONNECT;0;2767;
2014.09.30 21:10:58 1: TM_updateValue: not found col E id 0 val 46:07
Grüße,
Michael
Hallo,
habe auch zwei Fragen zum Modul
1.ich habe bei mir attr monitor-type auf missed-call eingestellt,es werden aber alle Anrufe angezeigt.Sollten nicht nur die Anrufe in Abwesenheit angezeigt werden oder habe ich was falsch verstanden?
2. wir telefonieren zwei Familien über eine Fritzbox.Ist es möglich den Monitor so einzustellen das nur die Anrufe einer Telefonummer Angezeigt werden?
Gruß,
Claudiu
Hallo Elektrolurch,
ich fürchte ich habe noch einen Bug gefunden.
Verwende die Version vom 30 September 2014, 09:50:55.
Beim Versuch einen Alias einzutragen kommt folgende Fehlermeldung.
TM_Attr: alias must at least one of: disable,maxlines,method-disconnect,method-ring,monitor-type,room,symbol-answering-machine,symbol-connected,symbol-incoming,symbol-incoming-noconnect,symbol-outgoing,symbol-outgoing-noconnect,update,verbose
Gruß
Bernd
Nachtrag:
Das gleiche Problem tritt bei Icon auf, das Icon wird nicht angenommen.
Zusätzlich habe ich jetzt nach setzten des room, zwei Einträge mit den Namen room in der attr Auswahlliste.
Auch verbose ist doppelt vorhanden, dieses ist aber nur als attr global gesetzt.
Kann das jemand bestätigen?
Vielleicht ist das nur bei mir so!
Gruß
Bernd
Hallo,
Zitat:
Habe die neue Version jetzt herunter geladen und in fhem eingespielt, nur nach wie vor bleibt in den Readings, in diesem Fall bei E0, das connected, nach dem Beenden eines Anrufs, stehen. Wie gesagt in den Readings und nicht in der readingsGroup. Das heißt dass möglicherweise jetzt die Anzeige korrekt funktioniert, nur die Aktualisierung in den Readings jetzt nicht mehr stattfindet.
Ah und während des Schreibens dieses Beitrags habe ich mir das Log angesehen. Dort steht:
Zitat
2014.09.30 21:10:58 5: FB_CALLMONITOR (FritzBox) - received data: 30.09.14 21:10:58;DISCONNECT;0;2767;
2014.09.30 21:10:58 1: TM_updateValue: not found col E id 0 val 46:07
Offensichtlich stimmt bei Dir irgendetwas mit der von der Fritzbox gelieferten callID nicht, denn der o.g. Eintrag besagt, dass diese für das disconnect nicht in der Tabelle gefunden werden kann.
Ich habe mal ein ltrim(rtrim($callID));
eingebaut und mit verbose 6 sollte man auch sehen, wie in der Spalte F die callID abgelegt wurde.
Merkwürdig ist auch der große Wert der callID. Bei mir ist die immer nur 0 oder 1.
monitor-type = missed-call
hatte ich nicht getestet. Stimmmt aber, war bei mir auch so. Konnte das Ganze allerdings nicht so ganz nachvollziehen, da ich die unterschiedlichen monitor-typen über regex abgefragt habe.
Habe das jetzt auf 'eq' und oder-Verknüpfung umgestellt. Ein ausgehender Anruf wurde jetzt jedenfalls nicht mehr bei missed-call angezeigt.
Den 'alias' habe ich noch eingefügt. Mir entzieht sich aber ein wenig die Sinnhaftigkeit, denn den TM lasse ich nirgends anzeigen, der hat ja nur den STATE initialized.
Eine zusätzliche Abfrage auf die interne Nummer könnte man noch einbauen, muss ich aber mal darüber nachdenken, ob das so einfach geht.
Werde oben in Beitrag 1 die Datei austauschen.
Eelektrolurch
Hallo Elektrolurch,
danke für die Umsetzung des 'alias'. Funktioniert!!!
ZitatDen 'alias' habe ich noch eingefügt. Mir entzieht sich aber ein wenig die Sinnhaftigkeit, denn den TM lasse ich nirgends anzeigen, der hat ja nur den STATE initialized.
Nutze den alias und das icon auch nur für die Übersichtlichkeit damit ich den Überblick behalte.
Solche Anzeigen sammele ich im Ordner "Schnittstelle"
Dein Tool finde ich super!
Gruß Bernd
Zitat von: Elektrolurch am 04 Oktober 2014, 13:15:42
Offensichtlich stimmt bei Dir irgendetwas mit der von der Fritzbox gelieferten callID nicht, denn der o.g. Eintrag besagt, dass diese für das disconnect nicht in der Tabelle gefunden werden kann.
Ich habe mal ein ltrim(rtrim($callID));
eingebaut und mit verbose 6 sollte man auch sehen, wie in der Spalte F die callID abgelegt wurde.
Merkwürdig ist auch der große Wert der callID. Bei mir ist die immer nur 0 oder 1.
Hi Eletrolurch,
Wie hier http://forum.fhem.de/index.php?topic=27218.msg203782.msg#203782 (http://forum.fhem.de/index.php?topic=27218.msg203782.msg#203782) in den von mir angefügten Protokollen bereits ersichtlich, hat die CallID einen ca. 32 Zeichen großen Schlüssel. Ich hab's nicht genau gezählt, sieht aber aus wie eine oftmals verwendet GUID.
Ich kann mir nicht vorstellen, dass es bei dir nur eine Null oder Eins ist. Wie kann man denn mit zwei Ziffern die Anrufe in fünf oder mehr Zeilen sonst unterscheiden? Oder meintest du möglicherweise dass deine CallID irgendwie binär aufgebaut ist?
Ich habe eine FritzBox 7390 mit neuester Firmware 6.20. Die neuste Version des Callmonitors habe ich noch nicht eingespielt und getestet. Werde ich demnächst nachholen.
Grüße,
Michael
Hallo Michael,
für das erste Gespräch ist bei mir die callID 0, wird gleichzeitig ein zweites geführt, ist sie 1 usw.
Es ist ja immer ein Block von events, der bspw. mit ring | call | connect | disconnect beginnt, danach die Werte für die Rufnummern, Namen usw. die ich erst einmal sammele und als letztes im Block die callID.
Mit der speichere ich dann die Werte um in einen hash, um sie bspw. bei 'disconnect' noch um die Anrufdauer zu ergänzen.
Verfolge mal im log einen Anruf und die drei Ereignisblöcke und schaue Dirr mal die callID an. Fpür ein und denselben Anruf ist die bei mir immer gleich und somit eindeutig.
Wenn nicht, kann das natürlich nicht korrekt für Anrufdauer und Symbol für verpasste Anrufe funktionieren.
FB 3970 V6.02 mit aktuellem FBCallMonitor.
Gruß
Elektrolurch
Hi Elektrolurch,
Sehr positives Feedback: derzeit funktioniert alles perfekt - schon ein paar Tage lang, seit dem letzten Update des Moduls. Danke nochmals von meiner Seite für das großartige Modul!
Gerne möchte ich aber nochmals meinen Wunsch für eine Erweiterung äußern, die ich letztens schon Mal angemeldet habe: Aufruf und somit Abspielen eines aufgezeichneten Gesprächs vom FritzBox Anrufbeantworter über die readingsGroup. Vielleicht läßt sich da noch etwas machen?
Danke und Grüße,
Michael
Hallo,
ZitatAufruf und somit Abspielen eines aufgezeichneten Gesprächs vom FritzBox Anrufbeantworter über die readingsGroup.
Da musst du aber evtl. noch justme mit ins Boot holen.
mWn ist er der Autor der readingsgroup.
Grüße
Ja, möglicherweise. Da kenne wohl noch nicht alle Möglichkeiten der readingsGroup.
Ich dachte jedoch, dass Elektrolurch den Pfad zur Wavedatei, wie sie auch die FritzBox in ihrer eigenen Oberfläche letztendlich zur Verfügung stellt, in einem neuen Readings einstellt, die ich dann in der readingsGroup "einfach" anklicken (downloaden) kann. Der "Pfad" muss natürlich ein klickbarer Link sein.
Das Abspielen der Datei muss dann halt noch das jeweilige OS übernehmen.
Michael
Ich hab bereits in dem älteren Thread "Callmonitor für Anfänger" gepostet und dort auch Hilfe von Puschel74 und Roaster erhalten und mein Callmonitor funktioniert einwandfrei und ich finde das Teil super. Leider konnte mir keiner bei meiner Frage weiter helfen und deshalb poste ich mal hier, vielleicht liest ja jemand mit, der an der Entwicklung des Callmonitors gearbeitet hat oder sich mit dem Callmonitur gut auskennt und mir weiter helfen kann.
zu meinem Problem:
Ich habe bei mir im Haus/Geschäft 6 Telefonamtsnummern. Wenn bei mir ein Anruf eingeht kann ich bei Abwesenheit im Nachherein auf dem Callmonitor nicht feststellen auf welcher Leitung (internal_number) der Anruf gekommen ist. Also auch nicht zurückrufen, ohne das ich dann nach Feierabend einen Kunden in der Leitung zu haben. Auch bei einem Anruf den ich sehe, kann man nicht feststellen auf welcher Leitung er reinkommt. Ist es möglich die Amtsnummer (internal_number) im Callmonitor bei ein-und ausgehenden Anrufen mit anzuzeigen?
Gruß aus Köln
Norbert
ein ähnliches Problem ergibt sich bei Rufweiterleitung über die FB (paralellruf).
Das ist auch erst im Nachhinein ermittelbar (oder aus Wissen).
Bernhard
Hallo,
@Elektrolurch
Hier http://forum.fhem.de/index.php/topic,19238.msg208778.html#msg208778 (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
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
Hallo,
tja schneller als die Polizei erlaubt.
Ich hab im anderen Beitrag (Callmonitor für Anfänger) Bescheid gegeben.
Grüße
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
@ 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
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
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
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
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
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 ;)
@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
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
@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
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.
ich wollte das TM jetzt mal probieren, bekomme aber die gleiche Fehlermeldung wie sie auch im #2 Posting von dir erklärt wird.
Du schreibst
ZitatDu hast doch:
define meineFritzBox FB_CALLMONITOR 192.168.10.1
ich habe es bisher so:
Zitatdefine Fritz_Box FB_CALLMONITOR 10.0.0.1:1012
Also sollte doch mein define so aussehen wenn ich das richtig verstanden habe
define myTM TM Fritz_Box
oder habe ich da was falsch verstanden..?
Edith:// kann mir einer dazu was schreiben was an Fritz_Box falsch ist
Das ist die Fehlermeldung
TM_Define: Fritzbox does not exists or ist not of type FB_CALLMONITOR
Please define myTM first
Hallo,
folgende Warnung kommt bei mir im Log
TM_Monitor: status: ring
2014.11.08 11:30:08.085 3: Anruf (ring) von Peter Pan 0123456789 callID: 1324s65dfsdf46sdf1sd
2014.11.08 11:30:08.086 1: PERL WARNING: Use of uninitialized value $linefilter in concatenation (.) or string at ./FHEM/99_myUtilsTM.pm line 226.
2014.11.08 11:30:18.982 3:
TM_Monitor: status: connect
2014.11.08 11:31:33.977 3:
TM_Monitor: status: disconnect
2014.11.08 12:10:10.876 3:
TM_Monitor: status: call
2014.11.08 12:10:10.878 1: PERL WARNING: Use of uninitialized value $linefilter in concatenation (.) or string at ./FHEM/99_myUtilsTM.pm line 226.
2014.11.08 12:10:17.321 3:
TM_Monitor: status: connect
2014.11.08 12:29:57.597 3:
TM_Monitor: status: disconnect
wurde ja schon eine Seite vorher hier im Thread erwähnt. Ich benutze keinen LineFilter. Ich habe gelesen dass in der nächsten Version die Perl Warnung nicht mehr auftritt.
Wird die neue Version immer hier im ersten Beitrag hochgeladen?
Wann kommt ungefähr die nächste Verison?
Kann man das Modul nicht direkt in Fhem hochladen?
Vielen Dank.
Bis jetzt habe ich nur noch ein paar "minor-fixes" und wenn dann bis zum Jahresende nichts gravierendes kommt, aktualisiere ich den ersten Beitrag wieder.
Tja, klar, könnte man auch ein offizielles fhem - Modul draus machen. Dann müsste ich mir erst eimal einen developer-account einrichten und dann ist noch das Problem mit "Hochladen" und html für die command-ref. Z.B. kann ich mit git nicht arbeiten, da dies mein Screenreader nicht unterstützt und für einen html-Editor gilt das gleiche. Anklickbare Ikonen sind leider mal für Screenreader häufig nicht selektierbar.
Da wäre es hilfreich, wenn sich von den "Altgedienten" ev. ein Mentor anbieten würde.
Gruß
Elektrolurch
Servus Elektrolurch,
Was den Entwicklerzugang angeht, da kann ich dich leider auch nicht unterstützen da ich dazu keine Möglichkeit habe.
Was ich jedoch sagen kann ist, dass der Monitor läuft und das schon seit einiger Zeit. Vor kurzem hat er sich, wie bereits weiter oben erwähnt, mal geziert, die Anrufdauer zu aktualisieren.
Vielleicht kannst du dir in einer späteren Erweiterung doch nochmal Gedanken machen, ob man nicht eine vorhandene Anrufbeantworter Aufzeichnung auch im Callmonitor anzeigen könnte, evtl. als eigenes Attribut.
Dabei wäre es wünschenswert, wenn man dann über eine readingsGroup auch noch Zugriff auf die entsprechende Datei in der Fritzbox haben könnte um den aufgezeichneten Anruf beispielsweise auf einem Tablet abspielen zu können.
Grüße,
Michael
Ich hätte dazu gern mal ein Problem.
Seitdem ich vorgestern endlich mal wieder einen gesamte FHEM Update gefahren habe,
gibt es bei einem Anruf jetzt folgende Warnings im Logfile:
2014.11.15 19:08:10 1: PERL WARNING: Use of uninitialized value $intCallDuration in string eq at ./FHEM/99_myUtilsTelefon.pm line 187.
2014.11.15 19:08:10 1: PERL WARNING: Use of uninitialized value $intCallDuration in string eq at ./FHEM/99_myUtilsTelefon.pm line 187.
2014.11.15 19:08:10 1: PERL WARNING: Use of uninitialized value $ab in string eq at ./FHEM/99_myUtilsTelefon.pm line 192.
2014.11.15 19:08:10 1: PERL WARNING: Use of uninitialized value $intCallDuration in string gt at ./FHEM/99_myUtilsTelefon.pm line 198.
2014.11.15 19:08:10 1: PERL WARNING: Use of uninitialized value $intCallDuration in string eq at ./FHEM/99_myUtilsTelefon.pm line 187.
2014.11.15 19:08:10 1: PERL WARNING: Use of uninitialized value $ab in string eq at ./FHEM/99_myUtilsTelefon.pm line 192.
2014.11.15 19:08:10 1: PERL WARNING: Use of uninitialized value $intCallDuration in string gt at ./FHEM/99_myUtilsTelefon.pm line 198.
2014.11.15 19:08:10 1: PERL WARNING: Use of uninitialized value $intCallDuration in string eq at ./FHEM/99_myUtilsTelefon.pm line 187.
2014.11.15 19:08:10 1: PERL WARNING: Use of uninitialized value $ab in string eq at ./FHEM/99_myUtilsTelefon.pm line 192.
2014.11.15 19:08:10 1: PERL WARNING: Use of uninitialized value $intCallDuration in string gt at ./FHEM/99_myUtilsTelefon.pm line 198.
2014.11.15 19:08:10 1: PERL WARNING: Use of uninitialized value $intCallDuration in string eq at ./FHEM/99_myUtilsTelefon.pm line 187.
2014.11.15 19:08:10 1: PERL WARNING: Use of uninitialized value $ab in string eq at ./FHEM/99_myUtilsTelefon.pm line 192.
2014.11.15 19:08:10 1: PERL WARNING: Use of uninitialized value $intCallDuration in string gt at ./FHEM/99_myUtilsTelefon.pm line 198.
2014.11.15 19:08:10 1: PERL WARNING: Use of uninitialized value $intCallDuration in string eq at ./FHEM/99_myUtilsTelefon.pm line 187.
2014.11.15 19:08:10 1: PERL WARNING: Use of uninitialized value $ab in string eq at ./FHEM/99_myUtilsTelefon.pm line 192.
2014.11.15 19:08:10 1: PERL WARNING: Use of uninitialized value $intCallDuration in string gt at ./FHEM/99_myUtilsTelefon.pm line 198.
2014.11.15 19:08:10 1: PERL WARNING: Use of uninitialized value $ab in string eq at ./FHEM/99_myUtilsTelefon.pm line 192.
Der Anruf selbst wird aber mit allen Parametern (IncomingIcon, Name,Nummer, Dauer) in der erzeugten Anrufliste korrekt eingetragen.
Kann man dagegen was machen?
Und wenn ja, wie?
Fehlen noch Angaben?
Gruß
Hallo Elektrolurch,
ich habe mich ein bisschen in Dein wirklich hervorragendes Modul eingemischt und folgende Ergänzungen vorgenommen:
icon, group und method-call in die $hash->{AttrList} aufgenommen
und den entsprechenden Aufruf method-call in if ($hash->{stat} eq "call") ... aufgenommen, da ich selber einen entsprechenden Aufruf benötige.
Für das bisher geleistete vielen Dank Jörg
Hallo zusammen,
ich habe heute auch mal das Modul installiert. Soweit klappt auch alles, allerdings bekomme ich es nicht hin, die Symbole anzeigen zu lassen. Irgendetwas mache ich offenbar noch falsch!
define FB7390 FB_CALLMONITOR 192.168.x.x
#
define CallMon TM FB7390
attr CallMon maxlines 4
attr CallMon monitor-type all
attr CallMon symbol-answering-machine AB
attr CallMon symbol-connected connected
attr CallMon symbol-incoming incoming
attr CallMon symbol-incoming-noconnect incoming_noconnect
attr CallMon symbol-outgoing outgoing
attr CallMon symbol-outgoing-noconnect outgoing_noconnect
attr CallMon update 2
#
#
define Anrufliste readingsGroup <Pos>,<Art>,<Datum>,<Name>,<Nummer>,<Dauer>\
CallMon:A0,B0,C0,D0,E0 CallMon:A1,B1,C1,D1,E1 CallMon:A2,B2,C2,D2,E2 CallMon:A3,B3,C3,D3,E3 CallMon:A4,B4,C4,D4,E4
attr Anrufliste mapping {'CallMon' => '{sprintf("%d.",$ROW-1);;;;}'}
attr Anrufliste nameStyle style="font-weight:bold"
attr Anrufliste noheading 0
attr Anrufliste valueIcon { 'A0.incoming' => 'phone_ring_in@green', 'A0.incoming_noconnect' => 'phone_ring_in@red', 'A0.outgoing' => 'phone_ring_out@green', 'A0.outgoing_noconnect' => 'phone_ring_out@red', 'A0.AB' => 'phone_answersing@blue', 'E0.connected' => 'phone_ring@yellow', 'A1.incoming' => 'phone_ring_in@green', 'A1.incoming_noconnect' => 'phone_ring_in@red', 'A1.outgoing' => 'phone_ring_out@green', 'A1.outgoing_noconnect' => 'phone_ring_out@red', 'A1.AB' => 'phone_answersing@blue', 'E1.connected' => 'phone_ring@yellow', 'A2.incoming' => 'phone_ring_in@green', 'A2.incoming_noconnect' => 'phone_ring_in@red', 'A2.outgoing' => 'phone_ring_out@green', 'A2.outgoing_noconnect' => 'phone_ring_out@red', 'A2.AB' => 'phone_answersing@blue', 'E2.connected' => 'phone_ring@yellow', 'A3.incoming' => 'phone_ring_in@green', 'A3.incoming_noconnect' => 'phone_ring_in@red', 'A3.outgoing' => 'phone_ring_out@green', 'A3.outgoing_noconnect' => 'phone_ring_out@red', 'A3.AB' => 'phone_answersing@blue', 'E3.connected' => 'phone_ring@yellow', 'A4.incoming' => 'phone_ring_in@green', 'A4.incoming_noconnect' => 'phone_ring_in@red', 'A4.outgoing' => 'phone_ring_out@green', 'A4.outgoing_noconnect' => 'phone_ring_out@red', 'A4.AB' => 'phone_answersing@blue', 'E4.connected' => 'phone_ring@yellow' }
Danke und Gruß,
Spartacus
Erst einmal vielen Dank für eure Arbeit an dem Modul. Echt klasse.
Ich habe in den letzten Tagen die beiden Treads zu dem Thema komplett durchgelesen. Callmonitor für Anfänger sowie diesen und habe die unterschiedlichen Versionen in mein FHEM eingebaut. Meist sogar mit positivem Ergebnis.
Aber nun habe cih entweder den Faden verloren oder irgend etwas nicht verstanden.
Bis gestern hatte ich die Version aus Callmonitor für Anfänger laufen, mit dem Ergebnis das die Liste nicht aktualisiert wurde und die Icons nicht richtig dargestellt wurden. Womit ich ja auch nicht alleine war.
Heute habe ich alles durch die Versionen aus diesem Tread ersetzt. Aber irgendwie finde ich nicht wie die eigene Vorwahl eingestellt werden muss und auch die Sache mit dem Telefonbuch der Fritz Box finde ich nicht. geschweige denn die Rückwertssuche.
Hier noch meine fhem.cfg
define FB7390 FB_CALLMONITOR 192.168.1.1
#
define CallMon TM FB7390
attr CallMon maxlines 4
attr CallMon monitor-type all
attr CallMon symbol-answering-machine AB
attr CallMon symbol-connected connected
attr CallMon symbol-incoming incoming
attr CallMon symbol-incoming-noconnect incoming_noconnect
attr CallMon symbol-outgoing outgoing
attr CallMon symbol-outgoing-noconnect outgoing_noconnect
attr CallMon update 2
#
#
define Anrufliste readingsGroup <Pos>,<Art>,<Datum>,<Name>,<Nummer>,<Dauer>\
CallMon:A0,B0,C0,D0,E0 CallMon:A1,B1,C1,D1,E1 CallMon:A2,B2,C2,D2,E2 CallMon:A3,B3,C3,D3,E3 CallMon:A4,B4,C4,D4,E4
attr Anrufliste mapping {'CallMon' => '{sprintf("%d.",$ROW-1);;;;}'}
attr Anrufliste nameStyle style="font-weight:bold"
attr Anrufliste noheading 0
attr Anrufliste room Telefon
attr Anrufliste valueIcon { 'A0.incoming' => 'phone_ring_in@green', 'A0.incoming_noconnect' => 'phone_ring_in@red', 'A0.outgoing' => 'phone_ring_out@green', 'A0.outgoing_noconnect' => 'phone_ring_out@red', 'A0.AB' => 'phone_answersing@blue', 'E0.connected' => 'phone_ring@yellow', 'A1.incoming' => 'phone_ring_in@green', 'A1.incoming_noconnect' => 'phone_ring_in@red', 'A1.outgoing' => 'phone_ring_out@green', 'A1.outgoing_noconnect' => 'phone_ring_out@red', 'A1.AB' => 'phone_answersing@blue', 'E1.connected' => 'phone_ring@yellow', 'A2.incoming' => 'phone_ring_in@green', 'A2.incoming_noconnect' => 'phone_ring_in@red', 'A2.outgoing' => 'phone_ring_out@green', 'A2.outgoing_noconnect' => 'phone_ring_out@red', 'A2.AB' => 'phone_answersing@blue', 'E2.connected' => 'phone_ring@yellow', 'A3.incoming' => 'phone_ring_in@green', 'A3.incoming_noconnect' => 'phone_ring_in@red', 'A3.outgoing' => 'phone_ring_out@green', 'A3.outgoing_noconnect' => 'phone_ring_out@red', 'A3.AB' => 'phone_answersing@blue', 'E3.connected' => 'phone_ring@yellow', 'A4.incoming' => 'phone_ring_in@green', 'A4.incoming_noconnect' => 'phone_ring_in@red', 'A4.outgoing' => 'phone_ring_out@green', 'A4.outgoing_noconnect' => 'phone_ring_out@red', 'A4.AB' => 'phone_answersing@blue', 'E4.connected' => 'phone_ring@yellow' }
Sorry, wenn ich hier total auf dem Schlauch stehe.
Vielen Dank schon einmal für eure Hilfe.
Hallo,
Zitat:
wie die eigene Vorwahl eingestellt werden muss und auch die Sache mit dem Telefonbuch der Fritz Box finde ich nicht. geschweige denn die Rückwertssuche.
Das ist so:
Das Modul FBCallMonitor realisiert die Generierung von Ereignissen, auf Grund von Anrufen auf Deiner FB. Da diese sequentiell hintereinander kommen, müssen diese irgendwo zwischengespeichert werden, um sie sinnvoll in einer Liste darstellen zu können.
Der erste Ansatz hierzu war von mir ein Stückchen Code für eine 99_myUtils..., das wurde dann auch in dem Beitrag "Callmonitor für Anfänger" weitergeführt.
Das Stückchen Code war quasi mein Anfängerwerk :-).
Aus dem Ganzen habe ich dann ein eigenes Modul gebaut (TM), bei dem man auch kein notify mehr auf das Objekt aus dem FBCallMonitor definieren muss und welches nun auch über Attribute konfigurierbar ist. Das TM ersetzt den alten Code....! Und beseitigt im PÜbrigen auch das Problem mit der Aktualisierung der Anzeigenliste.... das ist nämlich ein Problem in fhem, dass von notifys aus keine weiteren notifys mehr generiert werden können.....
Das was Du da einstellen möchtest, musst Du im FBCallMonitor Objekt machen, dass hat nichts direkt mit dem TM zu tun.
Gruß
Elektrolurch
Klar war ja eigentlich nahe liegend. Hätte mir auch auffallen können.
Habe es sofort eingesetzt und wen wunderts es funktioniert wieder alles.
Nochmals vielen Dank für das klasse Modul und natürlich die schnelle Hilfe
Hallo,
ich möchte die Spalte B mit der Uhrzeit/Datum (hh:mm tt.mm.jjjj) umformatieren.
Wenn ich nur zum Test die erste Zeile so definiere : attr Anrufliste2 valueFormat {'B0' => substr($VALUE, 6, 5)} erscheint zwar korrekt tt.mm aber im logfile habe ich 8 warnings, obwohl der String ja 16 Zeichen lang ist. jemand ne Idee ?
2015.01.12 21:26:27 1: PERL WARNING: substr outside of string at (eval 64436) line 1.
2015.01.12 21:26:27 1: PERL WARNING: substr outside of string at (eval 64440) line 1.
2015.01.12 21:26:27 1: PERL WARNING: substr outside of string at (eval 64445) line 1.
2015.01.12 21:26:27 1: PERL WARNING: substr outside of string at (eval 64446) line 1.
2015.01.12 21:26:27 1: PERL WARNING: substr outside of string at (eval 64450) line 1.
2015.01.12 21:26:27 1: PERL WARNING: substr outside of string at (eval 64451) line 1.
2015.01.12 21:26:27 1: PERL WARNING: substr outside of string at (eval 64455) line 1.
2015.01.12 21:26:27 1: PERL WARNING: substr outside of string at (eval 64460) line 1.
Hi,
Zitat von: cotecmania am 12 Januar 2015, 21:32:44
Hallo,
ich möchte die Spalte B mit der Uhrzeit/Datum (hh:mm tt.mm.jjjj) umformatieren.
Wenn ich nur zum Test die erste Zeile so definiere : attr Anrufliste2 valueFormat {'B0' => substr($VALUE, 6, 5)} erscheint zwar korrekt tt.mm aber im logfile habe ich 8 warnings, obwohl der String ja 16 Zeichen lang ist. jemand ne Idee ?
2015.01.12 21:26:27 1: PERL WARNING: substr outside of string at (eval 64436) line 1.
2015.01.12 21:26:27 1: PERL WARNING: substr outside of string at (eval 64440) line 1.
2015.01.12 21:26:27 1: PERL WARNING: substr outside of string at (eval 64445) line 1.
2015.01.12 21:26:27 1: PERL WARNING: substr outside of string at (eval 64446) line 1.
2015.01.12 21:26:27 1: PERL WARNING: substr outside of string at (eval 64450) line 1.
2015.01.12 21:26:27 1: PERL WARNING: substr outside of string at (eval 64451) line 1.
2015.01.12 21:26:27 1: PERL WARNING: substr outside of string at (eval 64455) line 1.
2015.01.12 21:26:27 1: PERL WARNING: substr outside of string at (eval 64460) line 1.
Habe es jetzt so gelöst :
attr Anrufliste2 valueFormat {if($READING =~ 'B[0-9]' && length($VALUE) > 10) {$VALUE = substr($VALUE, 6, 5).'-'.substr($VALUE, 0, 5)}}
Im Logfile ist übrigens noch ein störender Zeilenumbruch drin :
2015.01.15 09:23:56 3:
TM_Monitor: status: ring
Gruss
Joe
Hallo,
neues Problem : "method-ring" funktioniert nicht
2015.01.15 19:33:56 3:
TM_Monitor: status: ring
2015.01.15 19:33:56 3: Anruf (ring) von Bond James 007 callID: 0
2015.01.15 19:33:56 3: TM_Proc: action set DS_TabletDisplay on
2015.01.15 19:33:56 2: IT set ELRO_B on
Die IT-Steckdose schaltet nicht obwohl im Logfile korrekt drin.
Wenn ich diesen Befehl manuell in FHEM absetzte schaltet die Dose immer zuverlässig !
Gruss
Joe
Hallo
ich wollte das Thema auch mal testen leider bekomm ich die Meldung:
Subroutine myUtilsTelefon_Initialize redefined at ./FHEM/99_myUtilsTM.pm line 22, <$fh> line 7.
Subroutine SendSMS redefined at ./FHEM/99_myUtilsTM.pm line 34, <$fh> line 7.
Subroutine FBCall redefined at ./FHEM/99_myUtilsTM.pm line 46, <$fh> line 7.
Subroutine FBHangOn redefined at ./FHEM/99_myUtilsTM.pm line 61, <$fh> line 7.
Subroutine TelefonAktion redefined at ./FHEM/99_myUtilsTM.pm line 72, <$fh> line 7.
Subroutine EventZeit redefined at ./FHEM/99_myUtilsTM.pm line 96, <$fh> line 7.
Useless use of a variable in void context at ./FHEM/99_myUtilsTM.pm line 184, <$fh> line 7.
Subroutine TelefonMonitor redefined at ./FHEM/99_myUtilsTM.pm line 105, <$fh> line 7.
hab ich was falsch gemacht?
wollte es zuerst mit Callmonitor für Anfänger umsetzen und bin dann auf den Beitrag gestoßen ....
Du hast jetzt zwei verschiedenen Versionen.
Die 99_myUtilsTelefon brauchst Du nicht mehr. Für den TM ist nur die 99_myUtilsTM notwendig.
Auch das notify auf das FBCallMonitor - Objekt kannst Du löschen.
(siehe Beitrag 1 vom TM)
Elektrolurch
Ja stimmt jetzt tut´s
einfach nichts wenn man zuviel rum experimentiert :-)
DANKE!!!
Jetzt bekomm ich immer die Fehlermeldung:
Use of uninitialized value in concatenation (.) or string at ./FHEM/98_XmlList.pm line 56.
kann mir einer sagen an was das liegen kann??
am Telefonbuch?
Der TM verwendet das nicht:
./FHEM/98_XmlList.pm line 56.
komisch,
sobald ich das hier:
## CallMonitor
define CallMon TM Fritz_Box
attr CallMon maxlines 4
attr CallMon monitor-type all
attr CallMon room Telefon
attr CallMon symbol-answering-machine AB
attr CallMon symbol-connected connected
attr CallMon symbol-incoming incoming
attr CallMon symbol-incoming-noconnect incoming_noconnect
attr CallMon symbol-outgoing outgoing
attr CallMon symbol-outgoing-noconnect outgoing_noconnect
attr CallMon update 2
attr Anrufliste mapping {'CallMon' => '{sprintf("%d.",$ROW-1);;;;}'}
attr Anrufliste nameStyle style="font-weight:bold"
attr Anrufliste noheading 0
attr Anrufliste room Telefon
attr Anrufliste valueIcon { 'A0.incoming' => 'phone_ring_in@green', 'A0.incoming_noconnect' => 'phone_ring_in@red', 'A0.outgoing' => 'phone_ring_out@green', 'A0.outgoing_noconnect' => 'phone_ring_out@red', 'A0.AB' => 'phone_answersing@blue', 'E0.connected' => 'phone_ring@yellow', 'A1.incoming' => 'phone_ring_in@green', 'A1.incoming_noconnect' => 'phone_ring_in@red', 'A1.outgoing' => 'phone_ring_out@green', 'A1.outgoing_noconnect' => 'phone_ring_out@red', 'A1.AB' => 'phone_answersing@blue', 'E1.connected' => 'phone_ring@yellow', 'A2.incoming' => 'phone_ring_in@green', 'A2.incoming_noconnect' => 'phone_ring_in@red', 'A2.outgoing' => 'phone_ring_out@green', 'A2.outgoing_noconnect' => 'phone_ring_out@red', 'A2.AB' => 'phone_answersing@blue', 'E2.connected' => 'phone_ring@yellow', 'A3.incoming' => 'phone_ring_in@green', 'A3.incoming_noconnect' => 'phone_ring_in@red', 'A3.outgoing' => 'phone_ring_out@green', 'A3.outgoing_noconnect' => 'phone_ring_out@red', 'A3.AB' => 'phone_answersing@blue', 'E3.connected' => 'phone_ring@yellow', 'A4.incoming' => 'phone_ring_in@green', 'A4.incoming_noconnect' => 'phone_ring_in@red', 'A4.outgoing' => 'phone_ring_out@green', 'A4.outgoing_noconnect' => 'phone_ring_out@red', 'A4.AB' => 'phone_answersing@blue', 'E4.connected' => 'phone_ring@yellow' }
in meine fhem.cfg eintrage kommt der Fehler ...
Use of uninitialized value in concatenation (.) or string at ./FHEM/98_XmlList.pm line 56.
--> Hat sich erledigt hab mein debian und FHEM geupdatet jetzt geht alles ohne Fehler!!
Hab da noch ne Frage...
und zwar hab ich hier drei Anschlüsse Sip0 Sip1 und Sip2 (external_connection)
kann ich diese in verschiedene Aufruflisten anzeigen lassen?
Also das der Anschluss Sip0 in Anrufliste1 angezeigt wird und Sip1 in Anrufliste2, wenn ja wie? :-\
Hallo,
Zitat:
und zwar hab ich hier drei Anschlüsse Sip0 Sip1 und Sip2 (external_connection)
Jedem dieser Anschlüsse ist ja eine eigene Rufnummer zugeordnet, auf die kannst Du ja jeweils einen Filter setzen (Attribut).
Das Modul ist eigentlich so programmiert, dass es auch mehrere Instanzen zulassen sollte:
define Anrufliste1 TM <CallMonitorObjekt>
define Anrufliste2 TM <CallMonitorObjekt>
define Anrufliste3 TM <CallMonitorObjekt>
Dazu jeweils eine eigene rG und für jede Anrufliste das Attribut für den line-filter setzen...
Sollte eigentlich so funktionieren.
Elektrolurch
Ja top das klappt ich hab jetzt für jede rufnummer eine einen TM angelegt mit dem attr line-filter [Endnummer]
Find ich gut :-)
also für jede Nummer einen extra TelefonMonitor
und dann ne extra readingsGroup!!!
SUPER!!!!
Jetzt muss ich dem FHEM nur noch das kochen bei bringen :P
OT: Namensänderung für die Köchin ;)
Danke. Außer in perl herumhacken koche ich im übrigen auch gerne....
Erstmal vielen Dank an Elektrolurch für das Modul. :)
Ich habe mir jetzt den ganzen Thread durchgelesen und bekomme auch eine Anrufliste angezeigt. Allerdings bekomme ich statt der Icons nur die Bezeichnung der Icons angezeigt:
[img=]https://dl.dropboxusercontent.com/u/83276402/fhemTM.PNG[/img]
Hier mal der komplette Ausschnitt aus meiner fhem.cfg, sollte aber eigentlich genauso aussehen wie hier im Thread schon mehrfach erwähnt:
define fbCM FB_CALLMONITOR 192.168.178.1
attr fbCM fritzbox-remote-phonebook 1
attr fbCM group Anrufe
attr fbCM icon phone_call
attr fbCM local-area-code 02664
attr fbCM reverse-search phonebook,klicktel.de,dasoertliche.de
attr fbCM reverse-search-cache 1
attr fbCM room SYSTEM
define myTM TM fbCM
attr myTM group Anrufe
attr myTM icon phone_call
attr myTM maxlines 4
attr myTM room SYSTEM
attr myTM symbol-answering-machine AB
attr myTM symbol-connected connected
attr myTM symbol-incoming incoming
attr myTM symbol-incoming-noconnect incoming_noconnect
attr myTM symbol-outgoing outgoing
attr myTM symbol-outgoing-noconnect outgoing_noconnect
attr myTM update 2
define Anrufliste readingsGroup <Pos>,<Art>,<Datum>,<Name>,<Nummer>,<Dauer> myTM:A0,B0,C0,D0,E0 myTM:A1,B1,C1,D1,E1 myTM:A2,B2,C2,D2,E2 myTM:A3,B3,C3,D3,E3 myTM:A4,B4,C4,D4,E4
attr Anrufliste mapping {'CallMon' => '{sprintf("%d.",$ROW-1);;;;}'}
attr Anrufliste nameStyle style="font-weight:bold"
attr Anrufliste noheading 0
attr Anrufliste room Telefon
attr Anrufliste valueIcon { 'A0.incoming' => 'phone_ring_in@green', 'A0.incoming_noconnect' => 'phone_ring_in@red', 'A0.outgoing' => 'phone_ring_out@green', 'A0.outgoing_noconnect' => 'phone_ring_out@red', 'A0.AB' => 'phone_answersing@blue', 'E0.connected' => 'phone_ring@yellow', 'A1.incoming' => 'phone_ring_in@green', 'A1.incoming_noconnect' => 'phone_ring_in@red', 'A1.outgoing' => 'phone_ring_out@green', 'A1.outgoing_noconnect' => 'phone_ring_out@red', 'A1.AB' => 'phone_answersing@blue', 'E1.connected' => 'phone_ring@yellow', 'A2.incoming' => 'phone_ring_in@green', 'A2.incoming_noconnect' => 'phone_ring_in@red', 'A2.outgoing' => 'phone_ring_out@green', 'A2.outgoing_noconnect' => 'phone_ring_out@red', 'A2.AB' => 'phone_answersing@blue', 'E2.connected' => 'phone_ring@yellow', 'A3.incoming' => 'phone_ring_in@green', 'A3.incoming_noconnect' => 'phone_ring_in@red', 'A3.outgoing' => 'phone_ring_out@green', 'A3.outgoing_noconnect' => 'phone_ring_out@red', 'A3.AB' => 'phone_answersing@blue', 'E3.connected' => 'phone_ring@yellow', 'A4.incoming' => 'phone_ring_in@green', 'A4.incoming_noconnect' => 'phone_ring_in@red', 'A4.outgoing' => 'phone_ring_out@green', 'A4.outgoing_noconnect' => 'phone_ring_out@red', 'A4.AB' => 'phone_answersing@blue', 'E4.connected' => 'phone_ring@yellow' }
Die Icons liegen auch alle im Pfad, fhem ist aktuell.
steht das in deiner fhem.cfg..?
attr WEB iconPath fhemSVG:openautomation:default
Ja, die Pfade sind angegeben:
attr WEB iconPath fhemSVG:openautomation:default:weather
hast du mal "set WEB rereadicons" gemacht und fhem neugestartet
Ich habe bereits mehrfach ein "shutdown restart" gemacht. Außerdem wird mir ja z.B. das Icon "phone_call" für myTM angezeigt, nur eben nicht die Icons in der readingsGroup. Es gibt auch keine Fehlermeldungen.
Gesendet von meinem LIFETAB_S831X mit Tapatalk
hast du diese Attribute so gesetzt wie im Screenshot
ah hier ist der Fehler...! schau mal genau hin
attr Anrufliste mapping {'CallMon' => '{sprintf("%d.",$ROW-1);;;;}'}
Kann gerade am Tablet keinen Screenshot machen, aber die Attribute sind gleich.
Gesendet von meinem LIFETAB_S831X mit Tapatalk
Zitat von: mahowi am 04 Februar 2015, 00:27:06
Kann gerade am Tablet keinen Screenshot machen, aber die Attribute sind gleich.
du hast einen Fehler drin "myTM" muss da rein bei "CallMon" weil du es umbenannt hast
Argh, daß hatte ich übersehen. Vielen Dank! :-)
Allerdings ändert das leider nichts am Ergebnis. Nach Ändern des Mappings und Neustart von fhem sieht die Liste immer noch gleich aus. Text statt Icons. :-(
Jetzt geh ich erstmal ins Bett und guck mir das morgen nochmal an.
Gesendet von meinem LIFETAB_S831X mit Tapatalk
vor dem Neustart auch ein Save gemacht, das sollte eigentlich der Fehler gewesen sein, schau nochmal nach dem mapping
Das hat mir ja jetzt keine Ruhe gelassen.
Ich hatte zwar fhem neu gestartet, die Readings aber zwischendurch nicht gelöscht. Nach einem set myTM clear
und Testanruf werden auch die Icons angezeigt. :)
Ich musste nur noch das "'E0.connected' => 'phone_ring@yellow'" bis "'E4.connected' => 'phone_ring@yellow'" rausschmeissen, sonst hatte ich gelbe Icons statt der Anrufdauer in der Liste.
Vielen Dank für die Hilfe und gute Nacht! :D
Zitat von: mahowi am 04 Februar 2015, 01:07:57
Ich musste nur noch das "'E0.connected' => 'phone_ring@yellow'" bis "'E4.connected' => 'phone_ring@yellow'" rausschmeissen, sonst hatte ich gelbe Icons statt der Anrufdauer in der Liste.
na bitte, die gelben Icons gehen aber nach dem du telefoniert hast weg und dann erscheint die Dauer ;)
Ich habe versucht für den TM ein devStateIcon zu setzen, allerdings klappt das nicht!
TM_Attr: devStateIcon must at least one of: alias,disable,group,icon,line-filter,maxlines,method-call,method-connect,method-disconnect,method-ring,monitor-type,room,symbol-answering-machine,symbol-connected,symbol-incoming,symbol-incoming-noconnect,symbol-outgoing,symbol-outgoing-noconnect,update,verbose
Kann man das noch einbauen?
das geht bei mir auch nicht, hatte ich mal probiert... kam die gleiche Meldung
devStateIcon repräsentiert verschiedene Ikons, entsprechend des state des devices.
TM ist aber nur "initalized", macht also keinen Sinn.
-> icon gibt es aber als Attribut.
Elektrolurch
P.S.: Außer in der everthing - Übersicht sehe ich auch keine Notwendigkeit den TM als Objekt irgendwo anzuzeigen.
Hallo,
die LOG-Eintraege haben meines Erachtens Zeilenumbrüche drin. Das ist ein Schönheitsfehler ...
Wäre schön wenn das behoben werden könnte
2015.02.04 10:41:18 3:
TM_Monitor: status: call
2015.02.04 10:41:34 3:
TM_Monitor: status: connect
2015.02.04 10:42:27 3:
TM_Monitor: status: disconnect
Gruss
Joe
Zitat von: cotecmania am 04 Februar 2015, 21:24:06
Hallo,
die LOG-Eintraege haben meines Erachtens Zeilenumbrüche drin. Das ist ein Schönheitsfehler ...
Wäre schön wenn das behoben werden könnte
2015.02.04 10:41:18 3:
TM_Monitor: status: call
2015.02.04 10:41:34 3:
TM_Monitor: status: connect
2015.02.04 10:42:27 3:
TM_Monitor: status: disconnect
Gruss
Joe
Ist mir auch eben aufgefalllen! Weiterhin wäre es schön, wenn der TM nicht so geschwätzig (im Loglevel 3) wäre ;D
Im Modul in Zeile 473: Log3($name,3,"\nTM_Monitor: status: $arg"); das \n löschen. Dann ist auch der Zeilenumbruch weg.
Grüße Jörg
Wen die "Geschwätzigkeit" stört setzt einfach attr <mein TM> verbose 2. Damit wird das Logging nur für den TM eine Stufe runter gesetzt.
Noch ne Kleinigkeit! Ich habe eben die FB neu gestartet und einige Warnungen im Logfile gefunden!
2015.02.05 11:08:36.937 1: fritz.box:1012 disconnected, waiting to reappear (FritzBoxMonitor)
2015.02.05 11:08:36.945 1: PERL WARNING: Use of uninitialized value $string in substitution (s///) at ./FHEM/99_Utils.pm line 144.
2015.02.05 11:08:36.945 3: stacktrace:
2015.02.05 11:08:36.947 3: main::__ANON__ called by ./FHEM/99_Utils.pm (144)
2015.02.05 11:08:36.948 3: main::ltrim called by ./FHEM/99_myUtilsTM.pm (479)
2015.02.05 11:08:36.949 3: main::TM_Monitor called by ./FHEM/99_myUtilsTM.pm (422)
2015.02.05 11:08:36.951 3: main::TM_Notify called by fhem.pl (2966)
2015.02.05 11:08:36.951 3: main::CallFn called by fhem.pl (2889)
2015.02.05 11:08:36.953 3: main::DoTrigger called by FHEM/DevIo.pm (401)
2015.02.05 11:08:36.954 3: main::DevIo_Disconnected called by FHEM/DevIo.pm (60)
2015.02.05 11:08:36.955 3: main::DevIo_SimpleRead called by ./FHEM/72_FB_CALLMONITOR.pm (197)
2015.02.05 11:08:36.956 3: main::FB_CALLMONITOR_Read called by fhem.pl (2966)
2015.02.05 11:08:36.957 3: main::CallFn called by fhem.pl (608)
2015.02.05 11:08:36.959 1: PERL WARNING: Use of uninitialized value $string in substitution (s///) at ./FHEM/99_Utils.pm line 156.
2015.02.05 11:08:36.959 3: stacktrace:
2015.02.05 11:08:36.961 3: main::__ANON__ called by ./FHEM/99_Utils.pm (156)
2015.02.05 11:08:36.964 3: main::rtrim called by ./FHEM/99_myUtilsTM.pm (479)
2015.02.05 11:08:36.965 3: main::TM_Monitor called by ./FHEM/99_myUtilsTM.pm (422)
2015.02.05 11:08:36.965 3: main::TM_Notify called by fhem.pl (2966)
2015.02.05 11:08:36.966 3: main::CallFn called by fhem.pl (2889)
2015.02.05 11:08:36.967 3: main::DoTrigger called by FHEM/DevIo.pm (401)
2015.02.05 11:08:36.967 3: main::DevIo_Disconnected called by FHEM/DevIo.pm (60)
2015.02.05 11:08:36.968 3: main::DevIo_SimpleRead called by ./FHEM/72_FB_CALLMONITOR.pm (197)
2015.02.05 11:08:36.969 3: main::FB_CALLMONITOR_Read called by fhem.pl (2966)
2015.02.05 11:08:36.970 3: main::CallFn called by fhem.pl (608)
2015.02.05 11:08:36.971 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/99_myUtilsTM.pm line 489.
2015.02.05 11:08:36.971 3: stacktrace:
2015.02.05 11:08:36.972 3: main::__ANON__ called by ./FHEM/99_myUtilsTM.pm (489)
2015.02.05 11:08:36.973 3: main::TM_Monitor called by ./FHEM/99_myUtilsTM.pm (422)
2015.02.05 11:08:36.974 3: main::TM_Notify called by fhem.pl (2966)
2015.02.05 11:08:36.975 3: main::CallFn called by fhem.pl (2889)
2015.02.05 11:08:36.975 3: main::DoTrigger called by FHEM/DevIo.pm (401)
2015.02.05 11:08:36.976 3: main::DevIo_Disconnected called by FHEM/DevIo.pm (60)
2015.02.05 11:08:36.977 3: main::DevIo_SimpleRead called by ./FHEM/72_FB_CALLMONITOR.pm (197)
2015.02.05 11:08:36.977 3: main::FB_CALLMONITOR_Read called by fhem.pl (2966)
2015.02.05 11:08:36.978 3: main::CallFn called by fhem.pl (608)
2015.02.05 11:08:36.979 1: PERL WARNING: Use of uninitialized value $arg in concatenation (.) or string at ./FHEM/99_myUtilsTM.pm line 489.
2015.02.05 11:08:36.980 3: stacktrace:
2015.02.05 11:08:36.981 3: main::__ANON__ called by ./FHEM/99_myUtilsTM.pm (489)
2015.02.05 11:08:36.981 3: main::TM_Monitor called by ./FHEM/99_myUtilsTM.pm (422)
2015.02.05 11:08:36.981 3: main::TM_Notify called by fhem.pl (2966)
2015.02.05 11:08:36.982 3: main::CallFn called by fhem.pl (2889)
2015.02.05 11:08:36.982 3: main::DoTrigger called by FHEM/DevIo.pm (401)
2015.02.05 11:08:36.982 3: main::DevIo_Disconnected called by FHEM/DevIo.pm (60)
2015.02.05 11:08:36.982 3: main::DevIo_SimpleRead called by ./FHEM/72_FB_CALLMONITOR.pm (197)
2015.02.05 11:08:36.983 3: main::FB_CALLMONITOR_Read called by fhem.pl (2966)
2015.02.05 11:08:36.983 3: main::CallFn called by fhem.pl (608)
2015.02.05 11:08:36.983 1: PERL WARNING: Use of uninitialized value in string eq at ./FHEM/99_myUtilsTM.pm line 494.
2015.02.05 11:08:36.983 3: stacktrace:
2015.02.05 11:08:36.984 3: main::__ANON__ called by ./FHEM/99_myUtilsTM.pm (494)
2015.02.05 11:08:36.984 3: main::TM_Monitor called by ./FHEM/99_myUtilsTM.pm (422)
2015.02.05 11:08:36.984 3: main::TM_Notify called by fhem.pl (2966)
2015.02.05 11:08:36.984 3: main::CallFn called by fhem.pl (2889)
2015.02.05 11:08:36.984 3: main::DoTrigger called by FHEM/DevIo.pm (401)
2015.02.05 11:08:36.985 3: main::DevIo_Disconnected called by FHEM/DevIo.pm (60)
2015.02.05 11:08:36.985 3: main::DevIo_SimpleRead called by ./FHEM/72_FB_CALLMONITOR.pm (197)
2015.02.05 11:08:36.985 3: main::FB_CALLMONITOR_Read called by fhem.pl (2966)
2015.02.05 11:08:36.987 3: main::CallFn called by fhem.pl (608)
2015.02.05 11:08:36.988 1: PERL WARNING: Use of uninitialized value in string eq at ./FHEM/99_myUtilsTM.pm line 520.
2015.02.05 11:08:36.988 3: stacktrace:
2015.02.05 11:08:36.989 3: main::__ANON__ called by ./FHEM/99_myUtilsTM.pm (520)
2015.02.05 11:08:36.990 3: main::TM_Monitor called by ./FHEM/99_myUtilsTM.pm (422)
2015.02.05 11:08:36.991 3: main::TM_Notify called by fhem.pl (2966)
2015.02.05 11:08:36.991 3: main::CallFn called by fhem.pl (2889)
2015.02.05 11:08:36.992 3: main::DoTrigger called by FHEM/DevIo.pm (401)
2015.02.05 11:08:36.993 3: main::DevIo_Disconnected called by FHEM/DevIo.pm (60)
2015.02.05 11:08:36.994 3: main::DevIo_SimpleRead called by ./FHEM/72_FB_CALLMONITOR.pm (197)
2015.02.05 11:08:36.994 3: main::FB_CALLMONITOR_Read called by fhem.pl (2966)
2015.02.05 11:08:36.995 3: main::CallFn called by fhem.pl (608)
2015.02.05 11:08:36.996 1: PERL WARNING: Use of uninitialized value in string eq at ./FHEM/99_myUtilsTM.pm line 560.
2015.02.05 11:08:36.997 3: stacktrace:
2015.02.05 11:08:36.998 3: main::__ANON__ called by ./FHEM/99_myUtilsTM.pm (560)
2015.02.05 11:08:36.998 3: main::TM_Monitor called by ./FHEM/99_myUtilsTM.pm (422)
2015.02.05 11:08:36.999 3: main::TM_Notify called by fhem.pl (2966)
2015.02.05 11:08:37.000 3: main::CallFn called by fhem.pl (2889)
2015.02.05 11:08:37.001 3: main::DoTrigger called by FHEM/DevIo.pm (401)
2015.02.05 11:08:37.001 3: main::DevIo_Disconnected called by FHEM/DevIo.pm (60)
2015.02.05 11:08:37.002 3: main::DevIo_SimpleRead called by ./FHEM/72_FB_CALLMONITOR.pm (197)
2015.02.05 11:08:37.003 3: main::FB_CALLMONITOR_Read called by fhem.pl (2966)
2015.02.05 11:08:37.004 3: main::CallFn called by fhem.pl (608)
2015.02.05 11:08:37.005 1: PERL WARNING: Use of uninitialized value in string eq at ./FHEM/99_myUtilsTM.pm line 586.
2015.02.05 11:08:37.005 3: stacktrace:
2015.02.05 11:08:37.006 3: main::__ANON__ called by ./FHEM/99_myUtilsTM.pm (586)
2015.02.05 11:08:37.007 3: main::TM_Monitor called by ./FHEM/99_myUtilsTM.pm (422)
2015.02.05 11:08:37.008 3: main::TM_Notify called by fhem.pl (2966)
2015.02.05 11:08:37.009 3: main::CallFn called by fhem.pl (2889)
2015.02.05 11:08:37.009 3: main::DoTrigger called by FHEM/DevIo.pm (401)
2015.02.05 11:08:37.010 3: main::DevIo_Disconnected called by FHEM/DevIo.pm (60)
2015.02.05 11:08:37.011 3: main::DevIo_SimpleRead called by ./FHEM/72_FB_CALLMONITOR.pm (197)
2015.02.05 11:08:37.011 3: main::FB_CALLMONITOR_Read called by fhem.pl (2966)
2015.02.05 11:08:37.012 3: main::CallFn called by fhem.pl (608)
Nur ein Schönheitsfehler, aber wenn man es leicht fixen kann würde ich mich freuen.
Danke im Voraus!
In welches Modul gehören die Readings (An-Gn)? TM oder FB_CALLMONITOR. Im TM gibt es keine Readings nach einem Call?!
Code:
Internals:
DEF EG.bu.NN.FritzBoxCall.dis
FB EG.bu.NN.FritzBoxCall.dis
NAME TelefonMonitor
NR 934
NTFY_ORDER 50-TelefonMonitor
STATE initialized
TYPE TM
stat disconnect
Readings:
2015-02-05 09:41:17 monitor-type all
Mem:
call_duration 00:00
device VVV
direction outgoing
external_connection SIP4
external_name XXX
external_number YYYY
internal_connection DECT_1
internal_number ZZZ
Attributes:
maxlines 11
monitor-type all
update 2
Hätte mal ne generelle Frage:
Was kann der TM mehr als der "normale" FB_callmonitor?
Grüße
Michael
Das steht im ersten und den folgenden Posts dieses Themas.
Danke Marwin78.
Zitat:
Was kann der TM mehr als der "normale" FB_callmonitor?
Der CallMonitor generiert / bzw. leitet aus der Fritzbox die Anrufinformationen sequentiell ab, also Nummer wählen, verbinden, telefonieren auflegen usw.
Aber das kann auf einer modernen TK-Anlage auch mehrfach und parallel passieren. Der TM packt das ganze logisch zusammen und stellt Dir eine komfortable (so hoffe ich) Schnittstelle für eine Darstellung in einer oder mehreren readingsGroup zur Verfügung. Über Attribute kannst Du das ganze konfigurieren.
Ok. So was hier im Forum ist mal keine Fast-Food - Software, da gehört schon auch ein bisschen eigene Initiative dazu, um zu verstehen, was die vielen engagierten Leute hier so tun und dazu bei steuern.
Elektrolurch
:)
Hallo Zusammen,
ich habe 2 Fragen :
1.) Wäre es technisch möglich, bei einem Klick auf das Lautsprechersymbol die Aufnahme des ABs (Fritzboxfile) abzuspielen ?
Man muesste den Namen der Datei wissen und einen Link dahinter verstecken ?
2.) Was muesste ich tun, um die Anrufdauer aus meiner Tabelle zu entfernen
Gruss
Joe
Zitat von: cotecmania am 14 Februar 2015, 14:58:27
2.) Was muesste ich tun, um die Anrufdauer aus meiner Tabelle zu entfernen
Wenn du die Anzeigeliste der Readingsgroup meinst...!
Die ganzen E-Readings (E0-E4) aus der Readingsgroup nehmen
Hallo zusammen,
ich wollte mir in meiner Abwesenheit von Zuhause, Name und Nummer eines Festnetzanrufer auf das Smartphone pushen lassen. Dafür verwendete ich die "Globalen Variablen" %EXTERNAL_NUMBER für die Rufnummer und %EXTERNAL_NAME für Anrufernamen. Der Name funktionierte, die Nummer leider nicht.
Meine Fehlersuche ergaben zwei Tippfehler in der 99_myUtilsTM.pm (1.61 v. 06.12.2014) die im Anfangspost anhängt.
Dort steht in Zeile 445
$proc =~s/\%EXTERNAL_NUBER/$external_number/g;
muss heißen
$proc =~s/\%EXTERNAL_NUMBER/$external_number/g;
In Zeile 439 ist am Zeilenende ein Komma statt Semikolon.
Ansonsten vielen Dank an Elektrolurch für das schöne Modul, hat mir schon oft Freude bereitet.
Gruß
Andi
Sorry Bildchen vergessen.
Kann man wohl nicht mehr beim Editieren nachholen.
Hallo,
bin durch Zufall auf dieses Modul gestossen. Läuft einwandfrei.
Da ich wenig Ahnung von Programmierung habe bitte ich um Hilfestellung.
Möchte in die Readingsgroup nocht die "internal-connection" aufnehmen, um dort anzeigen zu lassen an welchem
internen Telefon das Gespräch angenommen wurde.
Mit diesem Beispiel komm ich nicht zurecht:
# 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'};
Kann mir jemand helfen?
Danke
Bernd
Hallo,
ich benutze für Dein Problem das Attribut line-filter:
attr myTM line-filter {'1234567' => 'Familie', '1234567' => 'Sohn1', '1234567' => 'Sohn2', '1234567' => 'Büro', '1234567' => 'Schwiegermutter', '1234567' => 'AB', '1234567' => 'Notruf', '1234567' => 'Sonstige', '1234567' => 'Fax', '1234567' => 'Notruf2'}
weiterhin habe ich dann eine readingsgroup erstellt:
define Anrufer readingsGroup <Pos>,<Art>,<Datum>,<Name>,<Nummer>,<An>,<Dauer> myTM:A0,B0,C0,D0,G0,E0 myTM:A1,B1,C1,D1,G1,E1 myTM:A2,B2,C2,D2,G2,E2 myTM:A3,B3,C3,D3,G3,E3 myTM:A4,B4,C4,D4,G4,E4
attr Anrufer mapping {'myTM' => '{sprintf("%d.",$ROW-1);;}'}
attr Anrufer noheading 0
attr Anrufer nolinks 1
attr Anrufer nostate 1
attr Anrufer notime 1
attr Anrufer room Telefon
attr Anrufer valueIcon {'A0.callout' => 'callout', 'A0.callin' => 'callin','A0.callinfailed' => 'callinfailed','A0.calloutfailed' => 'calloutfailed','A1.callout' => 'callout', 'A1.callin' => 'callin','A1.callinfailed' => 'callinfailed','A1.calloutfailed' => 'calloutfailed', 'A2.callout' => 'callout', 'A2.callin' => 'callin','A2.callinfailed' => 'callinfailed','A2.calloutfailed' => 'calloutfailed', 'A3.callout' => 'callout', 'A3.callin' => 'callin','A3.callinfailed' => 'callinfailed','A3.calloutfailed' => 'calloutfailed', 'A4.callout' => 'callout', 'A4.callin' => 'callin','A4.callinfailed' => 'callinfailed','A4.calloutfailed' => 'calloutfailed'}
Grüße Jörg
Danke erstmal für deinen Lösungsvorschlag. Wenn ich das richtig sehe wird der line-filter für die "interne-nummer" also die Amtnummer 1,2,3...
genutzt.
Mein Problem ist, die internal-connection (also DECT1,Dect2.....) anzeigen zu lassen.
Ist nicht wichtig aber ich beiß mich da ganz gerne mal fest.
Geht es nicht über die "99_myUtilsTM.pm" das dort noch eine weitere Gruppe "H" evtl. angelegt wird mit der dann die
internal-connection übergeben wird?
Hallo,
Ok, habe Dich glaube ich nun verstanden. Ich habe die Readings um 'H' erweitert, in dem nun die INTERNAL-CONNECTION abgelegt wird. Damit steht nun für die readingsGroup <Pos>,<Art>,<Datum>,<Name>,<Nummer>,<An>,<Dauer>,<Internal Connection> myTM:A0,B0,C0,D0,G0,E0,H0 usw. zur Verfügung.
Grüße Jörg
@Jo
hab die geänderte "99_myUtilsTM.pm" geladen, die readingsgroup um "H"... erweitert und FHEM neu gestartet.
Leider wird die internal_connection nicht angezeigt:
Readings
A0
incoming_noconnect
2015-03-05 17:32:58
B0
17:32 05.03.2015
2015-03-05 17:32:47
C0
unknown
2015-03-05 17:32:47
D0
xxxxxxxxxx
2015-03-05 17:32:47
E0
00:00
2015-03-05 17:32:58
F0
0
2015-03-05 17:32:47
G0
xxxx
2015-03-05 17:32:47
monitor-type
all
2015-03-05 17:30:00
Was mach ich falsch?
Mach mal ein clear. Was nicht funktioniert ist ein Anruf über eine ISDN Telefonanlage. Anrufe über Telefone, die direkt an der FB hängen generieren ein G0...
Grüße Jörg
Grüße Jörg
Gesendet von iPhone mit Tapatalk
Clear hatte ich auch gemacht. Die Anrufe hab ich über mein Handy durchgeführt.
Weitere Info:
Hab gerade über "Festnetz" von AMT A nach AMT B angerufen. Und siehe da: DECT wird angezeigt.
Wenn ich vom Handy anrufe erfolgt keine Anzeige.
Ist keine ISDN-Anlage?!
Provider o2 mit 3 Amtnummern via Internet
Dann muss ich im Modul oder im 72_FB_CALLMONITOR mal sehen, was bei einem Handyanruf übergeben wird.
Grüße Jörg
Gesendet von iPhone mit Tapatalk
@Jörg
Es funktioniert !!
Nachdem ich nochmals CLEAR, den RASPI komplett runtergefahren und wieder gestartet habe UND
die Fritz-Box neu gestartet habe!
Warum auch immer.
Danke für deine Hilfe!
Bernd
Hallo ich habe folgendes ausprobiert.
die fhem.cfg
define fbCM FB_CALLMONITOR 192.168.178.1
attr fbCM fritzbox-remote-phonebook 1
attr fbCM group Anrufe
attr fbCM icon phone_call
attr fbCM local-area-code 02664
attr fbCM reverse-search phonebook,klicktel.de,dasoertliche.de
attr fbCM reverse-search-cache 1
attr fbCM room SYSTEM
define myTM TM fbCM
attr myTM group Anrufe
attr myTM icon phone_call
attr myTM maxlines 4
attr myTM room SYSTEM
attr myTM symbol-answering-machine AB
attr myTM symbol-connected connected
attr myTM symbol-incoming incoming
attr myTM symbol-incoming-noconnect incoming_noconnect
attr myTM symbol-outgoing outgoing
attr myTM symbol-outgoing-noconnect outgoing_noconnect
attr myTM update 2
define Anrufliste readingsGroup <Pos>,<Art>,<Datum>,<Name>,<Nummer>,<Dauer> myTM:A0,B0,C0,D0,E0 myTM:A1,B1,C1,D1,E1 myTM:A2,B2,C2,D2,E2 myTM:A3,B3,C3,D3,E3 myTM:A4,B4,C4,D4,E4
attr Anrufliste mapping {'CallMon' => '{sprintf("%d.",$ROW-1);;;;}'}
attr Anrufliste nameStyle style="font-weight:bold"
attr Anrufliste noheading 0
attr Anrufliste room Telefon
attr Anrufliste valueIcon { 'A0.incoming' => 'phone_ring_in@green', 'A0.incoming_noconnect' => 'phone_ring_in@red', 'A0.outgoing' => 'phone_ring_out@green', 'A0.outgoing_noconnect' => 'phone_ring_out@red', 'A0.AB' => 'phone_answersing@blue', 'E0.connected' => 'phone_ring@yellow', 'A1.incoming' => 'phone_ring_in@green', 'A1.incoming_noconnect' => 'phone_ring_in@red', 'A1.outgoing' => 'phone_ring_out@green', 'A1.outgoing_noconnect' => 'phone_ring_out@red', 'A1.AB' => 'phone_answersing@blue', 'E1.connected' => 'phone_ring@yellow', 'A2.incoming' => 'phone_ring_in@green', 'A2.incoming_noconnect' => 'phone_ring_in@red', 'A2.outgoing' => 'phone_ring_out@green', 'A2.outgoing_noconnect' => 'phone_ring_out@red', 'A2.AB' => 'phone_answersing@blue', 'E2.connected' => 'phone_ring@yellow', 'A3.incoming' => 'phone_ring_in@green', 'A3.incoming_noconnect' => 'phone_ring_in@red', 'A3.outgoing' => 'phone_ring_out@green', 'A3.outgoing_noconnect' => 'phone_ring_out@red', 'A3.AB' => 'phone_answersing@blue', 'E3.connected' => 'phone_ring@yellow', 'A4.incoming' => 'phone_ring_in@green', 'A4.incoming_noconnect' => 'phone_ring_in@red', 'A4.outgoing' => 'phone_ring_out@green', 'A4.outgoing_noconnect' => 'phone_ring_out@red', 'A4.AB' => 'phone_answersing@blue', 'E4.connected' => 'phone_ring@yellow' }
und die 99_myUtilsTM.pm
################################## # $Id: 99_myUtilsTM.pm 2014-8 by Elektrolurch $
# Version 1.61 05/03/2015 by Elektrolurch (JoWiemann)
# change: call information are stored in a hash, not in an array
# callID: can be anything
# answering_machine_1 is mapped to 'AB
# anwering_machine_2..n is mapped to AB2 ...ABn
# table is now updated during ring | call and not after disconnect
#
# events are handled:
# 1. ring | call
# 2. external_number | external | name ... -> stored in hash
# 3. call_id stores infos in %callmem{$callID} and updates table
#
# disconnect
# call_duration updates the appropriate line in table
#
# Version 1.2 now as Modul TM
# define myTM TM <fritzbox>
# <fristzbox must be of type FB_CALLMONITOR
# a seperate notify is now not necessary!
# for visualization:
# values of calls are stored in A0..E0,...A4...E4
# use a readingsGroup for displaying values
# version 1.3
# methods for using calls to event "ring" and disconnect"
# acdepts perl-code and calls to fhem
# attr myTM method-ring set Lampe1 on
# attr myTM1 method-disconnect {TelefonAction($EXTERNAL_NAME);;;;}
# intern values for fhem: %EXTERNAL_NAME, %EXTERNAL_NUMBER, %INTERNAL_NUMBER
# for perl
# $EXTERNAL_NAME, $EXTERNAL_NUMBER, $INTERNAL_NUMBER
# Version 1.4
# added: set command
# set name [clear | monitor-type [all|incoming|outgoing|missed-call|all-after-disconnect]]
# Version 1.51 (26.10.2014 18:00)
# Bugfix: AB in TM_SetValue -> requires eq not ==
# attrList added room
# Version 1.52 30.09.2014
# Bugfix: TM_UpdateValue: readingsSingleUpdate -> $update replaced 1
# Version 1.53
# alias to attrlist added
# Version 1.54
# smaller corrections handling monitor-type = 'missed-call'
# 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
#
# Version 1.61
# added:
# INTERNAL_CONNECTION is stored in H0...H4
# added: method-connect
package main;
use strict;
use warnings;
use POSIX;
use FritzBoxUtils;
##################################
# Symbols for call direction
# used as defaults, if appropiate Attributes are not defined
my $incoming = '->';
my $outgoing = '<-';
my $incoming_noconnect = '0>';
my $outgoing_noconnect = '<0';
my $ab = 'AB';
my $connected = 'con';
# there is a poosible bug in updating scrren
# values are experimentell
# update = 0, use readingsBulkUpdate for all lines
# update = 1 use readingsSingleUpdate for first line
# update = 2 use readingsSingleUpdate for all lines, causes a lot of traffic in fhem!!!
my $update = 0;
# 0...4 = 5 lines
# dont forget adapting definition of your readingsGroup!
my $maxlines = 4;
my $monitor_type = 'all';
# end default attributes
##################################
my %sets = (
'monitor-type' => 'all,incoming,outgoing,missed-call,all-after-disconnect',
'clear' => ''
);
sub myUtilsTM_Initialize($$)
{
TM_Initialize($_[0],$_[1]);
}
################################################################
sub TM_Initialize($$)
{
$modules{TM}{LOADED} = 1;
my $hash = $modules{TM};
$hash->{SetFn} = "TM_Set";
$hash->{DefFn} = "TM_Define";
$hash->{UndefFn} = "TM_Undef";
$hash->{NotifyFn} = "TM_Notify";
$hash->{AttrFn} = "TM_Attr";
$hash->{AttrList} = "alias disable:0,1 line-filter maxlines monitor-type:all,incoming,outgoing,missed-call,all-after-disconnect room icon group symbol-incoming symbol-incoming-noconnect symbol-outgoing symbol-outgoing-noconnect symbol-answering-machine symbol-connected update:0,1,2 method-connect method-call method-ring method-disconnect verbose:0,1,2,3,4,5,6";
return undef;
} # end sub TM_initialize
########################
sub TM_Define($$)
{
my ($hash, $def) = @_;
my @a = split("[ \t][ \t]*", $def);
my $retval = undef;
my $name = $a[0];
if(!defined($a[2]))
{
$retval = "TM_define: you must specify a FB_CallMonitor object for using TM";
return $retval;
}
if (!defined($defs{$a[2]}) || ($defs{$a[2]}->{TYPE} ne 'FB_CALLMONITOR'))
{
$retval = "TM_Define: $a[2] does not exists or ist not of type FB_CALLMONITOR";
return $retval;
}
$hash->{FB} = $a[2];
$hash->{STATE} = 'initialized';
return undef;
} # end sub TM_Define
###############################
sub TM_Undef($$)
{
my ( $hash, $arg ) = @_;
return undef;
} # end TM_Undef
################################
sub TM_Set($@)
{
my ($hash, @a) = @_;
my ($name,$rd,$val) = @a;
return "\"TM set\" no set value specified" if((int(@a) < 2) && ($rd ne '?'));
$val = 0 if ($rd eq '?');
if ($rd eq 'monitor-type')
{
my %clist;
foreach my $k (split(',',$sets{$rd})) {$clist{$k} = ''; }
return "TM set monitor-type: $val must be of ".$sets{$rd} if(!exists($clist{$val}));
readingsSingleUpdate($hash,$rd,$val,1);
$attr{$name}{'monitor-type'} = $val;
}
elsif ($rd eq 'clear')
{
my ($i,$j);
my $rhash = $hash->{READINGS};
for ($i=AttrVal($name,"maxlines",$maxlines); $i>=0; $i--)
{
foreach $j ('A'..'H')
{
delete($rhash->{$j.$i});
} # end j
} # end i
} # if clear
else
{
my @cList;
foreach my $k (sort keys %sets)
{
my $opts = undef;
$opts = $sets{$k};
if (defined($opts))
{
push(@cList,$k . ':' . $opts);
}
else
{
push (@cList,$k);
}
} # end foreach
return "Unknown argument $rd, choose one of " . join(" ", @cList);
} # end else -> error handling
return undef;
} # end sub TM_set
############################
sub TM_Store($)
{
my ($hash) = @_;
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time());
my $ID = $hash->{callID};
my $name = $hash->{NAME};
my $linefilter = AttrVal($name,'line-filter',undef);
Log3($name,4,"TM_Store: linefilter $linefilter");
if($linefilter)
{
if( $linefilter =~ m/^{.*}$/ )
{
my $lf = eval $linefilter;
if( $lf &&(ref($lf) eq 'HASH'))
{
$linefilter = $lf ;
Log3($name,4,"TM_Store: filter as hash: $linefilter");
} # if valid
else
{
Log3($name,2,"TM_Store: $linefilter (line-filter) is not a valid hash");
$linefilter = undef;
} # not a valid hash
}
else # list of filters
{
my %lines;
foreach my $l ( split("[ \t,][ \t,]*",$linefilter)) {$lines{$l} = $l; }
$linefilter = \%lines;
Log3($name,4,"TM_Store: linefilter as list $linefilter");
} # list of lines
} # if $linefilter
# linefilter is undef, if no filter or
# hash contains valid internal_number
my $innumber = $hash->{mem}{"internal_number"};
if(!defined($linefilter) || exists($linefilter->{$innumber}))
{
$hash->{callmem}{$ID} = {};
my $rhash = $hash->{callmem}{$ID};
my $dir = ($hash->{mem}{"direction"} eq 'incoming') ? AttrVal($name,'symbol-incoming',$incoming) : AttrVal($name,'symbol-outgoing',$outgoing);
$rhash->{A} = $dir;
$rhash->{B} = sprintf("%02d:%02d %02d.%02d.%4d",$hour,$min,$mday,($mon+1),($year+1900));
$rhash->{C} = $hash->{mem}{"external_name"};
$rhash->{D} = $hash->{mem}{"external_number"};
$rhash->{E} = (defined($hash->{mem}{"call_duration"})) ? $hash->{mem}{"call_duration"}: AttrVal($name,'symbol-connected',$connected);
# default call_duration, set after disconnect
$rhash->{F} = $ID;
if($linefilter)
{
$rhash->{G} = $linefilter->{$innumber};
}
else
{
$rhash->{G} = $innumber;
}
$rhash->{H} = $hash->{mem}{"internal_connection"};
delete($hash->{mem});
return 1; # valid call
} # if linefilter
else
{
Log3($name,3,"TM_Store: calls from $innumber are not store, not in attr line-filter");
delete($hash->{mem});
return undef;
} # if filtered out
return undef;
} # end sub TM_Store
############################################
sub TM_UpdateTable($)
{
my ($hash) = @_;
my $name = $hash->{NAME};
my $ID = $hash->{callID};
my $up = AttrVal($name,'update',$update);
Log3($name,4,"TM_UpdateTable: ID $ID");
# shiften der alten Inhalte
my $tt;
my ($i,$j);
my $rhash = $hash->{READINGS};
if($up <= 1)
{
readingsBeginUpdate($hash);
for ($i=AttrVal($name,"maxlines",$maxlines); $i>0; $i--)
{
foreach $j ('A'..'H')
{
my $k = $j . ($i-1);
$tt = undef;
$tt = $rhash->{$k}{VAL} if(exists($rhash->{$k}));
next if(!defined($tt));
readingsBulkUpdate($hash,$j.$i,$tt,1);
} # end j
} # end i
readingsEndUpdate($hash,1);
} # if BulkUpdate
else
{
for ($i=AttrVal($name,"maxlines",$maxlines); $i>0; $i--)
{
foreach $j ('A'..'H')
{
my $k = $j . ($i-1);
$tt = undef;
$tt = $rhash->{$k}{VAL} if(exists($rhash->{$k}));
next if(!defined($tt));
readingsSingleUpdate($hash,$j.$i,$tt,1);
} # end j
} # end i
} # else SingleUpdate
# first line with new values
if($up> 0)
{
foreach my $k ('A'..'H')
{
readingsSingleUpdate($hash,$k."0",$hash->{callmem}{$ID}{$k},1);
}
} # if SingleUpdate
else
{
readingsBeginUpdate($hash);
foreach my $k ('A'..'H')
{
readingsBulkUpdate($hash,$k."0",$hash->{callmem}{$ID}{$k},1);
}
readingsEndUpdate($hash, 1);
} # if BulkUpdate
return undef;
} # end TM_update
###########################
sub TM_UpdateValue($$$$)
{
my ($hash,$ID,$col,$val) = @_;
my $name = $hash->{NAME};
my $rhash = $hash->{READINGS};
Log3($name,5,"TM_UpdateValue: args callID: $ID col: $col val: $val");
for (my $i = 0; $i < AttrVal($name,'maxlines',$maxlines);$i++)
{
my $rdid= 'F' . $i; # stored callID
Log3($name,6,"TM_updateValue: in loop i: $i callID: $rhash->{$rdid}{VAL}");
if(defined($rhash->{$rdid}) && $rhash->{$rdid}{VAL} eq $ID)
{
my $rd = $col . $i;
Log3($name,4,"TM_UpdateValue: updateingindex $rdid $rd $val");
if(($col eq 'A') && ($val eq '0'))
{
$val = ($rhash->{$rd}{VAL} eq AttrVal($name,'symbol-incoming',$incoming)) ? AttrVal($name,'symbol-incoming-noconnect',$incoming_noconnect) : AttrVal($name,'symbol-outgoing-noconnect',$outgoing_noconnect);
}
readingsSingleUpdate($hash,$rd,$val,1);
return undef;
} # if update
} # end i
Log3($name,1,"TM_updateValue: not found col $col id $ID val $val");
return "TM_UpdateValue: Error - ID not found";
} # end TM_UpdateValue
##########################
sub TM_Notify($$)
{
my ($hash,$d) = @_;
return "TM_notify: hash not defiened" if (!defined($hash));
my $name = $hash->{NAME};
return undef if(AttrVal($name, "disable", undef));
# Abbruch wenn das Attribut disable gesetzt
my $fb = $d->{NAME};
if ($fb ne $hash->{FB})
{
return undef;
} # if not fb
my $rhash = $d->{CHANGED};
my $max = int(@$rhash);
# number of events / changes
for (my $i = 0; $i < $max; $i++)
{
my $s = $d->{CHANGED}[$i];
TM_Monitor($hash,$s);
} # end for i
} # end sub TM_Notify
#####################################
sub TM_Proc($$)
{
my ($hash,$proc) = @_;
my $name = $hash->{NAME};
my $external_name = $hash->{mem}{'external_name'};
my $external_number = $hash->{mem}{'external_number'};
my $internal_number = $hash->{mem}{'internal_number'};
my $internal_connection = $hash->{mem}{'internal_connection'};
my $EXTERNAL_NAME = $external_name;
my $EXTERNAL_NUMBER = $external_number;
my $INTERNAL_NUMBER = $internal_number;
my $INTERNAL_CONNECTION = $internal_connection;
$proc =~s/\%EXTERNAL_NAME/$external_name/g;
$proc =~s/\%EXTERNAL_NUMBER/$external_number/g;
$proc =~s/\%INTERNAL_NUMBER/$internal_number/g;
$proc =~s/\%INTERNAL_CONNECTION/$internal_connection/g;
if($proc =~ m/^{.*}$/)
{
$proc =~s/\$EXTERNAL_NAME/"$external_name"/g;
$proc =~s/\$EXTERNAL_NUMBER/"$external_number"/g;
$proc =~s/\$INTERNAL_NUMBER/"$internal_number"/g;
$proc =~s/\$INTERNAL_CONNECTION/"$internal_connection"/g;
} # if perl
Log3($name,3,"TM_Proc: action $proc");
fhem($proc);
} # end sub TM_Proc
########################
sub TM_Monitor($$)
{
my ($hash,$Ev) = @_;
my $name = $hash->{NAME};
if(!defined($hash))
{
Log(1,"TM_Monitorhash nicht gefunden");
return "TM: $hash not found";
} # if error
my ($event,$arg) = split (':',$Ev);
$arg = rtrim(ltrim($arg));
$event = ltrim(rtrim($event));
my $proc;
if ($event eq "event")
{
$hash->{stat} = $arg;
Log3($name,3,"TM_Monitor: status: $arg");
return undef;
} # end if event
Log3($name,4,"TM_Monitor: stat: $hash->{stat} event: $event arg: $arg");
# store all subevents
$hash->{mem}{$event} = $arg;
if ($hash->{stat} eq "ring")
{
if ($event eq "call_id")
{
$hash->{callID} = $arg;
Log3($name,3,"Anruf (ring) von $hash->{mem}{'external_name'} $hash->{mem}{'external_number'} callID: $arg");
# hier koennen wir eine anrufgesteuerte Aktion starten
$proc = AttrVal($name,'method-ring',undef);
if($proc)
{
TM_Proc($hash,$proc);
} # end method-ring
my $mot = AttrVal($name,'monitor-type',$monitor_type);
Log3($name,5,"Ring vor TM_UpdateTable mot $mot");
if(($mot eq 'all') || ($mot eq 'incoming'))
{
TM_UpdateTable($hash) if(TM_Store($hash));
} # if mode
} # end if callid
return undef;
} # end if ring events
if ($hash->{stat} eq "connect")
{
# handle answering machine
if (($event eq"internal_connection") &&
($arg =~m/Answering_Machine_.*/))
{
my (undef,undef,$abnr) = split('_',$arg);
$hash->{mem}{ab} = $abnr;
Log3($name,3,"Anrufbeantworter Nr. $abnr angesprochen");
return undef;
} # end if internal_connection
if ($event eq "call_id")
{
$hash->{callID} = $arg;
# method-connect
$proc = AttrVal($name,'method-connect',undef);
if($proc)
{
TM_Proc($hash,$proc);
} # end method-connect
if (exists($hash->{mem}{ab}) && $hash->{mem}{ab} > 0)
{
$hash->{callmem}{$arg}{A} = AttrVal($name,'symbol-answering-machine',$ab);
$hash->{callmem}{$arg}{A} .= $hash->{mem}{ab} if ($hash->{mem}{ab} > 1);
if(AttrVal($name,'monitor-type',$monitor_type) =~m/(all|incoming)/)
{
# update value in table
TM_UpdateValue($hash,$arg,'A',$hash->{callmem}{$arg}{A} );
Log3($name,3,"in/out symbol in table change to Answering Machine");
} # update AB,
} # if A set to AB
delete($hash->{mem}{ab});
} # end if callID
return undef;
} # end if connect
if ($hash->{stat} eq "call")
{
$hash->{mem}{$event} = $arg;
# method-call
$proc = AttrVal($name,'method-call',undef);
if($proc)
{
TM_Proc($hash,$proc);
} # end method-call
if ($event eq "call_id")
{
$hash->{callID} = $arg;
my $mot = AttrVal($name,'monitor-type',$monitor_type);
Log3($name,5,"Call vor TM_UpdateTable mot $mot");
if(($mot eq 'all') | ($mot eq 'outgoing'))
{
TM_UpdateTable($hash) if(TM_Store($hash));
} # if mode
} # end if callid
return undef;
} # end if call event
if ($hash->{stat} eq "disconnect")
{
if ($event eq "call_duration")
{
$hash->{mem}{"call_duration"} = sprintf("%02d:%02d", ($arg/60),$arg%60);
return undef;
} # if call_duration
if ($event eq "call_id")
{
$hash->{callID} = $arg;
$hash->{callmem}{$arg}{E} = $hash->{mem}{"call_duration"};
$proc = AttrVal($name,'method-disconnect',undef);
if($proc)
{
TM_Proc($hash,$proc);
} # end method-disconnect
my $mot = AttrVal($name,'monitor-type',$monitor_type);
Log3($name,5,"Disconnect vor TM_UpdateTable mot $mot");
if($mot eq 'missed-call')
{
if(TM_Store($hash))
{
my $aktsym = $hash->{callmem}{$arg}{A};
my $aktdur = $hash->{callmem}{$arg}{E};
Log3($name,5,"TM_Monitor: $mot aktsym: $aktsym aktdur: $aktdur");
if( ( ($aktsym eq AttrVal($name,'symbol-incoming',$incoming)) && ($aktdur eq '00:00')) || ($aktsym eq AttrVal($name,'symbol-answering-machine',$ab)) )
{
# korrekt incoming symbol
$hash->{callmem}{$arg}{A} = AttrVal($name,'symbol-incoming-noconnect',$incoming_noconnect) if($aktdur eq '00:00');
Log3($name,5,"mode = missed-call callID: $arg connnection in mem: $hash->{callmem}{$arg}{A} duration: $hash->{callmem}{$arg}{E} ");
TM_UpdateTable($hash);
} # if TM_Store / line-filter
delete($hash->{callmem}{$arg});
delete($hash->{mem});
return undef;
}
} # if missed-call
elsif($mot eq 'all_after_disconnect')
{
Log3($name,5,"disconnect mode: all_after_disconnect");
if(TM_Store($hash))
{
TM_UpdateTable($hash);
delete($hash->{callmem}{$arg});
delete($hash->{mem});
} # if TM_Store / line-filter
} # all_after_disconnect
else
{
# update value call_duration in table
TM_UpdateValue($hash,$arg,'E',$hash->{callmem}{$arg}{E} );
# update symbols for in/outgoing with no connections
TM_UpdateValue($hash,$arg,'A',0 ) if($hash->{callmem}{$arg}{E} =~m/(<->|00:00)/);
} # update table for duration
delete($hash->{callmem}{$arg});
delete($hash->{mem});
return undef;
} # end if callid
} # end if disconnect
return undef;
} #end sub TM_Monitor
#####################################
sub TM_Attr(@)
{
my ($cmd,$name,$aName,$aVal) = @_;
my $hash = $defs{$name};
return "\n TM_Attr: " .$name . " does not exits" if (!defined($hash));
# $cmd can be "del" or "set"
# $name is device name
# aName and aVal are Attribute name and value
if ($cmd eq "set")
{
if ($aName eq 'disable')
{
$hash->{STATE} = ($aVal == 0)?'initialized':'disabled';
}
if ($aName eq 'monitor-type')
{
return TM_Set($hash,$name,$aName,$aVal);
} # monitor-type
else
{
my @attrs = split(' ',$modules{TM}->{AttrList});
my %ats;
for(my $i = 0; $i < int(@attrs); $i++)
{
my ($a,$v) = split(':',$attrs[$i]);
$ats{$a} = $v;
} # end i
if(!exists($ats{$aName}))
{
return "TM_Attr: $aName must at least one of: ".join(',',sort keys %ats);
} # error handling
} # if else
} # end if set
return undef;
} # end ssub TM_Attr
######################
1;
aber die Anrufliste ist leer. Was könnte es sein ich habe auch die Updates gemacht. help help bitte danke bumbumb
Hallo,
wäre es machbar/denkbar, beim Klick auf das Lautsprechersymbol, die zugehörige Nachricht vom AB der Fritzbox auszugeben ?
FHEM läuft bei mir auf RaspPi und als Endgerät habe ich ein 10" Tablet (Android)
Gruss
Joe
Zitat von: cotecmania am 15 März 2015, 17:02:01
Hallo,
wäre es machbar/denkbar, beim Klick auf das Lautsprechersymbol, die zugehörige Nachricht vom AB der Fritzbox auszugeben ?
FHEM läuft bei mir auf RaspPi und als Endgerät habe ich ein 10" Tablet (Android)
Hallo Joe,
das ist nicht so einfach. Die Fritte legt einen Eintrag in einer in der Datei meta1 ab, der u.a. eine Referenz auf die abgelegte Sprachnachricht beinhaltet. Vor dem Abspielen muss die Sprachnachricht dann noch encodiert werden.
Ich denke es ist einfacher, wenn Du Dir Sprachnachrichten von der Fritte per E-Mail auf einen Account schicken lässt, der nur vom 10" Tablet abgefragt wird. Es gibt in Fhem ein Modul, dass auf E-Mails prüft und diese wohl auch abholen kann.
Grüße Jörg
Hallo,
ich habe das 99_myUtilsTM mal um command.ref Informationen ergänzt und es "frecherweise" nach "72_FB_CM_Extender.pm" umbenannt. (@Elektrolurch, ich hoffe Du bist einverstanden). Bitte hier auch einmal und vor allem den englische Part Korrektur lesen.
Am Besten das Modul vor einem update einspielen, das alte 99_myUtilsTM.pm löschen oder umbenennen und nicht vergessen das define anzupassen.
Nach dem Update und einem Neustart ist die Hilfe zum Modul über <help FB_CM_Extender DE> oder <help FB_CM_Extender EN> erreichbar.
Weiterhin habe ich die Umbenennung auch im Modul verankert. Somit ändert sich auch das define:
define <name> FB_CM_EXTENDER <FB_CALLMONITOR device>
Meine Hoffnung ist, dass es das wirklich super Modul in das Fhem-Repository schafft.
Grüße Jörg
Ok. Danke. Ich habe leider keinen Zugriff und mit der html-Doku für die Commandref dürfte ich vmtl. (siehe unten, wg. Screenreader) auch Probleme haben.
Ich hätte4 noch den EMONITOR, den man auch ins repository stellen könnte....
Elektrolurch
Hallo Elektrolurch,
habe leider auch keine Developer Rechte. Ich werde Markus mal fragen, er hat den FB_CALLMONITOR entwickelt, ob er uns hier helfen kann. Anbei noch einmal eine neue Version des Moduls, wo ich Fehler im command.ref Bereich beseitigt habe. Weiterhin habe ich Dir den command.ref Bereich mal als HTML beigefügt. Ich selber schreibe den command.ref Bereich mit KompoZer und kopiere ihn dann rüber in das Perl Modul.
Grüße Jörg
Hallo zusammen,
kleines Gimick:
commands {'monitor-type' => 'monitor-type:','clear' => 'set $DEVICE clear', 'D0' => "set fritzbox call $VALUE",'D1' => "set fritzbox call $VALUE", 'D2' => "set fritzbox call $VALUE",'D3' => "set fritzbox call $VALUE",'D4' => "set fritzbox call $VALUE"}
Anrufliste ist die rg, mit der der Telefonmonitor TM angezeigt wird.
"fritzbox" ist eine Instanz vom 72er - Modul FRITZBOX.
Damit werden die angezeigten Rufnummern zum Link und das bei der "fritzbox" hinterlegte interne Telefon führt einen Anruf durch.
attr fritzbox ringWithIntern 1
Hier das angeschlossene analoge Telefon.
Elektrolurch
Hallo Elekrolurch,
irgendwie ist Dein kleines Gimick nicht vollständig gepostet worden. Zu sehen ist nur der Teil, der mit commands beginnt und mit "set fritzbox call $VALUE"} endet.
Als nächstes kommt dann "Anrufliste ist die rg ...
Grüße Jörg
Hallo Elektrolurch, hallo JoWiemann,
auch von mir erst mal vielen Dank für das hervorragenden Modul!
Ich nutze das umbenannte Modul aus Post #141 und habe mal versucht die method-attribute zu nutzen. Hierzu habe ich die Attribute definiert und eine "mini-Funktion" geschrieben die aufgerufen wird.
method-call {my_telefon_action("method-call");;}
method-connect {my_telefon_action("method-connect");;}
method-disconnect {my_telefon_action("method-disconnect");;}
method-ring {my_telefon_action("method-ring");;}
sub my_telefon_action ($){
my ($event) = @_;
Log 1, "Telefon Action: $event";
}
Das Problem ist nun, das "method-call" bei jedem Anruf immer jeweils 7 mal aufgerufen wird...
2015.03.26 19:36:49.163 1: Telefon Action: method-call
2015.03.26 19:36:49.164 1: Telefon Action: method-call
2015.03.26 19:36:49.164 1: Telefon Action: method-call
2015.03.26 19:36:49.164 1: Telefon Action: method-call
2015.03.26 19:36:49.164 1: Telefon Action: method-call
2015.03.26 19:36:49.165 1: Telefon Action: method-call
2015.03.26 19:36:49.165 1: Telefon Action: method-call
2015.03.26 19:36:55.769 1: Telefon Action: method-ring
2015.03.26 19:37:26.345 1: Telefon Action: method-disconnect
2015.03.26 19:37:45.140 1: Telefon Action: method-disconnect
2015.03.26 19:37:55.250 1: Telefon Action: method-call
2015.03.26 19:37:55.250 1: Telefon Action: method-call
2015.03.26 19:37:55.250 1: Telefon Action: method-call
2015.03.26 19:37:55.250 1: Telefon Action: method-call
2015.03.26 19:37:55.251 1: Telefon Action: method-call
2015.03.26 19:37:55.251 1: Telefon Action: method-call
2015.03.26 19:37:55.251 1: Telefon Action: method-call
2015.03.26 19:37:59.601 1: Telefon Action: method-ring
2015.03.26 19:38:13.343 1: Telefon Action: method-disconnect
2015.03.26 19:38:13.984 1: Telefon Action: method-disconnect
Irgendeine Idee was hier passiert? Kann ich noch was prüfen/loggen?
Soweit ich das in den Postings mitbekommen habe hat Jörg da etwas bei den method Sachen umgestellt, daher habe ich euch mal beide angesprochen.
Allerdings habe ich festgestellt, das ich kein attr verbose 5 auf das Modul machen kann... Fehlermeldung:
FB_CM_EXTENDER_Attr: verbose must at least one of: alias,disable,event-aggregator,event-min-interval,event-on-change-reading,event-on-update-reading,group,icon,line-filter,maxlines,method-call,method-connect,method-disconnect,method-ring,monitor-type,room,stateFormat,symbol-answering-machine,symbol-connected,symbol-incoming,symbol-incoming-noconnect,symbol-outgoing,symbol-outgoing-noconnect,update
Hierzu eine Idee?
Vielen Dank schon mal,
Andreas.
Hi,
ich habe jetzt mal verbose global auf 5 gestellt und die entsprechenden Zeilen aus dem Log rausgesucht...
2015.03.26 20:48:37.398 5: Notify loop for Fritz_Box event: call
2015.03.26 20:48:37.399 3: FB_CM_EXTENDER_Monitor: status: call
2015.03.26 20:48:37.399 4: FB_CM_EXTENDER_Monitor: stat: call event: internal_connection arg: 0
2015.03.26 20:48:37.399 3: FB_CM_EXTENDER_Proc: action {my_telefon_action("method-call");;}
2015.03.26 20:48:37.399 5: Cmd: >{my_telefon_action("method-call");}<
2015.03.26 20:48:37.400 1: Telefon Action: method-call
2015.03.26 20:48:37.400 4: FB_CM_EXTENDER_Monitor: stat: call event: direction arg: outgoing
2015.03.26 20:48:37.400 3: FB_CM_EXTENDER_Proc: action {my_telefon_action("method-call");;}
2015.03.26 20:48:37.400 5: Cmd: >{my_telefon_action("method-call");}<
2015.03.26 20:48:37.400 1: Telefon Action: method-call
2015.03.26 20:48:37.400 4: FB_CM_EXTENDER_Monitor: stat: call event: external_name arg: Aldi-Stick
2015.03.26 20:48:37.400 3: FB_CM_EXTENDER_Proc: action {my_telefon_action("method-call");;}
2015.03.26 20:48:37.400 5: Cmd: >{my_telefon_action("method-call");}<
2015.03.26 20:48:37.400 1: Telefon Action: method-call
2015.03.26 20:48:37.400 4: FB_CM_EXTENDER_Monitor: stat: call event: external_connection arg: SIP0
2015.03.26 20:48:37.400 3: FB_CM_EXTENDER_Proc: action {my_telefon_action("method-call");;}
2015.03.26 20:48:37.400 5: Cmd: >{my_telefon_action("method-call");}<
2015.03.26 20:48:37.401 1: Telefon Action: method-call
2015.03.26 20:48:37.401 4: FB_CM_EXTENDER_Monitor: stat: call event: internal_number arg: 1
2015.03.26 20:48:37.401 3: FB_CM_EXTENDER_Proc: action {my_telefon_action("method-call");;}
2015.03.26 20:48:37.401 5: Cmd: >{my_telefon_action("method-call");}<
2015.03.26 20:48:37.401 1: Telefon Action: method-call
2015.03.26 20:48:37.401 4: FB_CM_EXTENDER_Monitor: stat: call event: external_number arg: 0157*********
2015.03.26 20:48:37.401 3: FB_CM_EXTENDER_Proc: action {my_telefon_action("method-call");;}
2015.03.26 20:48:37.401 5: Cmd: >{my_telefon_action("method-call");}<
2015.03.26 20:48:37.402 1: Telefon Action: method-call
2015.03.26 20:48:37.402 4: FB_CM_EXTENDER_Monitor: stat: call event: call_id arg: 0
2015.03.26 20:48:37.402 3: FB_CM_EXTENDER_Proc: action {my_telefon_action("method-call");;}
2015.03.26 20:48:37.402 5: Cmd: >{my_telefon_action("method-call");}<
2015.03.26 20:48:37.402 1: Telefon Action: method-call
Sieht für mich so aus als ob da rekursiv für jeden Parameter eine Funktion aufgerufen wird. Meine Perl-Kenntnisse reichen aber noch nicht aus näher zu verstehen was da im Code passiert...
Gruß,
Andreas.
UPDATE
Hallo Andreas,
danke für Deine Hinweise. Bei attr verbose
ist noch ein Fehler in der Attribut-Prüfung drin. Anbei eine korrigierte Version.
Danke für das Log. Ich habe den Aufruf der Method in das Event "$event eq "call_id" " verschoben. Bitte einmal testen. Danke
Grüße Jörg
Hallo,
ich habe jetzt auch noch mal alle Log3 Aufrufe geprüft und an einigen Stellen den Eintrag: FB_CM_EXTENDER_Monitor: hinzugefügt, so dass jetzt alle Log-Einträge eindeutig dem FB_CM_EXTENDER zugeordnet werden können.
Grüße Jörg
Hallo Jörg,
schneller als die Polizei erlaubt...
Wollte auf Deine Nachricht antworten, plötzlich sah die anders aus... Hab' also das Modul noch mal neu runtergeladen und installiert.
Das mit dem Verbose funktioniert jetzt, und jetzt gibt es auch nur noch einen Aufruf von method-ring! Allerdings wird method-disconnect vor einem Anruf ausgeführt, allerdings nicht vor dem ersten...
2015.03.26 21:29:57.216 1: Telefon Action: method-call
2015.03.26 21:30:01.320 1: Telefon Action: method-ring
2015.03.26 21:30:31.871 1: Telefon Action: method-disconnect
2015.03.26 21:30:53.141 1: Telefon Action: method-disconnect
2015.03.26 21:31:04.107 1: Telefon Action: method-call
2015.03.26 21:31:07.801 1: Telefon Action: method-ring
2015.03.26 21:31:38.491 1: Telefon Action: method-disconnect
2015.03.26 21:31:56.863 1: Telefon Action: method-disconnect
2015.03.26 21:32:07.558 1: Telefon Action: method-call
2015.03.26 21:32:15.080 1: Telefon Action: method-ring
2015.03.26 21:32:45.626 1: Telefon Action: method-disconnect
2015.03.26 21:33:00.330 1: Telefon Action: method-disconnect
Oder relativ zeitverzögert ein zeitverzögert beim Disconnect. Hmm, sieht eigentlich eher aus als wenn es zwei mal disconnect wäre.
Vielleicht könntest Du da auch noch mal schauen?
Dann kann ich am WE mal sehen ob ich mit den Funktionsaufrufen meine "Anrufkette" hinbekomme.
Ich würde nämlich gerne einen Alarmanruf realisieren, so wie ihn meine Alarmanlage macht. Dort sind mehrere Rufnummer hinterlegt, bei Alarm wird die erste angerufen, wenn dort für x-sekunden niemand dran geht wird die nächste probiert. Wird aber abgehoben, so wird kein weiteter Anruf getätigt. Da werde ich am WE mal sehen ob ich es mit den Funktionsaufrufen hinbekomme mir meine "Anrufkette" zu bauen. Dazu muss ich dann noch irgendwie an den Status des Anrufs kommen, bzw. schauen ob zwischen "ring" und "disconnect" mal ein "connect" war...
Vielen Dank,
Andreas.
Zitat von: A.Harrenberg am 26 März 2015, 21:42:45
Allerdings wird method-disconnect vor einem Anruf ausgeführt, allerdings nicht vor dem ersten...
Oder relativ zeitverzögert ein zeitverzögert beim Disconnect. Hmm, sieht eigentlich eher aus als wenn es zwei mal disconnect wäre.
Dazu muss ich dann noch irgendwie an den Status des Anrufs kommen, bzw. schauen ob zwischen "ring" und "disconnect" mal ein "connect" war...
Für method-disconnect muss ich mir dann mal etwa mehr Zeit nehmen.
Für Deine Anrufkette kannst Du Dir ja einen Dummy bauen, dem Du mit
fhem("setreading <DummyName> <reading> $wert");
die letzte method übergibst. Mit
ReadingsVal("<DummyName>", "<reading>", "<Default Rückgabe>");
liest Du den gespeicherten Werte dann aus und kannst dann prüfen welche method zuletzt aufgerufen worden ist.
Grüße Jörg
Hallo Jörg,
Kommando zurück für das disconnect!
Ich rufe mich ja testweise selber an, daher gibt es einmal das "call" und das "ring" und dann natürlich auch zwei mal das "disconnect"!
Sorry, mein Fehler. (Daher ist auch das zweite disconnect verzögert...)
Das mit dem Dummy bzw. der Anruflogik überlege ich mir mal am WE, das sollte hinzubekommen sein. Ich muss da allerdings natürlich auf die richtigen Rufnummer filtern und mir die Logik noch mal genau überlegen.
Vielen Dank,
Andreas.
Hallo Andreas,
Ok, dann leg ich mich jetzt wieder schlafen und Dir gutes gelingen.
Grüße Jörg
Hallo Jörg,
noch ein kleines Problemchen...
Wenn ich $INTERNAL_CONNECTION nutze, gibt es bei den eingehenden Verbindungen eine Fehlermeldung im Log das die Variable "uninitialized" ist. Den Wert kann es natürlich auch nicht geben, aber wenn man das z.B. mit attribut method-disconnect nutzen möchte, gibt es bei jedem externen Anruf eine Fehlermeldung...
Könnte man hier evtl. einen leeren String zurückgeben um die Fehlermeldung zu vermeiden? Meine perl- und FHEM-Kenntnisse reichen leider bei weitem nicht aus, ich finde ja nicht mal die Stelle an der diesen externen Variablen Ihr Wert zugewiesen wird.
Edit:
Die Fehlermeldung tritt nur einmal auf, ich hatte wegen anderer Sachen FHEM neu gestartet und war deshalb der Meinung das dies bei jedem Funktionsaufruf passiert... D.h. das Problemchen wird noch mal kleiner. Mittlerweile bin ich aber auch zu der Erkenntnis gekommen das die Variablen gar nicht im CM_EXTENDER gebildet werden, sondern im FB_CALLMONITOR und nur vom CM_EXTENDER exportiert werden. Änderungen müssten demnach im FB_CALLMONITOR gemacht werden.
2015.03.27 20:21:28.216 1: Telefon Action: method-call, Aldi-Stick, 0157********, 1, 0
2015.03.27 20:21:31.470 1: PERL WARNING: Use of uninitialized value $internal_connection in concatenation (.) or string at ./FHEM/72_FB_CM_Extender.pm line 461.
2015.03.27 20:21:31.471 1: Telefon Action: method-ring, Andreas FN, 0241********, 0049157********,
2015.03.27 20:22:01.992 1: Telefon Action: method-disconnect, Andreas FN, 0241********, 0049157********,
2015.03.27 20:22:24.133 1: Telefon Action: method-disconnect, Aldi-Stick, 0157*******, 1, 0
Edit2:
Sobald eine Verbindung zustande gekommen ist, ist auch beim eingehenden Anruf das $INTERNAL_CONNECTION richtig gesetzt, bei mir hier "DECT_1".
2015.03.28 07:18:25.389 1: Telefon Action: method-call, Aldi-Stick, 0157********, 1, 0
2015.03.28 07:18:31.226 1: Telefon Action: method-ring, Andreas FN, 0241*********, 0049157********,
2015.03.28 07:18:34.352 1: Telefon Action: method-connect, Andreas FN, 0241********, 0049157********, DECT_1
2015.03.28 07:18:35.014 1: Telefon Action: method-connect, Aldi-Stick, 0157********, 1, 0
2015.03.28 07:18:37.530 1: Telefon Action: method-disconnect, Andreas FN, 0241********, 0049157********, DECT_1
2015.03.28 07:18:38.823 1: Telefon Action: method-disconnect, Aldi-Stick, 0157********, 1, 0
Edit3:
Wenn man im FB_CALLMONITOR die Variable entsprechend (vor-)definiert, z.B. mit "not_connected", wird sie auch schon bei method-ring angezeigt und es gibt keine Fehlermeldung mehr:
2015.03.28 07:36:22.055 1: Telefon Action: method-call, Aldi-Stick, 0157********, 1, 0
2015.03.28 07:36:28.967 1: Telefon Action: method-ring, Andreas FN, 0241********, 0049157********, not_conncected
2015.03.28 07:36:34.490 1: Telefon Action: method-disconnect, Andreas FN, 0241********, 0049157********, not_conncected
2015.03.28 07:36:35.792 1: Telefon Action: method-disconnect, Aldi-Stick, 0157********, 1, 0
72_FB_CALLMONIOTR.pm ab Zeile 332
if($array[1] eq "RING")
{
$hash->{helper}{TEMP}{$array[2]}{external_number} = (defined($external_number) ? $external_number : "unknown");
$hash->{helper}{TEMP}{$array[2]}{external_name} = (defined($reverse_search) ? $reverse_search : "unknown");
$hash->{helper}{TEMP}{$array[2]}{internal_number} = $array[4];
$hash->{helper}{TEMP}{$array[2]}{external_connection} = $array[5];
# ah: "initialize" variable with value, will be overwritten with "good" value if connection is established
$hash->{helper}{TEMP}{$array[2]}{internal_connection} = "not_conncected";
$hash->{helper}{TEMP}{$array[2]}{direction} = "incoming";
}
method-call {my_telefon_action("method-call", $EXTERNAL_NAME,$EXTERNAL_NUMBER,$INTERNAL_NUMBER,$INTERNAL_CONNECTION);;}
method-connect {my_telefon_action("method-connect", $EXTERNAL_NAME,$EXTERNAL_NUMBER,$INTERNAL_NUMBER,$INTERNAL_CONNECTION);;}
method-disconnect {my_telefon_action("method-disconnect",$EXTERNAL_NAME,$EXTERNAL_NUMBER,$INTERNAL_NUMBER,$INTERNAL_CONNECTION);;}
method-ring {my_telefon_action("method-ring",$EXTERNAL_NAME,$EXTERNAL_NUMBER,$INTERNAL_NUMBER,$INTERNAL_CONNECTION);;}
sub my_telefon_action ($$$$$){
# {my_telefon_action("method-call", $EXTERNAL_NAME,$EXTERNAL_NUMBER,$INTERNAL_NUMBER,$INTERNAL_CONNECTION);;}
my ($event, $ext_name, $ext_number, $int_number, $int_con) = @_;
Log 1, "Telefon Action: $event, $ext_name, $ext_number, $int_number, $int_con";
}
Edit4:
Problemchen ist also "gelöst", ich werde mal den Maintainer von FB_CALLMONITOR anschreiben ob das eingebaut werden kann/sollte...
Gruß,
Andreas.
Wann wandert denn das spitzen Module in die svn?
was sollen mir diese Fehlermeldungen sagen, sind mir durch Zufall heute aufgefallen..?
Zitat2015.03.28 00:15:01 1: PERL WARNING: Use of uninitialized value in string eq at ./FHEM/99_myUtilsTM.pm line 473.
2015.03.28 00:15:01 1: PERL WARNING: Use of uninitialized value in string eq at ./FHEM/99_myUtilsTM.pm line 458.
2015.03.28 00:15:01 1: PERL WARNING: Use of uninitialized value in string eq at ./FHEM/99_myUtilsTM.pm line 426.
2015.03.28 00:15:01 1: PERL WARNING: Use of uninitialized value in string eq at ./FHEM/99_myUtilsTM.pm line 401.
2015.03.28 00:15:01 1: PERL WARNING: Use of uninitialized value $arg in concatenation (.) or string at ./FHEM/99_myUtilsTM.pm line 392.
2015.03.28 00:15:01 1: PERL WARNING: Use of uninitialized value $string in substitution (s///) at ./FHEM/99_Utils.pm line 144.
Zitat von: moonsorrox am 28 März 2015, 12:38:00
was sollen mir diese Fehlermeldungen sagen, sind mir durch Zufall heute aufgefallen..?
Hallo,
nimm doch einfach die letzte gepostete 72_FB_CM_Extender.pm. Da habe ich die Hinweise gefixed.
Grüße Jörg
PS: Ich hab das Modul 99_myUtilsTM.pm so umbenannt, das mit Elektrolurch abgestimmt und ein paar Fehler bereinigt. Im aktuellen Modul sind auch die Hilfetexte gepflegt, sollten allerdings auch noch mal Korrektur gelesen werden.
Hallo Jörg,
Zitat von: JoWiemann am 28 März 2015, 14:34:46
ich glaube, dass Deine Lösung besser ist, da im 72_FB_CALLMONITOR die nicht initialisierte vielleicht gar kein Problem darstellt. Von daher, poste doch einfach Deine korrigierte Version.
ich habe die Änderung aber im 72_FB_CALLMONITOR gemacht...
Ich habe dort in der Routine für "ring" einfach die Variable auf "not_connected" gesetzt.
Ich habe das mal an den Maintainer von 72_FB_CALLMONITOR, Markus Bloch, geschickt und gefragt ob das evtl. Seiteneffekte hätte und ob er das so oder ähnlich übernehmen würde.
Der eigentliche Fehler tritt in der sub FB_CM_EXTENDER_Proc auf, die Routine wird ja für jede "method" aufgerufen.
sub FB_CM_EXTENDER_Proc($$)
{
my ($hash,$proc) = @_;
my $name = $hash->{NAME};
my $external_name = $hash->{mem}{'external_name'};
my $external_number = $hash->{mem}{'external_number'};
my $internal_number = $hash->{mem}{'internal_number'};
my $internal_connection = $hash->{mem}{'internal_connection'};
my $EXTERNAL_NAME = $external_name;
my $EXTERNAL_NUMBER = $external_number;
my $INTERNAL_NUMBER = $internal_number;
my $INTERNAL_CONNECTION = $internal_connection;
$proc =~s/\%EXTERNAL_NAME/$external_name/g;
$proc =~s/\%EXTERNAL_NUMBER/$external_number/g;
$proc =~s/\%INTERNAL_NUMBER/$internal_number/g;
$proc =~s/\%INTERNAL_CONNECTION/$internal_connection/g;
if($proc =~ m/^{.*}$/)
{
$proc =~s/\$EXTERNAL_NAME/"$external_name"/g;
$proc =~s/\$EXTERNAL_NUMBER/"$external_number"/g;
$proc =~s/\$INTERNAL_NUMBER/"$internal_number"/g;
$proc =~s/\$INTERNAL_CONNECTION/"$internal_connection"/g;
} # if perl
Log3($name,3,"FB_CM_EXTENDER_Proc: action $proc");
fhem($proc);
} # end sub FB_CM_EXTENDER_Proc
########################
Wenn das Problem innerhalb von FB_CM_EXTENDER gelöst werden soll, müsste meiner Meinung nach ein weiterer Parameter mit der "method" für die sub definiert werden, damit dann bei "ring" der Parameter entsprechend vordefiniert werden.
Oder man könnte in der sub prüfen ob $internal_connection definiert ist und es mit einem Default belegen?
A new operator // (defined-or) has been implemented. The following expression:
$a // $b
is merely equivalent to
defined $a ? $a : $b
and the statement
$c //= $d;
can now be used instead of
$c = $d unless defined $c;
Ich könnte da morgen mal ein wenig herumexperimentieren, ist aber eher try-and-error ;D
Gruß,
Andreas.
Zitat von: A.Harrenberg am 28 März 2015, 15:30:59
Oder man könnte in der sub prüfen ob $internal_connection definiert ist und es mit einem Default belegen?
Das ist der richtige Weg, zwar nicht umbedingt mit dem //-Operator, der in älteren Perl-Versionen nicht zur Verfügung steht, sondern eher:
in Zeile 445 von FB_CM_Extender einfügen:
$external_name = "" unless(defined($hash->{mem}{'external_name'}));
$external_number = "" unless(defined($hash->{mem}{'external_number'}));
$internal_number = "" unless(defined($hash->{mem}{'internal_number'}));
$internal_connection = "" unless(defined($hash->{mem}{'internal_connection'}));
Was soll eigentlich der folgende Block?
my $EXTERNAL_NAME = $external_name;
my $EXTERNAL_NUMBER = $external_number;
my $INTERNAL_NUMBER = $internal_number;
my $INTERNAL_CONNECTION = $internal_connection;
soweit ich das sehe wird der nirgends benutzt und ist nur unnötig verbrauchter Speicher.
Ein "not_connected" für internal_connection möchte ich nicht einführen, da das Reading ausschließlich Zahlen bisher enthält und viele User bei Notify's entsprechend nur numerische Vergleiche des Inhalts machen. Ein String in diesem Reading würde dann zu vielen Perl-Warnings und nicht funktionierenden notify's, Logiken, etc. führen.
Gruß
Markus
Hallo Markus,
Zitat von: Markus Bloch am 28 März 2015, 15:47:46
Das ist der richtige Weg, zwar nicht umbedingt mit dem //-Operator, der in älteren Perl-Versionen nicht zur Verfügung steht, sondern eher:
in Zeile 445 von FB_CM_Extender einfügen:
$external_name = "" unless(defined($hash->{mem}{'external_name'}));
$external_number = "" unless(defined($hash->{mem}{'external_number'}));
$internal_number = "" unless(defined($hash->{mem}{'internal_number'}));
$internal_connection = "" unless(defined($hash->{mem}{'internal_connection'}));
Ich werde mir das mal einbauen und mein "not_connected" entfernen und schauen ob das funktioniert. Eigentlich sollte es reichen das für $internal_connection zu machen, die anderen Variablen sind ja bei "ring" bereits definiert.
Das $internal_connection in Deinem Modul nur Zahlen enthält hatte ich gar nicht beachtet, sollte mit der obigen Lösung aber auch nicht mehr relevant sein.
Vielen Dank für die Rückmeldung und den Hinweis auf "unless(defined...",
Andreas.
Hallo Markus,
auch meinen Dank für die Rückmeldung. Anbei nun die neue Version.
Grüße Jörg
Hallo Jörg, hallo Markus,
tja, so funktioniert das aber leider doch nicht...
Jetzt sind alle Variablen leer bzw. = "".
2015.03.28 16:54:26.500 1: Telefon Action: method-call, , , ,
2015.03.28 16:54:34.252 1: Telefon Action: method-ring, , , ,
2015.03.28 16:54:36.341 1: Telefon Action: method-disconnect, , , ,
2015.03.28 16:54:37.827 1: Telefon Action: method-disconnect, , , ,
Ich habe aber auch gerade etwas schwierigkeiten beim Verständnis mit dem $hash->{mem}{...}. Auf was reagiert den defined hier eigentlich? $hash ist ja selber schon eine Variable, was passiert denn bei defined und einem hash?
Gruß,
Andreas.
Hallo Andreas,
nach meinem Verständnis wird bei:
$internal_connection = "" unless(defined($hash->{mem}{'internal_connection'}));
die Variable $internal_connection auf "" gesetzt, wenn der hash->{mem}{'internal_connection'} nicht initialisiert ist.
Nimm mal die angehängte Version. In der Vorherigen ist mir ein copy/paste Fehler unterlaufen.
Grüße Jörg
Hallo Markus,
müsste nicht auch
my $internal_connection = defined($hash->{mem}{'internal_connection'}) ? $hash->{mem}{'internal_connection'} : "";
funktionieren?
Grüße Jörg
Hallo Jörg,
ok, die neue Version funktioniert, der "neue" Ansatz mit "? :" scheint auch zu funktionieren, ich habe das gerade mal so umgeschrieben und es funktioniert ohne Fehlermeldung wegen "uninitialized".
Die Version mit "? :" ist denke ich besser als der "zweistufige" Ansatz erst an die Variable zuzuweisen und dann noch mal zu prüfen ob die Quelle auch definiert ist.
$internal_connection = "" unless(defined($hash->{mem}{'internal_connection'}));
Hier hätte man doch wahrscheinlich das defined auch auf die Variable selber machen können, oder? Also
$internal_connection = "" unless(defined($internal_connection));
Was das defined und hashes angeht habe ich gerade das hier gefunden:
Determine whether a hash value exists, is defined, or is true
Solution
print "Value EXISTS, but may be undefined.\n" if exists $hash{ $key };
print "Value is DEFINED, but may be false.\n" if defined $hash{ $key };
print "Value is TRUE at hash key $key.\n" if $hash{ $key };
Das bedeutet das define geht "durch" bis auf den definierten $key, und betrifft nicht den hash selber. Mit "exists" kann man dann wohl abfragen ob der hash ($key) angelegt ist. Ich frage mich aber gerade wie ich feststelle das $hash überhaupt existiert/definiert wurde... Na ja, das dürfte langsam zu weit führen.
Gruß,
Andreas.
Hallo Andreas,
Bedingung ? wert1 : wert2 habe ich auch gerade ausprobiert. Anbei also nun die entsprechende Version.
Grüße Jörg
Hab das neuerste Modul gerade eingerichtet und bekomme folgenden Log Eintrag:
PERL WARNING: Use of uninitialized value $linefilter in concatenation (.) or string at ./FHEM/72_FB_CM_Extender.pm line 246.
Kann noch wer ein passendes readingsGroup posten?
Wäre echt spitze!
Zitat von: JoWiemann am 28 März 2015, 17:36:55
Hallo Markus,
müsste nicht auch
my $internal_connection = defined($hash->{mem}{'internal_connection'}) ? $hash->{mem}{'internal_connection'} : "";
funktionieren?
Grüße Jörg
Ja, so funktioniert das. Mein Code-vorschlag war dahin gemeint, das es zusätzlich eingefügt wird.
Eine andere Frage. Wozu habt ihr die "method-*"-Attribute eingebaut? Diese führen einen FHEM Befehl aus, wenn das entsprechende Event ausgeführt wird. Wozu das ganze? Kann das ein User nicht auch normal via notify (auf "event:.call", usw.) machen? Was ist der Vorteil davon?
Gruß
Markus
Hallo Markus,
die Idee ist von Elektolurch.
@Elektrolurch: Was war Deine Idee dahinter?
Grüße Jörg
Zitat von: ulli am 28 März 2015, 18:00:53
Hab das neuerste Modul gerade eingerichtet und bekomme folgenden Log Eintrag:
PERL WARNING: Use of uninitialized value $linefilter in concatenation (.) or string at ./FHEM/72_FB_CM_Extender.pm line 246.
Hallo,
war zwar nur eine loglevel 4 Meldung, aber habe ich noch gefixed.
Grüße Jörg
PS: Readingsgroup ist in der Hilfe zum Modul beschrieben, anbei das dort hinterlegt Beispiel:
define TM FB_CM_EXTENDER <Mein FB_CALLMONITOR>
define Anrufliste readingsGroup <Pos>,<Art>,<Datum>,<Name>,<Nummer>,<Dauer> TM:A0,B0,C0,D0,E0 TM:A1,B1,C1,D1,E1 :A2,B2,C2,D2,E2 TM:A3,B3,C3,D3,E3 TM:A4,B4,C4,D4,E4
attr Anrufliste mapping {'TM' => '{sprintf("%d.",$ROW-1);;}'}
attr Anrufliste noheading 0
attr Anrufliste nolinks 1
attr Anrufliste nostate 1
attr Anrufliste notime 1
attr Anrufliste room Telefon
Hi,
vielleicht das dann gleich alle Paramter in einem Aufruf vorhanden sind?
Ich fange ja gerade erst an, und als Einsteiger ist es nicht einfach zu verstehen auf was man bei notify alles reagieren kann, aber ich wenn ich beim CALLMONITOR auf event:.call filter, habe ich da auch die Informationen für external_number, internal_number etc. zur Verfügung oder muss ich mir die dann noch "irdgendwie" zusammensuchen?
2015-03-28_18:15:20 Fritz_Box event: call
2015-03-28_18:15:20 Fritz_Box internal_connection: 0
2015-03-28_18:15:20 Fritz_Box external_number: 0157********
2015-03-28_18:15:20 Fritz_Box internal_number: 1
2015-03-28_18:15:20 Fritz_Box external_name: Aldi-Stick
2015-03-28_18:15:20 Fritz_Box external_connection: SIP0
2015-03-28_18:15:20 Fritz_Box direction: outgoing
2015-03-28_18:15:20 Fritz_Box call_id: 0
2015-03-28_18:15:26 Fritz_Box event: ring
2015-03-28_18:15:26 Fritz_Box internal_number: 0049157********
2015-03-28_18:15:26 Fritz_Box external_number: 0241********
2015-03-28_18:15:26 Fritz_Box direction: incoming
2015-03-28_18:15:26 Fritz_Box external_name: Andreas FN
2015-03-28_18:15:26 Fritz_Box external_connection: SIP99
2015-03-28_18:15:26 Fritz_Box call_id: 1
2015-03-28_18:15:28 Fritz_Box event: disconnect
2015-03-28_18:15:28 Fritz_Box call_duration: 0
2015-03-28_18:15:28 Fritz_Box external_connection: SIP99
2015-03-28_18:15:28 Fritz_Box missed_call: 0241******** (Andreas FN)
2015-03-28_18:15:28 Fritz_Box external_name: Andreas FN
2015-03-28_18:15:28 Fritz_Box internal_number: 0049157********
2015-03-28_18:15:28 Fritz_Box external_number: 0241********
2015-03-28_18:15:28 Fritz_Box missed_call_line: 0049157********
2015-03-28_18:15:28 Fritz_Box direction: incoming
2015-03-28_18:15:28 Fritz_Box call_id: 1
2015-03-28_18:15:30 Fritz_Box event: disconnect
2015-03-28_18:15:30 Fritz_Box external_connection: SIP0
2015-03-28_18:15:30 Fritz_Box external_name: Aldi-Stick
2015-03-28_18:15:30 Fritz_Box direction: outgoing
2015-03-28_18:15:30 Fritz_Box internal_connection: 0
2015-03-28_18:15:30 Fritz_Box call_duration: 0
2015-03-28_18:15:30 Fritz_Box external_number: 0157********
2015-03-28_18:15:30 Fritz_Box internal_number: 1
2015-03-28_18:15:30 Fritz_Box call_id: 0
Soweit wie ich das verstehe würde ich ja nur die Informationen erhalten, die auch bei dem Event in der gleichen Zeile auftauchen und das wäre z.B. bei event: ring nichts mehr...
Oder liege ich da jetzt falsch?
Gruß,
Andreas.
Hallo Andreas,
anbei mal meine Sub für notify vom CALLMONITOR:
sub
FBNotify() {
my $extNr = ReadingsVal("FBTel", "external_number", "none");
my $intNr = ReadingsVal("FBTel", "internal_number", "none");
my $intName = ReadingsVal("FBTel", "internal_name", "none");
my $extName = ReadingsVal("FBTel", "external_name", "none");
my $dauer = ReadingsVal("FBTel", "call_duration", "none");
my $event = ReadingsVal("FBTel", "event", "none");
my $call_id = ReadingsVal("FBTel", "call_id", "0");
my $call_sv = ReadingsVal("FB_Tel_Call_ID", "call_id", "0");
fhem("set FB_Tel_Call_ID warten...");
Log3 "FBNotify", 4, "FB_CALLMONITOR (FBNotify) - enventhandling";
if( $call_id ne $call_sv) {
fhem("setreading FB_Tel_Call_ID call_id $call_id");
my $Start="<html><head><title>Notruf ergangen</title></head><body>";
my $Ende="</body></html>";
my $MeldText="";
my $MeldBetreff="";
if($intNr eq "MSN"){
if($event eq "disconnect"){
fhem("set FB_Tel_Call_ID warten...");
fhem("set AlarmGong off");
$MeldBetreff="Mutti-Oma Notruf aufgelegt: ".strftime("%d.%m.%Y um %H:%M",localtime());
$MeldText="Notruf: aufgelegt.<br>Meldung FHEM-Server";
} else {
fhem("set FB_Tel_Call_ID aktiv...");
fhem("set AlarmGong on");
$MeldBetreff="Mutti-Oma Notruf angewaehlt: ".strftime("%d.%m.%Y um %H:%M",localtime());
$MeldText="Notruf: angewählt.<br>Meldung FHEM-Server";
}
$MeldText=$Start.$MeldText.$Ende;
DebianMail('empfaenger@domain',$MeldBetreff,$MeldText);
sendWhatsApp("49...",$MeldBetreff);
sendWhatsApp("49...",$MeldBetreff);
sendWhatsApp("49...",$MeldBetreff);
sendWhatsApp("49...",$MeldBetreff);
}
}
}
Grüße Jörg
Hallo Ulli,
Zitat von: ulli am 28 März 2015, 18:00:53
Kann noch wer ein passendes readingsGroup posten?
Hier mal meine readingsGroup, aber Achtung! ich habe die Liste auf 10 Einträge erweitert und auch noch die "Spalte" H hinzugefügt. Meine Icons sind etwas anders als in der Vorlage, ich wollte aber für alles Pfeile haben die für eingehende Anrufe auf das Telefon zeigen und bei ausgehenden Anrufen vom Telefon weg zeigen.
Wenn Du das übernehmen möchtest musst Du im Telefonmodul das Attribut "maxlines 9" definieren und in der readingsGroup den Namen des Telefonmoduls (bei mir Fritz_Box_TM) gegen Deinen Namen austauschen. Der Name ist auch im Attribut "mapping" drin, dort nicht vergessen...
define Anrufliste readingsGroup <Pos>,<Art>,<Datum>,<Name>,<Nummer>,<Dauer>,<Leitung>,<Apparat> Fritz_Box_TM:A0,B0,C0,D0,E0,G0,H0 Fritz_Box_TM:A1,B1,C1,D1,E1,G1,H1 Fritz_Box_TM:A2,B2,C2,D2,E2,G2,H2 Fritz_Box_TM:A3,B3,C3,D3,E3,G3,H3 Fritz_Box_TM:A4,B4,C4,D4,E4,G4,H4 Fritz_Box_TM:A5,B5,C5,D5,E5,G5,H5 Fritz_Box_TM:A6,B6,C6,D6,E6,G6,H6 Fritz_Box_TM:A7,B7,C7,D7,E7,G7,H7 Fritz_Box_TM:A8,B8,C8,D8,E8,G8,H8 Fritz_Box_TM:A9,B9,C9,D4,E9,G9,H9
attr Anrufliste mapping {'Fritz_Box_TM' => '{sprintf("%d.",$ROW-1);;}'}
attr Anrufliste nostate 1
attr Anrufliste notime 1
attr Anrufliste room Telefon
attr Anrufliste valueIcon {'A0.outgoing' => 'phone_ring_out@lightgreen', 'A0.incoming' => 'phone_ring_in@lightgreen','A0.outgoing_noconnect' => 'phone_call_end_out@red', 'A0.incoming_noconnect' => 'phone_call_end_in@red', 'A0.AB' => 'phone_answering@lightgreen', 'E0.con' => 'phone_ring@lightgreen','A1.outgoing' => 'phone_ring_out@lightgreen', 'A1.incoming' => 'phone_ring_in@lightgreen','A1.outgoing_noconnect' => 'phone_call_end_out@red', 'A1.incoming_noconnect' => 'phone_call_end_in@red', 'A1.AB' => 'phone_answering@lightgreen', 'E1.con' => 'phone_ring@lightgreen','A2.outgoing' => 'phone_ring_out@lightgreen', 'A2.incoming' => 'phone_ring_in@lightgreen','A2.outgoing_noconnect' => 'phone_call_end_out@red', 'A2.incoming_noconnect' => 'phone_call_end_in@red', 'A2.AB' => 'phone_answering@lightgreen', 'E2.con' => 'phone_ring@lightgreen','A3.outgoing' => 'phone_ring_out@lightgreen', 'A3.incoming' => 'phone_ring_in@lightgreen','A3.outgoing_noconnect' => 'phone_call_end_out@red', 'A3.incoming_noconnect' => 'phone_call_end_in@red', 'A3.AB' => 'phone_answering@lightgreen', 'E3.con' => 'phone_ring@lightgreen','A4.outgoing' => 'phone_ring_out@lightgreen', 'A4.incoming' => 'phone_ring_in@lightgreen','A4.outgoing_noconnect' => 'phone_call_end_out@red', 'A4.incoming_noconnect' => 'phone_call_end_in@red', 'A4.AB' => 'phone_answering@lightgreen', 'E4.con' => 'phone_ring@lightgreen','A5.outgoing' => 'phone_ring_out@lightgreen', 'A5.incoming' => 'phone_ring_in@lightgreen','A5.outgoing_noconnect' => 'phone_call_end_out@red', 'A5.incoming_noconnect' => 'phone_call_end_in@red', 'A5.AB' => 'phone_answering@lightgreen', 'E5.con' => 'phone_ring@lightgreen','A6.outgoing' => 'phone_ring_out@lightgreen', 'A6.incoming' => 'phone_ring_in@lightgreen','A6.outgoing_noconnect' => 'phone_call_end_out@red', 'A6.incoming_noconnect' => 'phone_call_end_in@red', 'A6.AB' => 'phone_answering@lightgreen', 'E6.con' => 'phone_ring@lightgreen','A7.outgoing' => 'phone_ring_out@lightgreen', 'A7.incoming' => 'phone_ring_in@lightgreen','A7.outgoing_noconnect' => 'phone_call_end_out@red', 'A7.incoming_noconnect' => 'phone_call_end_in@red', 'A7.AB' => 'phone_answering@lightgreen', 'E7.con' => 'phone_ring@lightgreen','A8.outgoing' => 'phone_ring_out@lightgreen', 'A8.incoming' => 'phone_ring_in@lightgreen','A8.outgoing_noconnect' => 'phone_call_end_out@red', 'A8.incoming_noconnect' => 'phone_call_end_in@red', 'A8.AB' => 'phone_answering@lightgreen', 'E8.con' => 'phone_ring@lightgreen','A9.outgoing' => 'phone_ring_out@lightgreen', 'A9.incoming' => 'phone_ring_in@lightgreen','A9.outgoing_noconnect' => 'phone_call_end_out@red', 'A9.incoming_noconnect' => 'phone_call_end_in@red', 'A9.AB' => 'phone_answering@lightgreen', 'E9.con' => 'phone_ring@lightgreen'}
Edit: Da ich die "Symbole" für die einzelnen states geändert habe, musst Du diese entweder auf Deine anpassen, oder meine verwenden. Also im FB_CM_EXTENDER die Attribute setzen:
symbol-connected con
symbol-incoming incoming
symbol-incoming-noconnect incoming_noconnect
symbol-outgoing outgoing
symbol-outgoing-noconnect outgoing_noconnect
Gruß,
Andreas.
Hallo Jörg,
jetzt hast Du was losgetreten... ;)
Zitat von: JoWiemann am 28 März 2015, 18:39:16
anbei mal meine Sub für notify vom CALLMONITOR:
sub
FBNotify() {
my $extNr = ReadingsVal("FBTel", "external_number", "none");
my $intNr = ReadingsVal("FBTel", "internal_number", "none");
my $intName = ReadingsVal("FBTel", "internal_name", "none");
my $extName = ReadingsVal("FBTel", "external_name", "none");
my $dauer = ReadingsVal("FBTel", "call_duration", "none");
my $event = ReadingsVal("FBTel", "event", "none");
my $call_id = ReadingsVal("FBTel", "call_id", "0");
my $call_sv = ReadingsVal("FB_Tel_Call_ID", "call_id", "0");
fhem("set FB_Tel_Call_ID warten...");
Log3 "FBNotify", 4, "FB_CALLMONITOR (FBNotify) - enventhandling";
if( $call_id ne $call_sv) {
fhem("setreading FB_Tel_Call_ID call_id $call_id");
my $Start="<html><head><title>Notruf ergangen</title></head><body>";
my $Ende="</body></html>";
my $MeldText="";
my $MeldBetreff="";
if($intNr eq "MSN"){
if($event eq "disconnect"){
fhem("set FB_Tel_Call_ID warten...");
fhem("set AlarmGong off");
$MeldBetreff="Mutti-Oma Notruf aufgelegt: ".strftime("%d.%m.%Y um %H:%M",localtime());
$MeldText="Notruf: aufgelegt.<br>Meldung FHEM-Server";
} else {
fhem("set FB_Tel_Call_ID aktiv...");
fhem("set AlarmGong on");
$MeldBetreff="Mutti-Oma Notruf angewaehlt: ".strftime("%d.%m.%Y um %H:%M",localtime());
$MeldText="Notruf: angewählt.<br>Meldung FHEM-Server";
}
$MeldText=$Start.$MeldText.$Ende;
DebianMail('empfaenger@domain',$MeldBetreff,$MeldText);
sendWhatsApp("49...",$MeldBetreff);
sendWhatsApp("49...",$MeldBetreff);
sendWhatsApp("49...",$MeldBetreff);
sendWhatsApp("49...",$MeldBetreff);
}
}
}
D.h. Du liest die Werte dann innerhalb der von Notify getriggerten Funktion aus den Readings des FB_CALLMONITOR aus. Soweit verstanden, aber dazu hätte ich dann mal 1 bis 13 Fragen...
FB_TEL ist Deine Instanz von 72_FB_CALLMONITOR? Wenn ja, meine hat kein Reading "internal_name", hast Du eine neuere Version?
Was ist FB_TEL_Call_ID? Ich nehme mal an ein Dummy, oder? Was ist dann $call_sv? Und was schreibst Du da rein?
$call_id ist ja "nur" eine id die zeitgleiche Anrufe auseinanderhalten soll, mir ist daher der Sinn hinter:
if( $call_id ne $call_sv) {
überhaupt nicht klar.
Der Rest ist dann eine Logik um einen Alarmgong zu schalten, Mails und WhatsApp zu verschicken.
Gruß,
Andreas.
Hallo Andreas,
versuche der Reihe nach zu antworten.
Zitat von: A.Harrenberg am 28 März 2015, 19:16:39
FB_TEL ist Deine Instanz von 72_FB_CALLMONITOR? Wenn ja, meine hat kein Reading "internal_name", hast Du eine neuere Version?
Was ist FB_TEL_Call_ID? Ich nehme mal an ein Dummy, oder? Was ist dann $call_sv? Und was schreibst Du da rein?
FB_TEL ist meine Instanz vom CALLMONITOR.
Das Reading "internal_name" ist von einer ganz anderen Version übrig geblieben. Sorry für Verwirrung. (Muss ich dann bei Gelegenheit mal rausschmeißen)
Zitat von: A.Harrenberg am 28 März 2015, 19:16:39
$call_id ist ja "nur" eine id die zeitgleiche Anrufe auseinanderhalten soll, mir ist daher der Sinn hinter:
if( $call_id ne $call_sv) {
überhaupt nicht klar.
Leider ist es so, dass ich bei einem call mehrere notifies bekommen. Ich hab da einfach keine Lust gehabt mit den RegExpr mich auseinander zu setzen. Also merke ich mir beim Aufruf die call_id in einem Dummy und wenn die selbe wieder kommt, dann mache ich einfach nichts. Grobschlächtig, aber funktioniert.
Zitat von: A.Harrenberg am 28 März 2015, 19:16:39
Der Rest ist dann eine Logik um einen Alarmgong zu schalten, Mails und WhatsApp zu verschicken.
Stimmt.
Das Notify ist halt vor 2 Jahren entstanden, und es funktioniert. Irgendwann werde ich dann vielleicht doch auf method beim FB_CM_Extender umstellen.
Grüße Jörg
Zitat von: A.Harrenberg am 28 März 2015, 18:30:52
vielleicht das dann gleich alle Paramter in einem Aufruf vorhanden sind?
Zu dem Zeitpunkt in dem die Events gefeuert sind, stehen alle relevanten Daten zu dem entsprechenden Anruf bereits in den Readings. Wenn man also via notify eine Perl-Funktion startet um damit entsprechende Sachen zu machen, kann man dort sich die Daten mit ReadingsVal() holen, genau so wie es Jörg auch in seiner FBNotify() Funktion macht.
Zitat von: JoWiemann am 28 März 2015, 14:30:57
nimm doch einfach die letzte gepostete 72_FB_CM_Extender.pm. Da habe ich die Hinweise gefixed.
ich stecke da grad nicht so drin, da alles läuft bis auf die gestern entdeckten Fehler.... aber was muss ich alles ändern damit es funktioniert..? Muss ich etwas umschreiben..?
Danke
Zitat von: moonsorrox am 29 März 2015, 01:43:29
Muss ich etwas umschreiben..?
Hallo,
hatte ich hier schon beschrieben: http://forum.fhem.de/index.php/topic,27218.msg274714.html#msg274714
Grüße Jörg
ich muss nochmal etwas fragen, da ich echt schon länger nicht in den Code geschaut habe, muss ich nun feststellen das ich da noch einiges drin habe. Evtl. sogar überflüssiges :-\ das ist jetzt die Frage..?
Ich hatte ja mal den Callmonitor im Einsatz dann das TM Modul...
Hier mal mein Code:
define FB7390 FB_CALLMONITOR 10.0.0.1
attr FB7390 fritzbox-remote-phonebook 1
attr FB7390 group FritzBox Callmonitor
attr FB7390 icon phone_dial@LightSeaGreen
attr FB7390 local-area-code 05131
attr FB7390 reverse-search all
attr FB7390 reverse-search-cache 1
attr FB7390 reverse-search-cache-file /opt/fhem/callmoncache.txt
attr FB7390 reverse-search-phonebook-file ./log/Fritz_Box_Telefonbuch.xml
attr FB7390 room HWR
attr FB7390 userReadings eing0 eing1 eing2 eing3 eing4 A0 A1 A2 A3 A4 B0 B1 B2 B3 B4 C0 C1 C2 C3 C4 D0 D1 D2 D3 D4 E0 E1 E2 E3 E4
attr FB7390 verbose 0
#attr FB7390 reverse-search-cache-file ./log/Fritz_Box-%Y-%m.log Fritz_Box
#attr FB7390 room System
define CallMon TM FB7390
attr CallMon maxlines 4
attr CallMon monitor-type all
attr CallMon symbol-answering-machine AB
attr CallMon symbol-connected connected
attr CallMon symbol-incoming incoming
attr CallMon symbol-incoming-noconnect incoming_noconnect
attr CallMon symbol-outgoing outgoing
attr CallMon symbol-outgoing-noconnect outgoing_noconnect
attr CallMon update 2
attr CallMon verbose 2
Das alles wurde doch bis jetzt gebraucht, oder..?
Wenn ich jetzt das letzte aktuelle Modul hier aus dem Thread nehme, was brauche ich dann noch von meinen beiden define
Die folgenden Zeile ist überflüßig:
attr FB7390 userReadings eing0 eing1 eing2 eing3 eing4 A0 A1 A2 A3 A4 B0 B1 B2 B3 B4 C0 C1 C2 C3 C4 D0 D1 D2 D3 D4 E0 E1 E2 E3 E4
Die folgende Zeile solltest du auch direkt entfernen, da sie syntaktisch sowieso falsch ist:
#attr FB7390 reverse-search-cache-file ./log/Fritz_Box-%Y-%m.log Fritz_Box
Die korrekte Zeile ist ja bereits aktiv, daher würde ich diese falsche entfernen.
Gruß
Markus
ja die zweite ist ja sowieso raus war nur im Code noch drin, hatte ich nicht weiter drauf geschaut.
Ok dann nehme ich die Erste auch mal raus..!
Aber das: define <name> FB_CM_EXTENDER <FB_CALLMONITOR device>
muss ich doch zumindest so anpassen..?
define FB7390 FB_CM_EXTENDER FB_CALLMONITOR 10.0.0.1
und CallMon wird weiterhin so gebraucht..?
In deinem Fall genau genommen so
define CallMon FB_CM_EXTENDER FB7390
Die IP-Adresse wird dabei nicht benötigt, nur der Device-Name deine FB_CALLMONITOR-Instanz (in deinem Fall "FB7390")
Ok das habe ich jetzt mal angepaßt... Neustart und läuft
Sieht so aus als wenn sogar die alte Anrufliste erhalten bleibt.
Dieses wird also nicht verändert
define FB7390 FB_CALLMONITOR 10.0.0.1
nur der der CallMon.
Weiterhin hatte ich beim einspielen des neuen Moduls den 72_FB_CALLMONITOR.pm gesehen, aber der muss für mich jetzt logischerweise blieben, dachte erst ist noch ein altes Überbleibsel...!
DANKE
Hallo,
habe dem 72_FB_CM_Extender noch um ein "set del-entry <entry-number>" spendiert. Hiermit wird ein Eintrag in der Verbindungsliste gelöscht.
Grüße Jörg
wann kommt das Modul denn in svn? :)
Es müsste sich ein Maintainer finden. Das Modul ist von Elektrolurch entwickelt worden und sollte auch bei ihm bleiben. Finde ich jedenfalls.
Grüße Jörg
Gesendet von iPhone mit Tapatalk
Ich würde mich als Maintainer anbieten. Allerdings würde ich das Modul vorher überarbeiten und an meinen Stil anpassen, damit ich es auch dauerhaft maintainen kann.
Nun ist die Frage was Elektrolurch wünscht. Er kann (sofern er das möchte) das Modul auch selber weiterentwickeln, supporten und als Developer im FHEM SVN pflegen.
Nebenbei würde ich noch meine Frage von http://forum.fhem.de/index.php/topic,27218.msg279068.html#msg279068 gerne erneuern. Wozu sind die "method-*"-Attribute gut?
Viele Grüße
Markus
Hallo,
leider habe ich da mit dem Zugriff auf die developer-Umgebung etwas Probleme. Bei gitup ging es gar nicht, da nicht barrierefrei.
Zum Stil:
ich verwende keine tab-Einzüge für die Verschachtelungstiefe, da die nur optisch sinnvoll sind und mir nichts nützen.
Ich brauche die Klammern immer vorne und einzeln, da ich ansonsten den Überblick verliere. der übliche perl-Stil ist leider da für mich kontraporuktiv.
Wenn Du also das Modul umstellst, kann ich es nicht mehr weiterpflegen.
Für meine Zwecke tut es aber auch das, was es soll.
Habe also, mit anderen Worten n, nichts dagegen, wenn jemand es übernimmt.
Zitat:
Nebenbei würde ich noch meine Frage von http://forum.fhem.de/index.php/topic,27218.msg279068.html#msg279068 gerne erneuern. Wozu sind die "method-*"-Attribute gut?
Da kann man entweder perl-Code bei den entsprechenden Ereignissen aufrufen lassen:
method-connect {Telefon_Connect($INTERNAL_CONNECTION,$EXTERNAL_NAME,$INTERNAL_NUMBER,$EXTERNAL_NUMBER);;}
method-disconnect {TelefonDisconnect();;}
method-ring {TelefonRing($EXTERNAL_NAME,$INTERNAL_NUMBER,$EXTERNAL_NUMBER);;}
oder auch direkte fhem-Befehle.
Auch hat man Zugriff über die Pseudovariablen:
$EXTERNAL_NAME,$INTERNAL_NUMBER,$EXTERNAL_NUMBER
oder mit %
Habe ich den readingsGroup abgekupfert. :-)
Elektrolurch
Zitat von: Elektrolurch am 16 Mai 2015, 20:09:25
leider habe ich da mit dem Zugriff auf die developer-Umgebung etwas Probleme. Bei gitup ging es gar nicht, da nicht barrierefrei.
Das repository hat nix mit dem Forum zu tun. Du bekommst Einlass, wenn du einem der Maintainer ne Mail schreibst.
Zitat von: klausw am 16 Mai 2015, 22:44:38
Das repository hat nix mit dem Forum zu tun. Du bekommst Einlass, wenn du einem der Maintainer ne Mail schreibst.
Es geht nicht um Berechtigungen, sondern um Barrierefreiheit. Elektrolurch ist auf einen Screenreader angewiesen, da er sehr sehr schlecht oder gar nicht sehen kann.
Mein Vorschlag wäre, dass ihn einer der Maintainer einfach unterstützt und die veränderten Versionen eincheckt.
Grüße Jörg
@Elektrolurch: Wozu die method-Attribute da sind, weis ich bereits ;-) Was ich damit eher meinte, was soll das bringen? Was ist der Vorteil gegenüber einem notify auf event: connect / event: ring ... usw? Dort kann man genauso Perl-Expressions und FHEM-Befehle verwenden. Mir erschliest sich nicht so ganz der Vorteil gegenüber einem Notify. Alle Readings sind bei der Event-Abarbeitung bereits entsprechend mit allen Informationen gefüllt. Das heißt, man kann auf alle entsprechenden Readings bei der Event-Verarbeitung zugreifen, da sie die aktuellen Daten zum laufenden Event enthalten.
Beim Thema Barrierefreiheit von sourceforge habe ich natürlich keine Erfahrungen, aber reicht es dir nicht, wenn du dich mit dem svn-Befehl auf der Konsole bewegst? Du musst ja nicht unbedingt auf der sourceforge seite rumbrowsen sondern kannst ja auch alle Sachen über das svn-Kommando im Terminal durchführen.
Die Sourceforge-Seite ist (für mich) eher nur eine grafische Unterstützung um einzusehen was, wo geändert wurde. Lässt sich aber prinzipiell auch alles auf der Konsole abfragen.
Gruß
Markus
Hallo Markus,
Zitat:
was soll das bringen? Was ist der Vorteil gegenüber einem notify auf event: connect / event: ring ... usw? Dort kann man genauso Perl-Expressions und FHEM-Befehle verwenden. Mir erschliest sich nicht so ganz der Vorteil gegenüber einem Notify. Alle Readings sind bei der Event-Abarbeitung bereits entsprechend mit allen Informationen gefüllt. Das heißt, man kann auf alle entsprechenden Readings bei der Event-Verarbeitung zugreifen, da sie die aktuellen Daten zum laufenden Event
Ist schon ziemlich lange her, dass ich mich dem CallMonitor beschäftigt habe und damals war mir nicht klar, ob die readings schon tatsächlich befüllt waren. Da ja auch Anrufe quasi gleichzeitig passieren können und die Zuordnung über die CallID erfolgt, habe ich das TM geschrieben, um die Daten konsistent und CallID bezogen zu sammeln.
Wenn das so ist, dass die Daten konsistent schon beim ersten Event eines Anrufs in den readings vollständig sind, hätte ich mir das nämlich alles sparen können....
Jetzt gibt es halt für die "methods" für die einzelnen Werte Pseudonamen und man erspart sich readingsVal per perl aufzurufen, wenn man nur fhem-Code hinschreiben möchte, wie z.B.:
set myTV call Anruf von $EXTERNAL_Name mit $EXTERNAL_NUMBER
Elektrolurch
Elektrolurch
ich wollte gern wissen ob es die letzten Tage ein Update des 72_FB_CM_Extender.pm gab.
Ich war 4 Wochen weg und habe da nicht drauf geachtet als ich das Update gemacht habe.
Mein Fehler momentan ist das anstatt der zugehörigen Namen wieder nur "unknown" angezeigt wird, dass funktionierte aber bei mir bis vor kurzem.
Ich habe auch beim Callmonitor folgende Attribute eingetragen an denen ich nichts geändert habe
reverse-search dasoertliche.de,phonebook,textfile,klicktel.de
reverse-search-cache 1
reverse-search-cache-file /opt/fhem/callmoncache.txt
reverse-search-phonebook-file ./log/Fritz_Box_Telefonbuch.xml
reverse-search-text-file /opt/fhem/textfile.txt
muss evtl. was angepasst werden ..?
Hallo,
da es für den 72_FB_Extender noch keinen Maintainer gibt, ist er auch noch nicht im Fhem Repository hinterlegt, und wird somit auch nicht über Update verteilt.
Grüße Jörg
Zitat von: JoWiemann am 01 Juni 2015, 13:33:48
da es für den 72_FB_Extender noch keinen Maintainer gibt, ist er auch noch nicht im Fhem Repository hinterlegt, und wird somit auch nicht über Update verteilt.
OK, dann sollte es ja ohnehin funktionieren, denn ich habe ja nichts verändert... war ja überhaupt nicht zuhause.
Was kann das jetzt noch sein..?
Glaskugel?
Nein, aber ein paar Infos wären hilfreich. Unter anderem setzt doch mal bitte verbose hoch und schau mal ins Log.
Grüße Jörg
ich habe verbose auf 5 er zeigt mir vom Callmonitor folgendes
2015.06.01 14:12:32 4: FB_CM_EXTENDER_UpdateValue: updateingindex F0 A0 0
2015.06.01 14:12:32 5: FB_CM_EXTENDER_UpdateValue: args callID: 0 col: A val: 0
2015.06.01 14:12:32 4: FB_CM_EXTENDER_UpdateValue: updateingindex F0 E0 00:00
2015.06.01 14:12:32 5: FB_CM_EXTENDER_UpdateValue: args callID: 0 col: E val: 00:00
2015.06.01 14:12:32 5: FB_CM_EXTENDER_Monitor: Disconnect befor FB_CM_EXTENDER_UpdateTable mot all
2015.06.01 14:12:32 4: FB_CM_EXTENDER_Monitor: stat: disconnect event: call_id arg: 0
2015.06.01 14:12:32 4: FB_CM_EXTENDER_Monitor: stat: disconnect event: external_connection arg: SIP0
2015.06.01 14:12:32 4: FB_CM_EXTENDER_Monitor: stat: disconnect event: direction arg: incoming
2015.06.01 14:12:32 4: FB_CM_EXTENDER_Monitor: stat: disconnect event: missed_call arg: 0177xxxxxxx
2015.06.01 14:12:32 4: FB_CM_EXTENDER_Monitor: stat: disconnect event: external_number arg: 0177xxxxxxx
2015.06.01 14:12:32 4: FB_CM_EXTENDER_Monitor: stat: disconnect event: missed_call_line arg: 05131xxxxx
2015.06.01 14:12:32 4: FB_CM_EXTENDER_Monitor: stat: disconnect event: external_name arg: unknown
2015.06.01 14:12:32 4: FB_CM_EXTENDER_Monitor: stat: disconnect event: call_duration arg: 0
2015.06.01 14:12:32 4: FB_CM_EXTENDER_Monitor: stat: disconnect event: internal_number arg: 05131xxxxx
2015.06.01 14:12:32 3: FB_CM_EXTENDER_Monitor: status: disconnect
2015.06.01 14:12:27 4: FB_CM_EXTENDER_UpdateTable: ID 0
2015.06.01 14:12:27 4: FB_CM_EXTENDER_Store: no linefilter definied
2015.06.01 14:12:27 5: FB_CM_EXTENDER_Monitor: Ring befor FB_CM_EXTENDER_UpdateTable mot all
2015.06.01 14:12:27 3: FB_CM_EXTENDER_Monitor: Call (ring) from unknown 0177xxxxxxx callID: 0
2015.06.01 14:12:27 4: FB_CM_EXTENDER_Monitor: stat: ring event: call_id arg: 0
2015.06.01 14:12:27 4: FB_CM_EXTENDER_Monitor: stat: ring event: internal_number arg: 05131xxxxx
2015.06.01 14:12:27 4: FB_CM_EXTENDER_Monitor: stat: ring event: direction arg: incoming
2015.06.01 14:12:27 4: FB_CM_EXTENDER_Monitor: stat: ring event: external_connection arg: SIP0
2015.06.01 14:12:27 4: FB_CM_EXTENDER_Monitor: stat: ring event: external_name arg: unknown
2015.06.01 14:12:27 4: FB_CM_EXTENDER_Monitor: stat: ring event: external_number arg: 0177xxxxxxx
2015.06.01 14:12:27 3: FB_CM_EXTENDER_Monitor: status: ring
und im logfile von Fhem:
2015.06.01 13:16:24 2: FB_CALLMONITOR (FB7390) - read 3 contacts from textfile
2015.06.01 13:16:24 3: FB_CALLMONITOR (FB7390) - loading textfile /opt/fhem/textfile.txt
2015.06.01 13:16:24 2: FB_CALLMONITOR (FB7390) - read 33 contacts from Cache
2015.06.01 13:16:24 3: FB_CALLMONITOR (FB7390) - loading cache file /opt/fhem/callmoncache.txt
Noch zur Information, ich habe das mal mit meinem Handy probiert und auf den Telefonen zeigt er mir den zugehörigen Namen, also gibt die fritzbox diesen richtig aus, aber eben in der Anrufliste nur unknown.
Mich wundert ein wenig der Status mit disconnect :-\
Nach einem weiteren reload noch folgendes:
2015.06.01 14:26:18 1: PERL WARNING: Subroutine FB_CM_EXTENDER_Attr redefined at ./FHEM/72_FB_CM_Extender.pm line 682.
2015.06.01 14:26:18 1: PERL WARNING: Subroutine FB_CM_EXTENDER_Monitor redefined at ./FHEM/72_FB_CM_Extender.pm line 488.
2015.06.01 14:26:18 1: PERL WARNING: Subroutine FB_CM_EXTENDER_Proc redefined at ./FHEM/72_FB_CM_Extender.pm line 458.
2015.06.01 14:26:18 1: PERL WARNING: Subroutine FB_CM_EXTENDER_Notify redefined at ./FHEM/72_FB_CM_Extender.pm line 431.
2015.06.01 14:26:18 1: PERL WARNING: Subroutine FB_CM_EXTENDER_UpdateValue redefined at ./FHEM/72_FB_CM_Extender.pm line 400.
2015.06.01 14:26:18 1: PERL WARNING: Subroutine FB_CM_EXTENDER_UpdateTable redefined at ./FHEM/72_FB_CM_Extender.pm line 333.
2015.06.01 14:26:18 1: PERL WARNING: Subroutine FB_CM_EXTENDER_Store redefined at ./FHEM/72_FB_CM_Extender.pm line 257.
2015.06.01 14:26:18 1: PERL WARNING: Subroutine FB_CM_EXTENDER_Set redefined at ./FHEM/72_FB_CM_Extender.pm line 179.
2015.06.01 14:26:18 1: PERL WARNING: Prototype mismatch: sub main::FB_CM_EXTENDER_Set ($@) vs ($$@) at ./FHEM/72_FB_CM_Extender.pm line 252.
2015.06.01 14:26:18 1: PERL WARNING: Subroutine FB_CM_EXTENDER_Undef redefined at ./FHEM/72_FB_CM_Extender.pm line 172.
2015.06.01 14:26:18 1: PERL WARNING: Subroutine FB_CM_EXTENDER_Define redefined at ./FHEM/72_FB_CM_Extender.pm line 146.
2015.06.01 14:26:18 1: PERL WARNING: Subroutine FB_CM_EXTENDER_Initialize redefined at ./FHEM/72_FB_CM_Extender.pm line 114.
Welche Version vom Callmonitor hast Du.
Grüße Jörg
72_FB_CALLMONITOR.pm 8467 2015-04-23
72_FB_CM_EXTENDER.pm 1002 2015-04-04 (1.72)
mir fällt da noch etwas ein bezüglich der Perl Version, kann es damit zusammenhängen..? Ich habe ja die v5.20.2
Hast Du vielleicht noch "All" für die Rückwärtssuche im Attribut stehen. Wenn ja, dann ändere das Bitte. Ansonsten verweigert der Callmonitor die Mitarbeit.
Grüße Jörg
Gesendet von iPhone mit Tapatalk
nein das habe ich schon länger nicht drin, schau mal hier (http://forum.fhem.de/index.php/topic,27218.msg299821.html#msg299821) meine Attribute
Stehen in deinem Cache-File evtl. die gewünschten Nummern mit "unknown" drinn?
Falls nicht, bitte einmal ein Logauszug machen mit verbose 5 im Callmonitor.
Zitat von: Markus Bloch am 02 Juni 2015, 16:22:47
Stehen in deinem Cache-File evtl. die gewünschten Nummern mit "unknown" drinn?
das ist doch der Pfad der im Attribut reverse-search-cache-file steht, oder.? also dieser /opt/fhem/callmoncache.txt
Wenn ja wundert es mich das dieser noch vom 29.05. ist und da stehen auch keine aktuellen Nummern drin, also wenn ich jetzt mit dem Handy bei mir anrufe steht diese Nummer nicht drin.
Die Nummern die da drin stehen haben, wenn Nr. hinterlegt und es sind auch aktuelle Namen drin.
Irgendwie sehe ich nicht durch.
Hier mal dass Log:
2015.06.02 21:51:29 4: FB_CM_EXTENDER_UpdateValue: updateingindex F0 A0 0
2015.06.02 21:51:29 5: FB_CM_EXTENDER_UpdateValue: args callID: 0 col: A val: 0
2015.06.02 21:51:29 4: FB_CM_EXTENDER_UpdateValue: updateingindex F0 E0 00:00
2015.06.02 21:51:29 5: FB_CM_EXTENDER_UpdateValue: args callID: 0 col: E val: 00:00
2015.06.02 21:51:29 5: FB_CM_EXTENDER_Monitor: Disconnect befor FB_CM_EXTENDER_UpdateTable mot all
2015.06.02 21:51:29 4: FB_CM_EXTENDER_Monitor: stat: disconnect event: call_id arg: 0
2015.06.02 21:51:29 4: FB_CM_EXTENDER_Monitor: stat: disconnect event: external_connection arg: SIP0
2015.06.02 21:51:29 4: FB_CM_EXTENDER_Monitor: stat: disconnect event: missed_call arg: 0177xxxxxxx
2015.06.02 21:51:29 4: FB_CM_EXTENDER_Monitor: stat: disconnect event: internal_number arg: 05131xxxxx
2015.06.02 21:51:29 4: FB_CM_EXTENDER_Monitor: stat: disconnect event: external_name arg: unknown
2015.06.02 21:51:29 4: FB_CM_EXTENDER_Monitor: stat: disconnect event: direction arg: incoming
2015.06.02 21:51:29 4: FB_CM_EXTENDER_Monitor: stat: disconnect event: call_duration arg: 0
2015.06.02 21:51:29 4: FB_CM_EXTENDER_Monitor: stat: disconnect event: missed_call_line arg: 05131xxxxx
2015.06.02 21:51:29 4: FB_CM_EXTENDER_Monitor: stat: disconnect event: external_number arg: 0177xxxxxxx
2015.06.02 21:51:29 3: FB_CM_EXTENDER_Monitor: status: disconnect
2015.06.02 21:51:21 4: FB_CM_EXTENDER_UpdateTable: ID 0
2015.06.02 21:51:21 4: FB_CM_EXTENDER_Store: no linefilter definied
2015.06.02 21:51:21 5: FB_CM_EXTENDER_Monitor: Ring befor FB_CM_EXTENDER_UpdateTable mot all
2015.06.02 21:51:21 3: FB_CM_EXTENDER_Monitor: Call (ring) from unknown 0177xxxxxxx callID: 0
2015.06.02 21:51:21 4: FB_CM_EXTENDER_Monitor: stat: ring event: call_id arg: 0
2015.06.02 21:51:21 4: FB_CM_EXTENDER_Monitor: stat: ring event: external_connection arg: SIP0
2015.06.02 21:51:21 4: FB_CM_EXTENDER_Monitor: stat: ring event: direction arg: incoming
2015.06.02 21:51:21 4: FB_CM_EXTENDER_Monitor: stat: ring event: external_name arg: unknown
2015.06.02 21:51:21 4: FB_CM_EXTENDER_Monitor: stat: ring event: external_number arg: 0177xxxxxxx
2015.06.02 21:51:21 4: FB_CM_EXTENDER_Monitor: stat: ring event: internal_number arg: 05131xxxxx
2015.06.02 21:51:21 3: FB_CM_EXTENDER_Monitor: status: ring
EDITH://
ich habe heute abend nochmals die Telefonbücher eingegeben und siehe da er hat zumindest mal einen Fehler gezeigt.
could not identify remote phonebooks - no password available to access FritzBox
das habe ich jetzt nochmals eingegeben, war mir bisher nicht bewußt das er irgendwann danach gefragt hatte.
Morgen werde ich mal schauen ob das alles evtl. doch noch funktioniert...!
Diese Logmeldungen bringen mir nichts. Es ist ja kein Fehler im FB_CM_EXTENDER sondern im FB_CALLMONITOR. Deswegen bitte im FB_CALLMONITOR ein verbose 5 setzen, dann eine Rückwärtssuche starten und die Logs posten.
ich habe die gleichen Probleme wie moonsorrox und trag mich hier mal kurz ein um "mitzuhören"...
@moonsorrox: an perl kann das m.E: nicht liegen , hab das noch auf nem RPI mit wheezy !
Zitat von: Markus Bloch am 03 Juni 2015, 08:19:09
Diese Logmeldungen bringen mir nichts.
hat sich erledigt..! :D
OK, ich hatte ja alles umgezogen auf mein neues System und hier gab er mir ja einmal die Fehlermeldung mit dem Fritzbox Passwort, siehe mein EDITH..!
Hallo zusammen,
jetzt wieder zurück zum ursprünglichen Thema. Ich möchte einmal meine Variante von Elektrolurchs Modul vorstellen. Es vereint das Event-Sammeln und deren Darstellung in einem Modul ohne readingsGroups und ellenlangen Readings-Listen.
Es beinhaltet aktuell so gut wie alle Features von Elektrolurchs Version (copy&paste sei Dank) bis auf die monitor-type Funktionalität.
Es bietet aktuell folgende Attribute:
- number-of-calls:0..20 - Die Anzahl der anzuzeigenden Anrufe / Zeilen
- internal-number-filter - Analoge Funktionalität zu line-filter von Elektrolurch => Filtern und Umbenennen von internen MSN's
- connection-mapping - Ein Mapping Hash analog zu internal-number-filter mit dem man den Endgeräten eigene Namen verpassen kann
- show-connection:0,1 - Anzeigen des Endgerätenamens in der Tabelle (Reading internal_connection vom FB_CALLMONITOR nach erfolgtem connection-mapping)
- show-internal-number:0,1 - Anzeigen der internen MSN (nach erfolgtem Mapping durch internal-number-filter)
- show-icons:0,1 - Anzeigen des Status als Icon (aktuell nur fhemSVG Icons)
- time-format-string: ein Formatstring für strftime() (siehe Google für die entsprechenden Platzhalter)
- ordering:ascending,descending - aktuellsten Anruf oben (ascending) oder unten (descending) in der Liste anzeigen
- language:de,en - Sprach/Locale-Einstellung für die Spaltenbezeichnungen und Zeitformatierungen (Wochentage/Monate)
- disable:0,1 - Sollte klar sein. Das Teil soll arbeiten, oder nicht.
Wenn man die Icons ausschaltet wird als Status folgende Zeichenfolgen verwendet:
=> [=] - eingehendes aktuell laufendes Gespräch
<= [=] - ausgehendes aktuell laufendes Gespräch
<= ((o)) - ausgehender Gesprächsversuch (klingelt)
=> ((o)) - eingehender Gesprächsversuch (klingelt)
<= X - ausgehender erfolgloser Gesprächsversuch (Gegenseite hat nicht abgenommen)
=> X - eingehender erfolgloser Gesprächsversuch (Anruf in Abwesenheit / "missed-call")
<= - ausgehendes erfolgreiches Gespräch (beendet)
=> - ausgehendes erfolgreiches Gespräch (beendet)
Vorteile:
- Alles in einem Modul ohne zusätzliche Definitionen einer readingsGroup
- Keine ellenlangen kryptischen Readings mehr (die Liste wird dennoch gespeichert und ist nach Neustart wieder da)
Nachteile:
- aktuell wird die Tabelle nicht bei neuen Events in der Oberfläche per Longpoll/Inform-Mechanismus aktualisiert. Da arbeite ich noch drann.
- monitor-type Mechanismus aktuell nicht möglich. Würde ich aber noch nachimplementieren.
Über Optik/Aussehen/Wortwahl/Namensbezeichnung können wir gerne streiten, ist nichts finales sondern nur der erste Wurf.
So in dem Stile würde ich das einchecken und dann auch entsprechend maintainen.
Anbei findet ihr ein paar Bilder dazu sowie das eigentliche Modul. Genauso einfach wie bei Elektrolurchs Version mit dem Namen des Callmonitors definieren:
define <name> FB_CALLLIST <Callmonitor-Devicename>
Würde mich über Feedback freuen.
Vielen Dank Gruß
Markus
_____________________
1. Update: Jetzt sind die Icons auch farbig zur besseren Unterscheidung: Grün => ausgehend / Blau => eingehend / Rot => erfolglose Gespräche (beide Richtungen)
2. Update: Neues Attribut list-type:all,incoming,outgoing,missed-calls,completed,active mit der man die anzuzeigenden Gespräche filtern kann.
3. Update: list-type:missed-calls zeigt nur eingehende missed-calls an. Ausgehende missed-calls haben nun ein grünes Icon.
Hallo Markus,
Danke für die Arbeit ! ich werde das auf jeden Fall mal testen, komme aber erst heute abend dazu wenn
ich irgendwie remote auf das system komme.
Gruss
klaus
Hab in meinem obigen Post nochmal ein Update reingesetzt mit neuem Attribute list-type. Damit kann man nur bestimmte Gesprächsarten anzeigen lassen. Momentan gibt es folgende Werte:
- all (wie der Name schon sagt, alle Gespräche werden angezeigt. Standard)
- incoming (nur eingehende Gespräche. Laufende und abgeschlossene)
- outgoing (nur ausgehende Gespräche. Laufende und abgeschlossene)
- missed-calls (nur fehlgeschlagene Anrufe. Ein- und Ausgehend)
- completed (nur abgeschlossene Anrufe. Erfolgreiche und Nichterfolgreiche)
- active (nur laufende Gespräche anzeigen)
ich würde in der missed-calls nur eingehende verpasste Anrufe anzeigen, wie es üblich ist (Fritzbox, Handy)
LG Tom_S
habe ich geupdatet
Das automatische Updaten würde ich beim einchecken in das SVN mitliefern, da hierfür noch weitere Dateien notwendig sind, die ich nicht umbedingt hier im Thread hochladen wollte. Bei mir funktioniert es aber schon technisch. Muss es nur noch schön machen.
Prinzipiell wäre das so momentan der Stand wie ich es nutzen würde.
Auf Feedback würde ich mich freuen.
Gruß
Markus
hallo Markus
wollte gerade mal testen. Wenn ich das Device wie oben beschrieben anlege, sehe ich in der Raumansicht erstmal nichts.
Nach einem Anruf erscheint der Name "TM2" und dahinter ein Dropdown mit fbcalllist, mehr nicht. Habe ich etwas übersehen?
Ist auf allen Systemen so (Windows, Ubuntu, RPI)
mfg
Tom_S
Hallo Tom,
sorry für die Umstände. In dem Modul waren schon die notwendigen Vorarbeiten für die automatische Aktualisierung per inform-Mechanismus enthalten. Die funktionieren aber ohne die zusätzlichen Dateien nicht. Habe ich jetzt auskommentiert.
Lad es dir bitte nochmal neu runter.
Vielen Dank
Gruß
Markus
hallo Markus,
Ich weis nicht, wie es aussieht wenn es fertig ist, aber im Moment passt die Ausrichtung und die Breite der Tabelle nicht.
Die riesigen Icons gefallen mir auch nicht, aber das kann ich ja ändern.
Warum hängst du die .js Datei nicht auch an. Dann kann doch jeder testen was er will.
LG
Das ist momentan der aktuelle Stand.
Modul wie gehabt in den FHEM Ordner und die .js Datei nach www/pgm2/
bezgl. der Icons: Ich nehme gerne Vorschläge oder eigene Entwürfe an ;-)
habe es mal so eingebaut und werde mal sehen ob alles geht.
Was mir schon aufgefallen ist, die Tabelle hat eine andere Breite als die anderen Elemente in der Raumansicht.
Das mit den Icon ist Geschmacksache. Ich finde sie zu groß. Da werden die Zeilen unnötig hoch und man bekommt weniger auf den Bildschirm.
LG Tom_S
hallo Markus,
bis jetzt funktioniert die Calllist schon mal ganz gut. Icons ist auch kein Problem. Wenn man sich eigene unter default erstellt, werden diese angezeigt. Für mich o.K.
Was nicht geht:
- Wenn ich die Calllist in eine "group" nehme funktioniert der Longpoll Mechanismus nicht mehr. Die Anzeige verschwindet bei einem Event, und taucht erst nach neuladen der Seite wieder auf.
- Die Liste erscheint unabhängig vom Namen immer am Ende der Raumansicht (ist bei readigsgroup auch so)
Für den Enduser ist es trotzdem sehr viel einfacher eine funktionierende Calllist zu erstellen.
Ich wäre auch dafür die Zellen linksbündig und nich zentriert zu machen
LG
Hallo Tom,
zu deinen genannten Punkten.
- Für die genannten Longpoll-Probleme habe ich ein neues js-File hochgeladen, was das Problem behebt.
- Das die Liste immer am Ende erscheint war so festgesetzt, ich hab es jetzt mal gelöst und man kann die Liste nun mit sortby anordnen. Schau mal ob das besser ist.
Beide Files sind im letzten Post. Ich will nicht immer in jedem neuen Post wieder neue Files anhängen.
Viele Grüße
Markus
Meine Meinung - lass die alte Version (funktioniert wie Readinggroups) mit dem neuen .js File. Dann ist alles wie beim call_extender.
LG Tom_S
Das war die Idee, weil Tabelle in Tabelle sieht irgendwie blöd aus.
Bei mir stürzt fhem ab sobald ich das Modul aktiv habe und ein Ruf ankommt :o
Mal sehen ob im log was steht !
kvo1
//EDIT
folgende Meldung bekomme ich
2015.06.08 21:20:08 1: PERL WARNING: Argument "1/8" isn't numeric in numeric gt (>) at ./FHEM/72_FB_CALLLIST.pm line 470
Lad bitte das Modul nochmal neu aus diesem Post: http://forum.fhem.de/index.php/topic,27218.msg301567.html#msg301567
die Meldung kommt bei mir auch. Aber deshalb stürzt FHEM doch nicht ab.
Hast du die aktuelle Version?.
LG Tom_S
Sorry, Überschneidung
habe gerade getestet
Zitat von: Markus Bloch am 08 Juni 2015, 22:34:21
Lad bitte das Modul nochmal neu aus diesem Post: http://forum.fhem.de/index.php/topic,27218.msg301567.html#msg301567
ich habe das jetzt auch mal mitgemacht und sehe nur eine breite Liste über die ganze Seite, nur ist sie leer.
Getestet habe ich es mal mit einem Anruf von meinem Handy, es kommt aber kein Listeneintrag...!
Wo muss ich noch schauen..?
Fehlermeldungen gibt es keine bei mir
Zeig mal bitte die Konfiguration der Liste und deinem Callmonitor.
was soll ich vom Callmonitor zeigen das log, readings oder Attribute..?
ich hänge mal ein screenshot ran
Hallo Markus,
Zitat von: Markus Bloch am 08 Juni 2015, 22:34:21
Lad bitte das Modul nochmal neu aus diesem Post: http://forum.fhem.de/index.php/topic,27218.msg301567.html#msg301567
ahhhhja , das schaut schon besser aus! Danke.
Ich finde nur die ganze Liste ist relativ breit (vielleicht per Konfig änderbar) und
der Name fehlt .... liegt sicher noch an meiner Konf.?
gruss
klaus
Der Name (bzw. Alias) steht in der Raumansicht direkt über der Tabelle als Link
Zitat von: moonsorrox am 08 Juni 2015, 23:23:52
was soll ich vom Callmonitor zeigen das log, readings oder Attribute..?
ich hänge mal ein screenshot ran
Von deinem Callmonitor die Attribute. Das was du dort als Bild gepostet hast ist die Anrufliste.
Zitat von: Markus Bloch am 09 Juni 2015, 00:27:27
Der Name (bzw. Alias) steht in der Raumansicht direkt über der Tabelle als Link
ich meinte den Namen des Anrufers / Angerufenen also zwischen "ZEitpunkt" und "Rufnummer"!
Hast Du noch vor die autom. Aktualisierung einzubauen ?
klaus
Zitat von: Markus Bloch am 09 Juni 2015, 00:28:42
Von deinem Callmonitor die Attribute. Das was du dort als Bild gepostet hast ist die Anrufliste.
Ja klar, nun hier die Attribute
EDITH://
falsche Bild jetzt das richtige
@moonsorrox ... die Attr´s waren doch oben auch schon zu sehen (im ersten Bild) ;)
Bei mir hat hat
ZitatLad bitte das Modul nochmal neu aus diesem Post: http://forum.fhem.de/index.php/topic,27218.msg301567.html#msg301567
und ein reboot geholfen !
klaus
Zitat von: kvo1 am 09 Juni 2015, 07:57:27
@moonsorrox ... die Attr´s waren doch oben auch schon zu sehen (im ersten Bild) ;)
Bei mir hat hat
und ein reboot geholfen !
klaus
falsche Bild geladen...
reboot habe ich schon gemacht und das Modul habe ich auch genommen welches Markus dir verlinkt hatte... :-\
Aber der Callmonitor zeigt dir die Namen an? Die Calllist stellt nix mit den Namen an, sondern nimmt sie 1-zu-1 aus dem Callmonitor.
Zitat von: Markus Bloch am 09 Juni 2015, 16:28:57
Aber der Callmonitor zeigt dir die Namen an? Die Calllist stellt nix mit den Namen an, sondern nimmt sie 1-zu-1 aus dem Callmonitor.
Sorry Markus,
ich hatte da wohl einen Denkfehler, dargestellt wird hier wohl der "external_name" aus dem Callmonitor !
Irgendwie war ich immer auf den Namen im Telefonbuch meiner Frutzbox aus :-[
Mir ist nur die Calllist irgendwie zu breit , geht über die Ganze Breite , kann man den Frame nicht begrenzen !?
klaus
Zitat von: Markus Bloch am 09 Juni 2015, 16:28:57
Aber der Callmonitor zeigt dir die Namen an? Die Calllist stellt nix mit den Namen an, sondern nimmt sie 1-zu-1 aus dem Callmonitor.
@kvo1
ich glaube er hat mich damit gemeint.... weil bei mir werden Nummern und Namen angezeigt, aber in der Neuen Anrufliste eben nichts.
Nach reboot, Neustart von Fhem usw. bekomme ich immer noch keine Anzeige.
Insgesamt ist die Liste natürlich zu breit, aber schöner wäre es wenn überhaupt erst mal was drin stehen würde...! :-\
mir ist gerade aufgefallen, dass bei "Zeitpunkt" nur das Datum steht.
LG
Zitat von: Tom_S am 09 Juni 2015, 18:43:41
mir ist gerade aufgefallen, dass bei "Zeitpunkt" nur das Datum steht.
LG
da gibt es da attr time-format-string %a. %d %b %Y %T
- da ändert sich bei mir aber nichts an der Anzeige.
- sollte nicht auch ohne Formatierung die Zeit mitangezeigt werden wenn man das attr nicht setzt
LG
mir ist grad aufgefallen das es bei mir in den Attributen, dieses nicht gibt..!
Zitatordering: ascending
wobei das ja wohl für die Richtung da ist, also aufsteigend
ich sehe es auf dem Bild (http://forum.fhem.de/index.php/topic,27218.msg301156.html#msg301156) von Markus..! denn ich suche krampfhaft nach einem Fehler bei mir :( :-\
Zitat von: moonsorrox am 09 Juni 2015, 18:59:57
mir ist grad aufgefallen das es bei mir in den Attributen, dieses nicht gibt..!wobei das ja wohl für die Richtung da ist, also aufsteigend
ich sehe es auf dem Bild (http://forum.fhem.de/index.php/topic,27218.msg301156.html#msg301156) von Markus..! denn ich suche krampfhaft nach einem Fehler bei mir :( :-\
Gibt es bei mir auch nicht.
Klaus
@ Markus
mit der aktuell oben angehängten Version funktioniert die Aktualisierung nicht mehr.
LG Tom_S
Zitat von: kvo1 am 09 Juni 2015, 19:07:21
Gibt es bei mir auch nicht.
Klaus
OK
hier evtl. noch etwas für Markus, ich wollte grad mal die das Attr. list-type von all auf incoming stellen und mir ist Fhem abgeschmiert. PROBIERT DAS MAL BEI EUCH OB DAS GEHT..!!
Fehler:
Type of argument to keys on reference must be unblessed hashref or arrayref at ./FHEM/72_FB_CALLLIST.pm line 324.
und ich bekomme weitere Fehler:
keys on reference is experimental at ./FHEM/72_FB_CALLLIST.pm line 300, <$fh> line 427.
keys on reference is experimental at ./FHEM/72_FB_CALLLIST.pm line 324, <$fh> line 427.
keys on reference is experimental at ./FHEM/72_FB_CALLLIST.pm line 326, <$fh> line 427.
keys on reference is experimental at ./FHEM/72_FB_CALLLIST.pm line 328, <$fh> line 427.
keys on reference is experimental at ./FHEM/72_FB_CALLLIST.pm line 330, <$fh> line 427.
keys on reference is experimental at ./FHEM/72_FB_CALLLIST.pm line 332, <$fh> line 427.
keys on reference is experimental at ./FHEM/72_FB_CALLLIST.pm line 337, <$fh> line 427.
keys on reference is experimental at ./FHEM/72_FB_CALLLIST.pm line 475, <$fh> line 427.
Zitathier evtl. noch etwas für Markus, ich wollte grad mal die das Attr. list-type von all auf incoming stellen und mir ist Fhem abgeschmiert. PROBIERT DAS MAL BEI EUCH OB DAS GEHT..!!
GEHT und keine Fehler !
ordering: ascending
heißt wohl jetzt list-order ascending
Hallo zusammen,
hier nochmal der aktuelle Stand. Es haben sich einige Namen von Attributen geändert.
Ich habe nochmal ein Bild von meiner Definition angehangen.
Viele Grüße
Markus
Zitat von: Tom_S am 09 Juni 2015, 18:58:05
- da ändert sich bei mir aber nichts an der Anzeige.
- sollte nicht auch ohne Formatierung die Zeit mitangezeigt werden wenn man das attr nicht setzt
LG
Hallo Tom,
evtl. heißen bei dir die Platzhalter anders. Die möglichen Platzhalter findest du in der manpage zu strftime()
Je nach System kann es hier Unterschiede geben und du musst evtl. %H:%M:%S verwenden anstatt %T
Viele Grüße
Markus
@Rene,
könnte es sein das Dir irgend eine Lib fehlt (bist doch auf Debian 8 umgestiegen , oder ?)
2015.06.09 19:31:56 4: FB_CALLLIST (FB7272_LIST) - start processing event call for Call-ID 0
2015.06.09 19:31:56 4: FB_CALLLIST (FB7272_LIST) - cleaning up call list
2015.06.09 19:31:56 5: FB_CALLLIST (FB7272_LIST) - start dumping of list to file
2015.06.09 19:31:56 5: FB_CALLLIST (FB7272_LIST) - found Compress::Zlib module, compressing dump
2015.06.09 19:31:56 5: FB_CALLLIST (FB7272_LIST) - saving compressed list dump: compressed:eJztlE1LhFAUhvfzK1wEbkq830rMwEC0rE17uellvKTH8KMC8b9XKhE1zkxXJQa8+/Pccw7Pey5iWcRXmzpWybPKm/pm+7BtrLVVr6zBZyNKiCcQQtwhhArPttabgxWDJPVWqhxkEoBMVYuxK3iC7BXsy3G8Kn1UeUd0kXAFR8wXyIwayiQJdNTTzBga9nTmUYEZZ8wMGelchaXOoINlVbnLNOzMYHkF8FEcfM7a8tC4McMM4Ht3t/d3httPZFEG6kVB2ZHaDv8Mag793RvtMk4d7FK+GH0CY6/RjBGPIjGiq6jK5Zc27v8HI9VFoaLZcmG4/J+hiHTRk2eJBvaxoA5DGJMlGscZMxz739ngU2RDQ5ilxtk4f6sJcaiP0WL1CYyzOfjjpJ7m4E+q8mBFc716B0YaKUc=
2015.06.09 19:32:04 4: FB_CALLLIST (FB7272_LIST) - start processing event disconnect for Call-ID 0
2015.06.09 19:32:04 4: FB_CALLLIST (FB7272_LIST) - cleaning up call list
2015.06.09 19:32:05 5: FB_CALLLIST (FB7272_LIST) - start dumping of list to file
2015.06.09 19:32:05 5: FB_CALLLIST (FB7272_LIST) - found Compress::Zlib module, compressing dump
Zitat von: moonsorrox am 09 Juni 2015, 18:20:48
@kvo1
ich glaube er hat mich damit gemeint.... weil bei mir werden Nummern und Namen angezeigt, aber in der Neuen Anrufliste eben nichts.
Nach reboot, Neustart von Fhem usw. bekomme ich immer noch keine Anzeige.
Insgesamt ist die Liste natürlich zu breit, aber schöner wäre es wenn überhaupt erst mal was drin stehen würde...! :-\
Erläutere dein Problem mal bitte etwas näher mit ein paar Bildern evtl. Mit der Aussage "XY funktioniert nicht" kann man nicht wirklich eine Problemeingrenzung betreiben. ;-)
Da wiegesagt Calllist nichts mit den Namen macht und sie 1:1 vom Callmonitor durchgibt, muss vorher schon was schief laufen.
Gruß
Markus
Markus,
letzte Version nochmal erneuert und grob getestet .... läuft !
klaus
jetzt weis ich auch, warum mir das noch nicht aufgefallen ist. Auf dem Raspi geht es ja.
ZitatJe nach System kann es hier Unterschiede geben und du musst evtl. %H:%M:%S verwenden anstatt %T
ist dann der Tip für Windows.
Du kannst es ja vielleicht als default für Windows einbauen.
LG Tom_S
Hallo Markus
ich bekomme aus dem Callmonitor folgende Meldung
Zitat2015.06.09 21:03:21 3: NTFY return: FB7272:could not identify remote phonebooks
Ist aber vorhanden !
reverse-search-phonebook-file ./log/Fritz_Box_Telefonbuch.xml
sorry , sicher ganz trivial ?
klaus
Hallo klaus,
zeig mal bitte deine gesamte Attributsliste von deinem Callmonitor-Device
Danke
Gruß
Markus
Hallo Markus,
hier bitte
define FB7272 FB_CALLMONITOR 192.168.69.1
attr FB7272 country-code 0049
attr FB7272 fritzbox-remote-phonebook 1
attr FB7272 fritzbox-remote-phonebook-via web
attr FB7272 group FritzBox Callmonitor
attr FB7272 icon phone_dial@LightSeaGreen
attr FB7272 local-area-code 030
attr FB7272 reverse-search dasoertliche.de,phonebook,textfile,klicktel.de
attr FB7272 reverse-search-cache 1
attr FB7272 reverse-search-cache-file /opt/fhem/callmoncache.txt
attr FB7272 reverse-search-phonebook-file ./log/Fritz_Box_Telefonbuch.xml
attr FB7272 reverse-search-text-file /opt/fhem/textfile.txt
attr FB7272 room Telefon
klaus
Zitat von: Tom_S am 09 Juni 2015, 21:04:13
jetzt weis ich auch, warum mir das noch nicht aufgefallen ist. Auf dem Raspi geht es ja.
ist dann der Tip für Windows.
Du kannst es ja vielleicht als default für Windows einbauen.
LG Tom_S
Ich habe es bei mir im Modul als Standard "%a, %d %b %Y %H:%M:%S" genommen. Funktioniert unter Linux genauso.
Viele Grüße
Markus
Zitat von: kvo1 am 09 Juni 2015, 22:15:13
Hallo Markus,
hier bitte
define FB7272 FB_CALLMONITOR 192.168.69.1
attr FB7272 country-code 0049
attr FB7272 fritzbox-remote-phonebook 1
attr FB7272 fritzbox-remote-phonebook-via web
attr FB7272 group FritzBox Callmonitor
attr FB7272 icon phone_dial@LightSeaGreen
attr FB7272 local-area-code 030
attr FB7272 reverse-search dasoertliche.de,phonebook,textfile,klicktel.de
attr FB7272 reverse-search-cache 1
attr FB7272 reverse-search-cache-file /opt/fhem/callmoncache.txt
attr FB7272 reverse-search-phonebook-file ./log/Fritz_Box_Telefonbuch.xml
attr FB7272 reverse-search-text-file /opt/fhem/textfile.txt
attr FB7272 room Telefon
klaus
Hallo Klaus,
sieht eigentlich soweit gut aus. Was steht denn im FHEM Log so, wenn du ein "set FB7272 rereadPhonebook" ausführst?
Wenn du noch das set-Kommando "password" hast, dann musst du noch das Passwort dort mitgeben. Also "set FB7272 password <Passwort>" damit das Modul sich in deiner FritzBox einloggen kann.
Viele Grüße
Markus
Zitat von: kvo1 am 09 Juni 2015, 19:42:31
@Rene,
könnte es sein das Dir irgend eine Lib fehlt (bist doch auf Debian 8 umgestiegen , oder ?)
ja ich habe Debian 8 Jessie drauf... in der Tat vllt. fehlt echt irgend ein Paket...! Ich weiß es leider nicht
Zitat von: Markus Bloch am 09 Juni 2015, 19:45:11
Erläutere dein Problem mal bitte etwas näher mit ein paar Bildern evtl.
OK ich habe die aktuelle Version von dir installiert. Meine geposteten Fehler bringen nichts.
Wie soll ich jetzt weiter verfahren, was soll ich hier an Bilder, List, einstellen oder Code..?
Vorab mal ein Bild welches mir die leere Liste und darüber meine bisherige Anrufliste anzeigt, wie man sieht gibt es Anrufe die angezeigt werden.
Folgender Fehler passiert bei mir wenn ich in den Attributen der Anrufliste das Attr. "list-type" von all auf incoming setzen möchte... stürzt Fhem komplett ab...
Wenn ich dann mit putty drauf gehe sehe ich "fhem not running", dann starte ich fhem wieder und es erscheinen eine Menge Fehler, zugegeben es sind noch andere Module dabei... aber warum passiert das gerade wenn ich dieses Attribut in der Anrufliste ändern möchte... Ich weiß da leider gar nicht weiter..
Hier mal die Anzeige der fehler beim starten
root@cubietruck:~# /etc/init.d/fhem status
fhem is not running
root@cubietruck:~# /etc/init.d/fhem start
Starting fhem...
Daemon with PID 8685 started!
Can't bind socket: Address already in use
root@cubietruck:~# keys on reference is experimental at ./FHEM/42_SYSMON.pm line 4295, <$fh> line 19.
keys on reference is experimental at ./FHEM/42_SYSMON.pm line 4573, <$fh> line 1 9.
Using a hash as a reference is deprecated at ./FHEM/72_FB_CALLLIST.pm line 300, <$fh> line 427.
keys on reference is experimental at ./FHEM/72_FB_CALLLIST.pm line 300, <$fh> line 427.
Using a hash as a reference is deprecated at ./FHEM/72_FB_CALLLIST.pm line 324, <$fh> line 427.
keys on reference is experimental at ./FHEM/72_FB_CALLLIST.pm line 324, <$fh> line 427.
Using a hash as a reference is deprecated at ./FHEM/72_FB_CALLLIST.pm line 326, <$fh> line 427.
keys on reference is experimental at ./FHEM/72_FB_CALLLIST.pm line 326, <$fh> line 427.
Using a hash as a reference is deprecated at ./FHEM/72_FB_CALLLIST.pm line 328, <$fh> line 427.
keys on reference is experimental at ./FHEM/72_FB_CALLLIST.pm line 328, <$fh> line 427.
Using a hash as a reference is deprecated at ./FHEM/72_FB_CALLLIST.pm line 330, <$fh> line 427.
keys on reference is experimental at ./FHEM/72_FB_CALLLIST.pm line 330, <$fh> line 427.
Using a hash as a reference is deprecated at ./FHEM/72_FB_CALLLIST.pm line 332, <$fh> line 427.
keys on reference is experimental at ./FHEM/72_FB_CALLLIST.pm line 332, <$fh> line 427.
Using a hash as a reference is deprecated at ./FHEM/72_FB_CALLLIST.pm line 337, <$fh> line 427.
keys on reference is experimental at ./FHEM/72_FB_CALLLIST.pm line 337, <$fh> line 427.
Using a hash as a reference is deprecated at ./FHEM/72_FB_CALLLIST.pm line 475, <$fh> line 427.
keys on reference is experimental at ./FHEM/72_FB_CALLLIST.pm line 475, <$fh> line 427.
each on reference is experimental at ./FHEM/02_RSS.pm line 676, <$fh> line 28.
root@cubietruck:~#
Da wäre doch schon evtl. ein Anhaltspunkt...!
Zieh bitte mal die neue Version die ich zuletzt gepostet habe, dort habe ich die angemeckerten stellen geändert. Du hast ein sehr altes Perl, welches an dieser Stelle noch zickig ist, weil das genutzte Feature von Perl bei dir noch "experimental" ist. Das ist aber leider die Philosophie von Debian.
Falls es wieder abstürzen sollte, mach mal bitte folgendes:
1. Starte dein FHEM über Putty in der Konsole neu über /etc/init.d/fhem
2. lass die Konsole offen und geh in den Webbrowser, öffne dein FHEM und führe die Attributänderung wieder durch damit FHEM wieder abstürzt
3. Nun sollte in der Konsole die Fehlermeldung stehen und die bräuchte ich mal
Danke. Das was du aktuell gepostet hast sind nur Warnungen während der Ausführungen. Der eigentliche Fehler ist da aber nicht dabei.
Gruß
Markus
Zitat von: Markus Bloch am 09 Juni 2015, 22:34:35
Zieh bitte mal die neue Version die ich zuletzt gepostet habe, dort habe ich die angemeckerten stellen geändert. Du hast ein sehr altes Perl, welches an dieser Stelle noch zickig ist, weil das genutzte Feature von Perl bei dir noch "experimental" ist. Das ist aber leider die Philosophie von Debian.
Kurze Info vorab...! ich glaube die Perl Version ist gar nicht so alt, denn aktuell ist die 5.22
Jetzt mache ich mal das was du vorgeschlagen hast..
Fhem info:
Release : 5.6
OS : linux
Arch : arm-linux-gnueabihf-thread-multi-64int
Perl : v5.20.2
uniqueID : c2dbdbb464be56874da43f89e2f6e62c
upTime : 00:11:04
so ich habe fhem mit "/etc/init.d/fhem start" gestartet
Das Attribut geändert und das zeigt er mir in putty
Zitatroot@cubietruck:~# /etc/init.d/fhem start
Starting fhem...
Daemon with PID 9460 started!
Can't bind socket: Address already in use
root@cubietruck:~# Type of argument to keys on reference must be unblessed hashref or arrayref at ./FHEM/72_FB_CALLLIST.pm line 324.
es dauert auch eine ganze Weile bis ich dann fhem erneut wieder starten kann
EDITH:
ich habe noch eine komische Fehlermeldung bekommen:
(process:8939): Pango-WARNING **: error opening config file '/root/.config/pango/pangorc': Permission denied
sieht nach einem Rechte Problem aus...
Tausch mal bitte Zeile 324 durch folgende Zeile aus:
@list = grep { ($hash->{helper}{DATA}{$_}{direction} ne "incoming") or ($hash->{helper}{DATA}{$_}{direction} eq "incoming" and ++$count > $limit) } sort {$b <=> $a} keys %{$hash->{helper}{DATA}} if($listtype eq "incoming");
Zitat von: Markus Bloch am 09 Juni 2015, 22:22:15
Hallo Klaus,
sieht eigentlich soweit gut aus. Was steht denn im FHEM Log so, wenn du ein "set FB7272 rereadPhonebook" ausführst?
Wenn du noch das set-Kommando "password" hast, dann musst du noch das Passwort dort mitgeben. Also "set FB7272 password <Passwort>" damit das Modul sich in deiner FritzBox einloggen kann.
Viele Grüße
Markus
Hallo Markus,
jetzt geht es , ich habe das Passwort nochmal gesetzt ..
2015.06.09 22:51:35 4: FB_CALLMONITOR (FB7272) - identifying available phonebooks
2015.06.09 22:51:35 4: FB_CALLMONITOR (FB7272) - phonebooks successfully identified
2015.06.09 22:51:35 4: FB_CALLMONITOR (FB7272) - found phonebook: Telefonbuch
2015.06.09 22:51:35 3: FB_CALLMONITOR (FB7272) - phonebooks found: Telefonbuch (id: 0)
2015.06.09 22:51:35 4: FB_CALLMONITOR (FB7272) - requesting phonebook id 0 (Telefonbuch)
2015.06.09 22:51:36 4: FB_CALLMONITOR (FB7272) - get export for phonebook: 0
2015.06.09 22:51:36 5: FB_CALLMONITOR (FB7272) - received http response code 200
2015.06.09 22:51:36 4: FB_CALLMONITOR (FB7272) - found A_Papa with number 0170xxxxxxxxxx
Ein GROSSES DANKESCHÖN
Klaus
keine Chance stürzt wieder ab...
Ich denke es liegt auf keinen Fall an der Callist, es sind ja bei dem Absturz noch einige Module dabei die er auch anmeckert.
Das muss ein generelles Problem sein..
Ich habe das auf beiden Systemen auf meinem Testsystem und auch auf dem Produktivsystem...
Da ist bestimmt etwas mit Perl Modulen, denn Debian 8 ist ja recht Neu
Ja das kann sein. Einen Versuch hätte ich noch.
Tausche mal bitte die gesamte Funktion FB_CALLLIST_cleanupList() durch diese aus:
#####################################
# cleans up the list from all unwanted entries
sub FB_CALLLIST_cleanupList($)
{
my ($hash) = @_;
my $name = $hash->{NAME};
my $limit = int(AttrVal($hash->{NAME}, "number-of-calls", 5));
my $listtype = AttrVal($hash->{NAME}, "list-type", "all");
my $count = 0;
my $index;
my @list;
if(exists($hash->{helper}{DATA}) and (scalar keys %{$hash->{helper}{DATA}}) > 0)
{
Log3 $name, 4, "FB_CALLLIST ($name) - cleaning up call list";
if($listtype ne "all")
{
@list = grep { ($hash->{helper}{DATA}{$_}{direction} ne "incoming") or ($hash->{helper}{DATA}{$_}{direction} eq "incoming" and ++$count > $limit) } sort {$b <=> $a} keys %{$hash->{helper}{DATA}} if($listtype eq "incoming");
@list = grep { ($hash->{helper}{DATA}{$_}{direction} ne "outgoing") or ($hash->{helper}{DATA}{$_}{direction} eq "outgoing" and ++$count > $limit) } sort {$b <=> $a} keys %$hash->{helper}{DATA} if($listtype eq "outgoing");
@list = grep { ((not $hash->{helper}{DATA}{$_}{running_call}) and (not $hash->{helper}{DATA}{$_}{missed_call}) or $hash->{helper}{DATA}{$_}{direction} eq "outgoing") or ($hash->{helper}{DATA}{$_}{direction} eq "incoming" and $hash->{helper}{DATA}{$_}{missed_call} and ++$count > $limit) } sort {$b <=> $a} keys %$hash->{helper}{DATA} if($listtype eq "missed-calls");
@list = grep { (not $hash->{helper}{DATA}{$_}{running_call}) and ++$count > $limit } sort {$b <=> $a} keys %$hash->{helper}{DATA} if($listtype eq "completed");
@list = grep { (not $hash->{helper}{DATA}{$_}{running_call}) or ($hash->{helper}{DATA}{$_}{running_call} and ++$count > $limit)} sort {$b <=> $a} keys %$hash->{helper}{DATA} if($listtype eq "active");
}
else
{
@list = grep { ++$count > $limit } sort {$b <=> $a} keys %$hash->{helper}{DATA};
}
foreach $index (@list)
{
Log3 $name, 5, "FB_CALLLIST ($name) - deleting old call $index";
delete($hash->{helper}{DATA}{$index});
}
}
else
{
Log3 $name, 4, "FB_CALLLIST ($name) - list is empty. no cleanup needed";
}
}
Zitat von: kvo1 am 09 Juni 2015, 22:56:38
Hallo Markus,
jetzt geht es , ich habe das Passwort nochmal gesetzt ..
2015.06.09 22:51:35 4: FB_CALLMONITOR (FB7272) - identifying available phonebooks
2015.06.09 22:51:35 4: FB_CALLMONITOR (FB7272) - phonebooks successfully identified
2015.06.09 22:51:35 4: FB_CALLMONITOR (FB7272) - found phonebook: Telefonbuch
2015.06.09 22:51:35 3: FB_CALLMONITOR (FB7272) - phonebooks found: Telefonbuch (id: 0)
2015.06.09 22:51:35 4: FB_CALLMONITOR (FB7272) - requesting phonebook id 0 (Telefonbuch)
2015.06.09 22:51:36 4: FB_CALLMONITOR (FB7272) - get export for phonebook: 0
2015.06.09 22:51:36 5: FB_CALLMONITOR (FB7272) - received http response code 200
2015.06.09 22:51:36 4: FB_CALLMONITOR (FB7272) - found A_Papa with number 0170xxxxxxxxxx
Ein GROSSES DANKESCHÖN
Klaus
Super zu hören.
Kleiner Tipp: Sobald man den Namen einer FB_CALLMONITOR-Definition ändert, muss das Passwort neu eingegeben werden, da es an den Devicenamen gebunden ist um Missbrauch zu verhinden.
Zitat von: Markus Bloch am 09 Juni 2015, 23:06:15
Ja das kann sein. Einen Versuch hätte ich noch.
Tausche mal bitte die gesamte Funktion FB_CALLLIST_cleanupList() durch diese aus:
Ok ich kann das Attribut jetzt tauschen, ich habe mal auf all, incomming und outgoing gestellt, kein Abtsurz mehr..
Liste ist bleibt aber leer
Das ist so gewollt. Sobald man den List-Type ändert, werden alle Gespräche die bereits in der Liste sind entfernt, die nicht mehr auf den Typ passen. Es ist so, das die alten Gespräche dann nicht in der Liste drinn bleiben, sondern es wird bei der Änderung sofort entsprechend aufgeräumt.
OK... ich habe jetzt mal ein Anruf getätigt, aber die Liste bleibt leer
So verabschiede mich für heute. ;) Vielen Dank
Irgendwelche Fehlermeldungen auf der Konsole?
Nein nichts keine - fhem is running - alles gut
Und in der JavaScript Konsole im Browser? (Chrome/FF: F12 drücken)
Geht ja firebug an, aber auch nichts, zumindest für mich nichts erkennbares ;)
du musst die JS-Konsole laufen lassen und dann ein telefonat starten, wenn sich dann die liste nicht ändert könnte eine Fehlermeldung in der Konsole hochpoppen.
Habe gerade CALLMONITOR und CALLLIST ausprobiert... Coool! :D
Zitat von: hexenmeister am 09 Juni 2015, 23:51:10
Habe gerade CALLMONITOR und CALLLIST ausprobiert... Coool! :D
Da kann ich mich nur uneingeschränkt anschließen. Jetzt müssen nur noch mehr Leute anrufen! ;D
Zitat von: hexenmeister am 09 Juni 2015, 23:51:10
Habe gerade CALLMONITOR und CALLLIST ausprobiert... Coool! :D
Hallo Alexander, sag mal wenn ich mich recht entsinne hast du doch auch auf Debian Jessie vor kurzer Zeit ein Upgrade gemacht...
Dann sollte dein Kernel in Sysmon folgendes zeigen:
ZitatKernel version: 3.4.107-cubietruck #8 SMP PREEMPT Thu May 14 18:53:36 CEST 2015
Kannst du mal schauen welche Perl Version du hast..?
Ich habe die
ZitatPerl : v5.20.2
Ich muss doch irgendwie weiter kommen, kann doch nicht sein das mit Debian Jessie hier nichts geht.
(habe nämlich auch noch mit einem anderen Modul Probleme 00_Logo.pm für meine Siemens Logo)
Hallo René,
scheint wohl doch am Perl zu liegen !?
Habe das mal testweise auf meinen CUBIETRUCK inst. , gleiche Perlversion wie Du ===> Perl : v5.20.2
Ergebnis:
fhem stürzt ab und auf der Telnet Console diese Meldungen ....
Using a hash as a reference is deprecated at ./FHEM/72_FB_CALLLIST.pm line 300, <$fh> line 28.
keys on reference is experimental at ./FHEM/72_FB_CALLLIST.pm line 300, <$fh> line 28.
Using a hash as a reference is deprecated at ./FHEM/72_FB_CALLLIST.pm line 324, <$fh> line 28.
keys on reference is experimental at ./FHEM/72_FB_CALLLIST.pm line 324, <$fh> line 28.
Using a hash as a reference is deprecated at ./FHEM/72_FB_CALLLIST.pm line 326, <$fh> line 28.
keys on reference is experimental at ./FHEM/72_FB_CALLLIST.pm line 326, <$fh> line 28.
Using a hash as a reference is deprecated at ./FHEM/72_FB_CALLLIST.pm line 328, <$fh> line 28.
keys on reference is experimental at ./FHEM/72_FB_CALLLIST.pm line 328, <$fh> line 28.
Using a hash as a reference is deprecated at ./FHEM/72_FB_CALLLIST.pm line 330, <$fh> line 28.
keys on reference is experimental at ./FHEM/72_FB_CALLLIST.pm line 330, <$fh> line 28.
Using a hash as a reference is deprecated at ./FHEM/72_FB_CALLLIST.pm line 332, <$fh> line 28.
keys on reference is experimental at ./FHEM/72_FB_CALLLIST.pm line 332, <$fh> line 28.
Using a hash as a reference is deprecated at ./FHEM/72_FB_CALLLIST.pm line 337, <$fh> line 28.
keys on reference is experimental at ./FHEM/72_FB_CALLLIST.pm line 337, <$fh> line 28.
Using a hash as a reference is deprecated at ./FHEM/72_FB_CALLLIST.pm line 475, <$fh> line 28.
keys on reference is experimental at ./FHEM/72_FB_CALLLIST.pm line 475, <$fh> line 28.
klaus
//EDIT
noch ne Meldung
Can't locate object method "new" via package "Data::Dumper" (perhaps you forgot to load "Data::Dumper"?) at ./FHEM/72_FB_CALLLIST.pm line 600.
@Markusnoch eine Verständnisfrage:
braucht es eigentlich die 99_myUtilsTelefon.pm noch gemäß
http://www.fhemwiki.de/wiki/Callmonitor_mit_Anruferliste_und_Zusatzfunktionen (http://www.fhemwiki.de/wiki/Callmonitor_mit_Anruferliste_und_Zusatzfunktionen)
Zitat von: kvo1 am 10 Juni 2015, 16:15:33
scheint wohl doch am Perl zu liegen !?
Habe das mal testweise auf meinen CUBIETRUCK inst. , gleiche Perlversion wie Du ===> Perl : v5.20.2
Ergebnis:
fhem stürzt ab und auf der Telnet Console diese Meldungen ....
OK ich Danke dir..
dass ist doch mal ein Ansatz, ich habe auch mit dem anderen Modul einige Fehlermeldungen, aber auch da ist der Modulersteller leider kein Perl Spezialist.. Ich denke diesen brauchen wir dann so langsam, wenn es in Richtung Jessie geht.
Bin mal gespannt welche Version Alexander hat, denn der hat upgedatet während dessen ich komplett Neu aufgesetzt habe...!
Zitat von: kvo1 am 10 Juni 2015, 16:15:33
@Markusnoch eine Verständnisfrage:
braucht es eigentlich die 99_myUtilsTelefon.pm noch gemäß
http://www.fhemwiki.de/wiki/Callmonitor_mit_Anruferliste_und_Zusatzfunktionen (http://www.fhemwiki.de/wiki/Callmonitor_mit_Anruferliste_und_Zusatzfunktionen)
nein die brauchst du nicht mehr, bei mir ist die schon länger weg...! ;)
Aber ich hoffe ich sage hier das richtige...! Nicht das es daran liegt :-\
Tante EDITH:
Ok... ob ich die nun drin habe oder nicht, bleibt alles beim alten, also wird sie nicht mehr gebraucht..
Hallo,
ich habe gerade mal die CALLLIST ausprobiert und es sieht auf den ersten Blick sehr vielversprechend aus. Ich habe nur mal ein Frage: Wie stelle ich die Sprache im System korrekt ein, damit die Wochentage auf Deutsch angezeigt werden? Zur Info: Ich habe FHEM auf einem Cubietruck mit Debian.
Vielen Dank
Ronny
Zitat von: RoBra81 am 10 Juni 2015, 19:51:54
Hallo,
ich habe gerade mal die CALLLIST ausprobiert und es sieht auf den ersten Blick sehr vielversprechend aus. Ich habe nur mal ein Frage: Wie stelle ich die Sprache im System korrekt ein, damit die Wochentage auf Deutsch angezeigt werden? Zur Info: Ich habe FHEM auf einem Cubietruck mit Debian.
Vielen Dank
Ronny
Dafür gibt es das Attribut "language". Dort kann man auf "de" für Deutsch umstellen, damit die Wochentage und Monatsnamen passen.
Gruß
Markus
@moonsorrox/kvo1:
Ich habe mal das Modul in einer Debian 8 VM nochmal getestet und habe die selben Fehler erhalten. Ich habe daher die entsprechenden Sachen gefixt. Nun funktioniert das Modul unter Perl 5.20 ohne Fehlermeldungen und Abstürze.
Bitte testet es bei euch. Bei mir konnte ich ohne Probleme den list-type verändern und es gab keine Abstürze.
Viele Grüße
Markus
Zitat von: kvo1 am 10 Juni 2015, 16:15:33
@Markusnoch eine Verständnisfrage:
braucht es eigentlich die 99_myUtilsTelefon.pm noch gemäß
http://www.fhemwiki.de/wiki/Callmonitor_mit_Anruferliste_und_Zusatzfunktionen (http://www.fhemwiki.de/wiki/Callmonitor_mit_Anruferliste_und_Zusatzfunktionen)
Nein, wie moonsorrox schon richtig erläutert wird diese Datei für FB_CALLLIST nicht benötigt.
Hallo Markus,
Danke für Deine schnelle Rückinfo... werd´s mal testen
ZitatNein, wie moonsorrox schon richtig erläutert wird diese Datei für FB_CALLLIST nicht benötigt.
für FB_CALLLIST nicht , aber für den CALLMONITOR ????
ich habe diese doch eben mal auf meinen CUBIE (der vorher abstürzte) kopiert
und in die 72_FB_CALLLIST.pm
use Data::Dumper;
eingefügt .... und irgendie läuft es ??? :-\
klaus
also dreh ich mal zurück und nehme DEINE Versionen
Zitat von: Markus Bloch am 10 Juni 2015, 19:54:57
Dafür gibt es das Attribut "language". Dort kann man auf "de" für Deutsch umstellen, damit die Wochentage und Monatsnamen passen.
Gruß
Markus
Leider nicht, damit werden zwar die Überschriften deutsch, nicht aber die Wochentage...
Ronny
Zitat von: kvo1 am 10 Juni 2015, 20:24:04
Hallo Markus,
Danke für Deine schnelle Rückinfo... werd´s mal testen
für FB_CALLLIST nicht , aber für den CALLMONITOR ????
ich habe diese doch eben mal auf meinen CUBIE (der vorher abstürzte) kopiert
und in die 72_FB_CALLLIST.pm
use Data::Dumper;
eingefügt .... und irgendie läuft es ??? :-\
klaus
also dreh ich mal zurück und nehme DEINE Versionen
Nein, auch für den Callmonitor wird diese Datei nicht benötigt. Die Datei 99_myUtilsTelefon.pm ist das Ergebnis von verschiedenen Usern hier aus dem Forum um eine Anruferliste zu erstellen. Wenn man die im Wiki Artikel http://www.fhemwiki.de/wiki/Callmonitor_mit_Anruferliste_und_Zusatzfunktionen beschriebene Lösung bei sich so implementiert hat, dann brauch man sie durchaus.
Aber um reinweg den Callmonitor oder eben auch die Calllist zu nutzen ist sie nicht notwendig.
Zitat von: RoBra81 am 10 Juni 2015, 20:28:12
Leider nicht, damit werden zwar die Überschriften deutsch, nicht aber die Wochentage...
Ronny
Also bei mir funktioniert es. Ich kann mir aber vorstellen, dass es bei Dir nicht funktioniert, weil Du keine deutsche Locale (Übersetzung) in deinem System installiert hast. Wenn Dein Betriebssystem kein Deutsch kann, kann es Perl natürlich auch nicht. Das Modul greift hier auf Betriebssystemfunktionalitäten zurück, die natürlich auch vorhanden sein müssen. Wenn Dein Betriebssystem keine deutschen Datumsangaben unterstüttz, weil z.B. die deutsche Locale fehlt, dann ist das durchaus möglich.
Gruß
Markus
Kannst du mir einen Tipp geben, wie ich die installiere?
Zitat von: RoBra81 am 10 Juni 2015, 20:36:45
Kannst du mir einen Tipp geben, wie ich die installiere?
z.B: https://people.debian.org/~schultmc/locales.html und dann de_DE.UTF-8 anwählen
Das Internet ist voller Weisheit ;-)
Zitat von: Markus Bloch am 10 Juni 2015, 20:01:05
@moonsorrox/kvo1:
Ich habe mal das Modul in einer Debian 8 VM nochmal getestet und habe die selben Fehler erhalten. Ich habe daher die entsprechenden Sachen gefixt. Nun funktioniert das Modul unter Perl 5.20 ohne Fehlermeldungen und Abstürze.
Bitte testet es bei euch. Bei mir konnte ich ohne Probleme den list-type verändern und es gab keine Abstürze.
Viele Grüße
Markus
Hallo Markus,
läuft auf meinem CUBIE ... auch ohne 99_myUtilsTelefon.pm ;)
DANKE Dir !
Zitat von: Markus Bloch am 10 Juni 2015, 20:46:14
z.B: https://people.debian.org/~schultmc/locales.html und dann de_DE.UTF-8 anwählen
Das Internet ist voller Weisheit ;-)
Danke! :-)
Hallo,
die CALLLIST gefällt mir ganz gut, u.a. auch daher, dass sie nicht so viele Readings braucht - vielen Dank für die gute Arbeit. Nun habe ich aber schon eine ReadingsGroup, die ich mir an meine Vorstellungen angepasst habe und hätte daher ein paar Wünsche/Ideen für die CALLLIST, von denen vielleicht einige umgesetzt werden könnten?:
- ich würde gern die Spalten selbst sortieren
- ich würde gern die breite der Spalten festlegen können - passt der Text nicht in die Spalte, sollte an Wortgrenzen umgebrochen werden
- ich würde gern die erste Spalte mit den Nummern ausblenden
- da meine Frau gern viele vergangene Anrufe sehen möchte, ich aber nicht so viel Platz im Floorplan hatte, habe ich eine Readingsgroup für die letzen 5 Nummern, die immer angezeigt wird und eine zweite mit weiteren 5 Nummern, die bei Bedarf eingeblendet werden kann. Es wäre schön, wenn die CALLLIST immer x Nummern anzeigt und bei Bedarf (klick auf ein Symbol) weitere y Nummern anzeigen könnte (x und y konfigurierbar)
- ich würde die Liste gern Stylen können, damit sie optisch in meinen Floorplan passt (wie eine ReadingsGroup)
Das sollen keine Forderungen sein, sondern Ideen :-)
Ronny
Hallo Ronny,
Zitat von: RoBra81 am 10 Juni 2015, 21:19:41
- ich würde gern die Spalten selbst sortieren
- ich würde gern die erste Spalte mit den Nummern ausblenden
die genannten Punkte halte ich durchaus für sinnvoll und habe sie auf meinem System bereits implementiert, möchte sie aber noch ausgiebiger testen und den Code aufräumen, bevor ich diese zur Verfügung stelle.
Zu dem Punkt:
Zitat- ich würde gern die breite der Spalten festlegen können - passt der Text nicht in die Spalte, sollte an Wortgrenzen umgebrochen werden
wäre das nicht mit deinem Punkt
Zitat- ich würde die Liste gern Stylen können, damit sie optisch in meinen Floorplan passt (wie eine ReadingsGroup)
möglich? Damit hätte man dann doch alle Freiheiten der Welt was das Styling anbetrifft.
Beim Thema Attribute für CSS bin ich etwas uneins, da die generelle Vorgehensweise für user-eigenes Styling in FHEMWEB bereits implementiert ist. Dort kann der User eine eigene custom-spezifische CSS einbinden in denen er alles auf Basis von Klassennamen addressieren kann und an seine Bedürfnisse anpassen kann. Genauso würde ich den Quelltext entsprechend mit Klassennamen versehen, so dass man die verschiedenen Element-Typen direkt mit CSS stylen kann. Ich wollte da ungern extra Attribute für machen, da man dann direkt mind. 3 Stück benötigt (Tabelle, Tabellenkopf, Tabellenzeile, Tabellenzelle, Leermeldung, ...) und eine solche Attributschlacht möchte ich nur sehr ungern, da es einige User nur verwirrt.
Das mit dem Ausklappen finde ich etwas sehr speziell und würde ich auch aufgrund des Aufwands auch erstmal vertagen.
Viele Grüße
Markus
Zitat von: moonsorrox am 10 Juni 2015, 14:59:00
Hallo Alexander, sag mal wenn ich mich recht entsinne hast du doch auch auf Debian Jessie vor kurzer Zeit ein Upgrade gemacht...
Dann sollte dein Kernel in Sysmon folgendes zeigen:
Kannst du mal schauen welche Perl Version du hast..?
Hi, sorry, dass ich mich erst jetzt melde.
Bei mir ist die Perlversion 5.014002 installiert.
Ich habe vor kurzem den Kernel upgedatet, aktuell ist folgendes drauf:
Linux cubie 3.4.107-cubietruck #14 SMP PREEMPT Wed Apr 29 11:57:42 CEST 2015 armv7l GNU/Linux
P.S. Die neue Version funktioniert bei mir auch gut.
Zitat von: Markus Bloch am 10 Juni 2015, 20:01:05
Ich habe mal das Modul in einer Debian 8 VM nochmal getestet und habe die selben Fehler erhalten. Ich habe daher die entsprechenden Sachen gefixt. Nun funktioniert das Modul unter Perl 5.20 ohne Fehlermeldungen und Abstürze.
Bitte testet es bei euch. Bei mir konnte ich ohne Probleme den list-type verändern und es gab keine Abstürze.
Beide Dateien habe ich eingespielt... Keine Abstürze, aber die Anrufliste bleibt leer.
Wenn ich ein Anruf tätige wird der aber im Callmonitor angezeigt..! Tja wo soll ich noch suchen..?
Ich hänge mal ein list der Readings ran, evtl fehlt etwas, dass er in dem Fall auf DECT_2 arbeitet..! Ist das egal..?
Zitat von: hexenmeister am 11 Juni 2015, 08:04:50
Bei mir ist die Perlversion 5.014002 installiert.
Ich habe vor kurzem den Kernel upgedatet, aktuell ist folgendes drauf:
Linux cubie 3.4.107-cubietruck #14 SMP PREEMPT Wed Apr 29 11:57:42 CEST 2015 armv7l GNU/Linux
P.S. Die neue Version funktioniert bei mir auch gut.
OK, genau das ist das Problem, du hast noch die alte Perl Version...! Am Linux Kernel liegt es wohl nicht das Problem bei mir...! Es liegt - wohl - an der Perl Version.. 5.20
Ich werde das von Markus heute ausprobieren, welches er für die neue Version erstellt hat und berichten.
Denn Abstürze hatte ich mit der letzten Version von ihm auch nicht mehr, nur eben die Liste war immer leer...!
Zitat von: moonsorrox am 11 Juni 2015, 09:17:29
Beide Dateien habe ich eingespielt... Keine Abstürze, aber die Anrufliste bleibt leer.
Wenn ich ein Anruf tätige wird der aber im Callmonitor angezeigt..! Tja wo soll ich noch suchen..?
Kannst du das Attribut verbose bei der FB_CALLIST auf 5 stellen, einen Anruf durchführen und das Ergebnis posten? Sollte zu dem Zeitpunkt des Anrufs keinerlei Logmeldungen von der Calllist auftauchen, dann scheinen keine Events vom FB_CALLMONITOR getriggert zu werden. Es ist allerdings notwendig, dass der FB_CALLMONITOR ein Event generiert, was auch im Event-Monitor sichtbar sein muss. Ist das auch nicht der Fall, hast du ein anderes Problem.
Gruß
Markus
HAllo Markus,
da habe ich mich wohl früh gefreut. Ich habe gerade einen Anruf getätigt und sehe diesen
auch in den Readings des CallMonitor , aber nicht in der CALLLIST.
Frage:
Ist es ein Problem, das ich parallel auf die Fritzbox zugreife ?
Habe ein Testsystem mit CUBIE und eine anderes mit RPI !
Zitat. Es ist allerdings notwendig, dass der FB_CALLMONITOR ein Event generiert, was auch im Event-Monitor sichtbar sein muss. Ist das auch nicht der Fall, hast du ein anderes Problem.
Der FB_CALLMONITOR hat sich doch aber garnicht geändert oder wie kann man das mit dem EVENT testen?
Klaus
EVENTS kommen da schon !
habt ihr beide auch das js-File entsprechen mit aktualisiert? Da hat sich auch etwas geändert. Falls ihr das nicht gemacht habt, würde das erklären, warum es keine Aktualisierungen bei euch gibt.
Zitat von: Markus Bloch am 11 Juni 2015, 17:57:18
Kannst du das Attribut verbose bei der FB_CALLIST auf 5 stellen, einen Anruf durchführen und das Ergebnis posten?
also ich habe beide neuen Files drin, falls ich gemeint bin, aber ich habe ja sowieso keine Anzeige
so grad mal gemacht, hier das was im logfile stand:
2015.06.11 22:03:33 4: FB_CM_EXTENDER_UpdateValue: updateingindex F0 A0 0
2015.06.11 22:03:33 5: FB_CM_EXTENDER_UpdateValue: args callID: 0 col: A val: 0
2015.06.11 22:03:33 4: FB_CM_EXTENDER_UpdateValue: updateingindex F0 E0 00:00
2015.06.11 22:03:33 5: FB_CM_EXTENDER_UpdateValue: args callID: 0 col: E val: 00:00
2015.06.11 22:03:33 5: FB_CM_EXTENDER_Monitor: Disconnect befor FB_CM_EXTENDER_UpdateTable mot all
2015.06.11 22:03:33 4: FB_CM_EXTENDER_Monitor: stat: disconnect event: call_id arg: 0
2015.06.11 22:03:33 4: FB_CM_EXTENDER_Monitor: stat: disconnect event: external_connection arg: SIP0
2015.06.11 22:03:33 4: FB_CM_EXTENDER_Monitor: stat: disconnect event: missed_call_line arg: 05131xxxxx
2015.06.11 22:03:33 4: FB_CM_EXTENDER_Monitor: stat: disconnect event: direction arg: incoming
2015.06.11 22:03:33 4: FB_CM_EXTENDER_Monitor: stat: disconnect event: external_name arg: Handy René
2015.06.11 22:03:33 4: FB_CM_EXTENDER_Monitor: stat: disconnect event: missed_call arg: 0177xxxxxxx (Handy René)
2015.06.11 22:03:33 4: FB_CM_EXTENDER_Monitor: stat: disconnect event: internal_number arg: 05131xxxxx
2015.06.11 22:03:33 4: FB_CM_EXTENDER_Monitor: stat: disconnect event: call_duration arg: 0
2015.06.11 22:03:33 4: FB_CM_EXTENDER_Monitor: stat: disconnect event: external_number arg: 0177xxxxxxx
2015.06.11 22:03:33 3: FB_CM_EXTENDER_Monitor: status: disconnect
2015.06.11 22:03:33 4: FB_CALLLIST (Anrufliste) - start processing event disconnect for Call-ID 0
2015.06.11 22:03:33 5: FB_CALLMONITOR (Callmonitor) - received data: 11.06.15 22:03:33;DISCONNECT;0;0;
2015.06.11 22:03:29 4: FB_CM_EXTENDER_UpdateTable: ID 0
2015.06.11 22:03:29 4: FB_CM_EXTENDER_Store: no linefilter definied
2015.06.11 22:03:29 5: FB_CM_EXTENDER_Monitor: Ring befor FB_CM_EXTENDER_UpdateTable mot all
2015.06.11 22:03:29 3: FB_CM_EXTENDER_Monitor: Call (ring) from Handy René 0177xxxxxxx callID: 0
2015.06.11 22:03:29 4: FB_CM_EXTENDER_Monitor: stat: ring event: call_id arg: 0
2015.06.11 22:03:29 4: FB_CM_EXTENDER_Monitor: stat: ring event: direction arg: incoming
2015.06.11 22:03:29 4: FB_CM_EXTENDER_Monitor: stat: ring event: external_name arg: Handy René
2015.06.11 22:03:29 4: FB_CM_EXTENDER_Monitor: stat: ring event: internal_number arg: 05131xxxxx
2015.06.11 22:03:29 4: FB_CM_EXTENDER_Monitor: stat: ring event: external_number arg: 0177xxxxx
2015.06.11 22:03:29 4: FB_CM_EXTENDER_Monitor: stat: ring event: external_connection arg: SIP0
2015.06.11 22:03:29 3: FB_CM_EXTENDER_Monitor: status: ring
2015.06.11 22:03:29 4: FB_CALLLIST (Anrufliste) - start processing event ring for Call-ID 0
2015.06.11 22:03:29 4: FB_CALLMONITOR (Callmonitor) - reverse search returned: Handy René
2015.06.11 22:03:29 4: FB_CALLMONITOR (Callmonitor) - using internal phonebook for reverse search of 0177xxxxx
2015.06.11 22:03:29 4: FB_CALLMONITOR (Callmonitor) - using dasoertliche.de for reverse search of 0177xxxxx
2015.06.11 22:03:29 5: FB_CALLMONITOR (Callmonitor) - received data: 11.06.15 22:03:29;RING;0;0177xxxxxxx;05131xxxxx;SIP0;
hallo Markus,
ich weis, es ist offTopic, aber hättest du hierzu
Zitatda die generelle Vorgehensweise für user-eigenes Styling in FHEMWEB bereits implementiert ist
mal bitte einen Link. Eigene css ist mir klar, aber wie binde ich sie ein, ohne das es beim Update überschrieben wird.
LG Tom_S
Zitat von: Tom_S am 11 Juni 2015, 23:07:06
hallo Markus,
ich weis, es ist offTopic, aber hättest du hierzumal bitte einen Link. Eigene css ist mir klar, aber wie binde ich sie ein, ohne das es beim Update überschrieben wird.
LG Tom_S
Über das Attribut CssFiles in der entsprechenden FHEMWEB-Definition: siehe http://fhem.de/commandref.html#FHEMWEB
Zitat von: http://fhem.de/commandref.html#FHEMWEB
Space separated list of .css files to be included. The filenames are relative to the www directory. Example:
attr WEB CssFiles pgm2/mystyle.css
Viele Grüße
Markus
Hallo Markus,
ja ich habe beide Dateien (heute vorsichtshalber nochmals) getauscht und meine weiteren
Tests haben folgendes ergeben.
Ich habe , wie beschrieben 2 Systeme CUBIE (Perl v5.20.2) und RPI (Perl v5.14.2).
Beide verhalten Sich gleich !
Ich habe an meiner Fritzbox 2 Telefone (also generell 2 Leitungen / 3 Nummer).
Bei einem der Telefone unterdrücke ich die Weitergabe der Rufnummer / bei der zweiten nicht!
Wenn ich mit der unterdrückten Nummer rauswähle erhalte ich keine Anzeige in der CALLLISTE.
In den Readings des FB_CALLMONITOR sehe ich die Daten:
external_connection SIP2
external_name Mxxxxxxxx(Name des Angerufenen)
external_number 0305xxxxx(Nummer die angerufen wird
Wenn ich mit der freigegebenen Nummer rauswähle wird die Anzeige in der CALLLISTE aktualisiert.
In den Readings des FB_CALLMONITOR sehe ich die Daten:
external_connection SIP0
external_name Mxxxxxxxx(Name des Angerufenen)
external_number 0305xxxxx(Nummer die angerufen wird
Im zweiten Fall, also mit der freigegebenen Nummer, habe dann eine Festnetznummer
angerufen , hier wird der Name aus dem Telefonbuch angezeigt. Wenn meine Handynummer
anrufe, bekomme ich als Name , den Namen den ich in der Fritzbox gespeichert habe !
(aber nur beim CUBIE, in der CALLLIST des RPI steht nur - )
Wie sich das mit der Einwahl auf die beiden Nummern verhält muss ich noch testen...
morgen früh , sonst wecken hier alle auf.
Soweit meine Tests
Danke für Deine Geduld
Klaus
Hallo Klaus,
ich entnehme auch deinen Logs, dass die FB_CALLLIST den event trigger korrekt empfängt und die entsprechende Prozedur zum einlesen der Readings vom FB_CALLMONITOR gestartet wird, nur eigenartiger Weise steigt diese Routine beim verarbeiten dann geräuschlos aus.
Ich habe daher weitere Logmeldungen eingebaut, damit ich detaillierter in deinem Log sehen kann, wo es bei dir hakt.
Ich würde dich (oder evtl. auch moonsorrox) bitten bei dir dieses Modul zu installieren und nochmals die Logs posten bei einem laufenden Call.
Desweiteren enthält diese Version das Feature der variablen Spalten. Man kann über das neue Attribut "visible-columns" über einen Dialog die gewünschten spalten auswählen und entsprechend sortieren nach eigenen Vorstellungen.
@all: bitte achtet auch besser darauf eure Rufnummern in Logs/Screenshots unkenntlich zu machen. Ich weis, das es gerade jetzt beim Debugging sehr mühselig sein kann, aber Bots und Scanner sind überall im Internet ;-)
Viele Grüße
Markus
ZitatHallo Klaus,
ich entnehme auch deinen Logs, dass die FB_CALLLIST den event trigger korrekt empfängt und die entsprechende Prozedur zum einlesen der Readings vom FB_CALLMONITOR gestartet wird, nur eigenartiger Weise steigt diese Routine beim verarbeiten dann geräuschlos aus.
Das Log war von moonsorrox ;)
Zitat von: kvo1 am 12 Juni 2015, 00:11:13
Das Log war von moonsorrox ;)
Es ist schon spät am Tage. Sorry ;-)
Markus, coole Sache ....hab es kurz getestet !
ZitatDesweiteren enthält diese Version das Feature der variablen Spalten. Man kann über das neue Attribut "visible-columns" über einen Dialog die gewünschten spalten auswählen und entsprechend sortieren nach eigenen Vorstellungen.
klaus
Zitatconfigfile: FB7272_LIST: unknown attribute show-connection. Type 'attr FB7272_LIST ?' for a detailed list.
FB7272_LIST: unknown attribute show-internal-number. Type 'attr FB7272_LIST ?' for a detailed list.
das kommt bei rereadcfg !
klaus
das ist richtig, diese Attribute sind damit obsolet. Man kann ja nun die Spalten bei bedarf über visible-columns selber ausblenden.
Am besten einmal auf save config drücken und alles ist wieder gut.
Zitat von: Markus Bloch am 11 Juni 2015, 23:47:24
@all: bitte achtet auch besser darauf eure Rufnummern in Logs/Screenshots unkenntlich zu machen. Ich weis, das es gerade jetzt beim Debugging sehr mühselig sein kann, aber Bots und Scanner sind überall im Internet ;-)
Oh ja Danke, ich habe wohl etwas geschlafen... habe es jetzt nachgeholt
Die beiden Module teste ich heute, wenn ich zuhause bin und werde es posten
Zitat von: Markus Bloch am 12 Juni 2015, 00:34:49
das ist richtig, diese Attribute sind damit obsolet. Man kann ja nun die Spalten bei bedarf über visible-columns selber ausblenden.
Am besten einmal auf save config drücken und alles ist wieder gut.
Hilft aber irgendwie nix, kommt bei jedem Start des Frontend wieder !
Die Meldungen verschwinden erst nach dem ihr im Frontend auf "save config" gedrückt habt und ein "shutdown restart" gemacht habt. Bitte vermeidet ein rereadcfg, damit könnt ihr einen inkonsistenten zustand erhalten. Nehmt am besten immer "shutdown restart" um Manuelle Änderungen die ihr per Texteditor im Konfigfile gemacht habt zu aktivieren.
Gruß
Markus
Zitat von: Markus Bloch am 11 Juni 2015, 23:47:24
Ich habe daher weitere Logmeldungen eingebaut, damit ich detaillierter in deinem Log sehen kann, wo es bei dir hakt.
Ich würde dich (oder evtl. auch moonsorrox) bitten bei dir dieses Modul zu installieren und nochmals die Logs posten bei einem laufenden Call.
als erstes bevor ich starte folgende Fehlermeldungen nachdem ich die beiden Dateien eingespielt habe, ein save und ein Shutdown Restart gemacht habe...
Error messages while initializing FHEM:
configfile: Anrufliste: unknown attribute show-connection. Type 'attr Anrufliste ?' for a detailed list.
Anrufliste: unknown attribute show-internal-number. Type 'attr Anrufliste ?' for a detailed list.
also wie bei Klaus, jetzt geht es weiter - erneuter save und Shutdown Restart - Fehlermeldung weg..!! :D
Hier nun das logfile nach einem Anruf:
2015.06.12 12:23:12 4: FB_CM_EXTENDER_UpdateValue: updateingindex F0 A0 0
2015.06.12 12:23:12 5: FB_CM_EXTENDER_UpdateValue: args callID: 0 col: A val: 0
2015.06.12 12:23:12 4: FB_CM_EXTENDER_UpdateValue: updateingindex F0 E0 00:00
2015.06.12 12:23:12 5: FB_CM_EXTENDER_UpdateValue: args callID: 0 col: E val: 00:00
2015.06.12 12:23:12 5: FB_CM_EXTENDER_Monitor: Disconnect befor FB_CM_EXTENDER_UpdateTable mot all
2015.06.12 12:23:12 4: FB_CM_EXTENDER_Monitor: stat: disconnect event: call_id arg: 0
2015.06.12 12:23:12 4: FB_CM_EXTENDER_Monitor: stat: disconnect event: external_connection arg: SIP0
2015.06.12 12:23:12 4: FB_CM_EXTENDER_Monitor: stat: disconnect event: call_duration arg: 0
2015.06.12 12:23:12 4: FB_CM_EXTENDER_Monitor: stat: disconnect event: missed_call_line arg: 05131xxxxx
2015.06.12 12:23:12 4: FB_CM_EXTENDER_Monitor: stat: disconnect event: internal_number arg: 05131xxxxx
2015.06.12 12:23:12 4: FB_CM_EXTENDER_Monitor: stat: disconnect event: direction arg: incoming
2015.06.12 12:23:12 4: FB_CM_EXTENDER_Monitor: stat: disconnect event: missed_call arg: 0177xxxxxxx (Handy René)
2015.06.12 12:23:12 4: FB_CM_EXTENDER_Monitor: stat: disconnect event: external_name arg: Handy René
2015.06.12 12:23:12 4: FB_CM_EXTENDER_Monitor: stat: disconnect event: external_number arg: 0177xxxxxxx
2015.06.12 12:23:12 3: FB_CM_EXTENDER_Monitor: status: disconnect
2015.06.12 12:23:12 5: FB_CALLLIST (Anrufliste) - checking if MSN is filtered via line-filter
2015.06.12 12:23:12 4: FB_CALLLIST (Anrufliste) - start processing event disconnect for Call-ID 0
2015.06.12 12:23:12 5: FB_CALLMONITOR (Callmonitor) - received data: 12.06.15 12:23:19;DISCONNECT;0;0;
2015.06.12 12:23:08 4: FB_CM_EXTENDER_UpdateTable: ID 0
2015.06.12 12:23:08 4: FB_CM_EXTENDER_Store: no linefilter definied
2015.06.12 12:23:08 5: FB_CM_EXTENDER_Monitor: Ring befor FB_CM_EXTENDER_UpdateTable mot all
2015.06.12 12:23:08 3: FB_CM_EXTENDER_Monitor: Call (ring) from Handy René 0177xxxxxxx callID: 0
2015.06.12 12:23:08 4: FB_CM_EXTENDER_Monitor: stat: ring event: call_id arg: 0
2015.06.12 12:23:08 4: FB_CM_EXTENDER_Monitor: stat: ring event: external_connection arg: SIP0
2015.06.12 12:23:08 4: FB_CM_EXTENDER_Monitor: stat: ring event: direction arg: incoming
2015.06.12 12:23:08 4: FB_CM_EXTENDER_Monitor: stat: ring event: external_name arg: Handy René
2015.06.12 12:23:08 4: FB_CM_EXTENDER_Monitor: stat: ring event: internal_number arg: 05131xxxxx
2015.06.12 12:23:08 4: FB_CM_EXTENDER_Monitor: stat: ring event: external_number arg: 0177xxxxxxx
2015.06.12 12:23:08 3: FB_CM_EXTENDER_Monitor: status: ring
2015.06.12 12:23:08 5: FB_CALLLIST (Anrufliste) - checking if MSN is filtered via line-filter
2015.06.12 12:23:08 4: FB_CALLLIST (Anrufliste) - start processing event ring for Call-ID 0
2015.06.12 12:23:08 4: FB_CALLMONITOR (Callmonitor) - reverse search returned: Handy René
2015.06.12 12:23:08 4: FB_CALLMONITOR (Callmonitor) - using internal phonebook for reverse search of 0177xxxxxxx
2015.06.12 12:23:08 4: FB_CALLMONITOR (Callmonitor) - using dasoertliche.de for reverse search of 0177xxxxxxx
2015.06.12 12:23:08 5: FB_CALLMONITOR (Callmonitor) - received data: 12.06.15 12:23:15;RING;0;0177xxxxxxx;05131xxxxx;SIP0;
ich hätte noch ein log von einem ausgehenden Anruf falls gewünscht..!
Ok, der Nebel lichtet sich langsam.
Nächster Versuch im anhang. Bitte nochmal das Log posten
gruß
Markus
Hmmmm, verstehe ich irgendwie nicht, helft mir ....
ZitatFB_CM_EXTENDER
Das ist doch das EXTENDER-Modul von Elektrolurch ??
oder läuft das noch parallel mit bei Dir`?
Das läuft bei ihm parrallel. Kann man auch schön an seinen Screenshots erkennen, wo er ja beide Varianten laufen lässt. Ist in dem Falle auch ganz hilfreich, da ich so im Log sehe, welche Events das EXTENDER-Modul bekommt und verarbeitet.
Zitat von: Markus Bloch am 12 Juni 2015, 15:38:17
Ok, der Nebel lichtet sich langsam.
Nächster Versuch im anhang. Bitte nochmal das Log posten
gruß
Markus
gerne.. ;)
2015.06.12 19:23:40 4: FB_CM_EXTENDER_UpdateValue: updateingindex F0 A0 0
2015.06.12 19:23:40 5: FB_CM_EXTENDER_UpdateValue: args callID: 0 col: A val: 0
2015.06.12 19:23:40 4: FB_CM_EXTENDER_UpdateValue: updateingindex F0 E0 00:00
2015.06.12 19:23:40 5: FB_CM_EXTENDER_UpdateValue: args callID: 0 col: E val: 00:00
2015.06.12 19:23:40 5: FB_CM_EXTENDER_Monitor: Disconnect befor FB_CM_EXTENDER_UpdateTable mot all
2015.06.12 19:23:40 4: FB_CM_EXTENDER_Monitor: stat: disconnect event: call_id arg: 0
2015.06.12 19:23:40 4: FB_CM_EXTENDER_Monitor: stat: disconnect event: direction arg: incoming
2015.06.12 19:23:40 4: FB_CM_EXTENDER_Monitor: stat: disconnect event: external_number arg: 0177xxxxxxx
2015.06.12 19:23:40 4: FB_CM_EXTENDER_Monitor: stat: disconnect event: missed_call_line arg: 05131xxxxx
2015.06.12 19:23:40 4: FB_CM_EXTENDER_Monitor: stat: disconnect event: external_name arg: Handy René
2015.06.12 19:23:40 4: FB_CM_EXTENDER_Monitor: stat: disconnect event: call_duration arg: 0
2015.06.12 19:23:40 4: FB_CM_EXTENDER_Monitor: stat: disconnect event: missed_call arg: 0177xxxxxxx (Handy René)
2015.06.12 19:23:40 4: FB_CM_EXTENDER_Monitor: stat: disconnect event: internal_number arg: 05131xxxxx
2015.06.12 19:23:40 4: FB_CM_EXTENDER_Monitor: stat: disconnect event: external_connection arg: SIP0
2015.06.12 19:23:40 3: FB_CM_EXTENDER_Monitor: status: disconnect
2015.06.12 19:23:40 5: FB_CALLLIST (Anrufliste) - checking if MSN is filtered via line-filter
2015.06.12 19:23:40 4: FB_CALLLIST (Anrufliste) - start processing event disconnect for Call-ID 0
2015.06.12 19:23:40 5: FB_CALLMONITOR (Callmonitor) - received data: 12.06.15 19:23:48;DISCONNECT;0;0;
2015.06.12 19:23:37 4: FB_CM_EXTENDER_UpdateTable: ID 0
2015.06.12 19:23:37 4: FB_CM_EXTENDER_Store: no linefilter definied
2015.06.12 19:23:37 5: FB_CM_EXTENDER_Monitor: Ring befor FB_CM_EXTENDER_UpdateTable mot all
2015.06.12 19:23:37 3: FB_CM_EXTENDER_Monitor: Call (ring) from Handy René 0177xxxxxxx callID: 0
2015.06.12 19:23:37 4: FB_CM_EXTENDER_Monitor: stat: ring event: call_id arg: 0
2015.06.12 19:23:37 4: FB_CM_EXTENDER_Monitor: stat: ring event: direction arg: incoming
2015.06.12 19:23:37 4: FB_CM_EXTENDER_Monitor: stat: ring event: external_number arg: 0177xxxxxxx
2015.06.12 19:23:37 4: FB_CM_EXTENDER_Monitor: stat: ring event: external_connection arg: SIP0
2015.06.12 19:23:37 4: FB_CM_EXTENDER_Monitor: stat: ring event: external_name arg: Handy René
2015.06.12 19:23:37 4: FB_CM_EXTENDER_Monitor: stat: ring event: internal_number arg: 05131xxxxx
2015.06.12 19:23:37 3: FB_CM_EXTENDER_Monitor: status: ring
2015.06.12 19:23:37 5: FB_CALLLIST (Anrufliste) - checking if MSN is filtered via line-filter
2015.06.12 19:23:37 4: FB_CALLLIST (Anrufliste) - start processing event ring for Call-ID 0
2015.06.12 19:23:37 4: FB_CALLMONITOR (Callmonitor) - reverse search returned: Handy René
2015.06.12 19:23:37 4: FB_CALLMONITOR (Callmonitor) - using internal phonebook for reverse search of 0177xxxxxxx
2015.06.12 19:23:37 4: FB_CALLMONITOR (Callmonitor) - using dasoertliche.de for reverse search of 0177xxxxxxx
2015.06.12 19:23:37 5: FB_CALLMONITOR (Callmonitor) - received data: 12.06.15 19:23:44;RING;0;0177xxxxxxx;05131xxxxx;SIP0;
und nochmal...
Zitat von: Markus Bloch am 12 Juni 2015, 19:45:15
und nochmal...
gerne...
2015.06.12 20:20:54 4: FB_CM_EXTENDER_UpdateValue: updateingindex F0 A0 0
2015.06.12 20:20:54 5: FB_CM_EXTENDER_UpdateValue: args callID: 0 col: A val: 0
2015.06.12 20:20:54 4: FB_CM_EXTENDER_UpdateValue: updateingindex F0 E0 00:00
2015.06.12 20:20:54 5: FB_CM_EXTENDER_UpdateValue: args callID: 0 col: E val: 00:00
2015.06.12 20:20:54 5: FB_CM_EXTENDER_Monitor: Disconnect befor FB_CM_EXTENDER_UpdateTable mot all
2015.06.12 20:20:54 4: FB_CM_EXTENDER_Monitor: stat: disconnect event: call_id arg: 0
2015.06.12 20:20:54 4: FB_CM_EXTENDER_Monitor: stat: disconnect event: external_connection arg: SIP0
2015.06.12 20:20:54 4: FB_CM_EXTENDER_Monitor: stat: disconnect event: call_duration arg: 0
2015.06.12 20:20:54 4: FB_CM_EXTENDER_Monitor: stat: disconnect event: external_number arg: 0177xxx
2015.06.12 20:20:54 4: FB_CM_EXTENDER_Monitor: stat: disconnect event: internal_number arg: 05131xxx
2015.06.12 20:20:54 4: FB_CM_EXTENDER_Monitor: stat: disconnect event: missed_call_line arg: 05131xxx
2015.06.12 20:20:54 4: FB_CM_EXTENDER_Monitor: stat: disconnect event: external_name arg: Handy René
2015.06.12 20:20:54 4: FB_CM_EXTENDER_Monitor: stat: disconnect event: direction arg: incoming
2015.06.12 20:20:54 4: FB_CM_EXTENDER_Monitor: stat: disconnect event: missed_call arg: 0177xxx (Handy René)
2015.06.12 20:20:54 3: FB_CM_EXTENDER_Monitor: status: disconnect
};
'5xxx' => 'privat'
2015.06.12 20:20:54 5: FB_CALLLIST (Anrufliste) - MSN 05131xxx does not match the current line-filter: $VAR1 = {
2015.06.12 20:20:54 5: FB_CALLLIST (Anrufliste) - checking if MSN is filtered via line-filter
2015.06.12 20:20:54 4: FB_CALLLIST (Anrufliste) - start processing event disconnect for Call-ID 0
2015.06.12 20:20:54 5: FB_CALLMONITOR (Callmonitor) - received data: 12.06.15 20:21:02;DISCONNECT;0;0;
2015.06.12 20:20:52 4: FB_CM_EXTENDER_UpdateTable: ID 0
2015.06.12 20:20:52 4: FB_CM_EXTENDER_Store: no linefilter definied
2015.06.12 20:20:52 5: FB_CM_EXTENDER_Monitor: Ring befor FB_CM_EXTENDER_UpdateTable mot all
2015.06.12 20:20:52 3: FB_CM_EXTENDER_Monitor: Call (ring) from Handy René 0177xxx callID: 0
2015.06.12 20:20:52 4: FB_CM_EXTENDER_Monitor: stat: ring event: call_id arg: 0
2015.06.12 20:20:52 4: FB_CM_EXTENDER_Monitor: stat: ring event: internal_number arg: 05131xxx
2015.06.12 20:20:52 4: FB_CM_EXTENDER_Monitor: stat: ring event: external_connection arg: SIP0
2015.06.12 20:20:52 4: FB_CM_EXTENDER_Monitor: stat: ring event: external_number arg: 0177xxx
2015.06.12 20:20:52 4: FB_CM_EXTENDER_Monitor: stat: ring event: direction arg: incoming
2015.06.12 20:20:52 4: FB_CM_EXTENDER_Monitor: stat: ring event: external_name arg: Handy René
2015.06.12 20:20:52 3: FB_CM_EXTENDER_Monitor: status: ring
};
'5xxx' => 'privat'
2015.06.12 20:20:52 5: FB_CALLLIST (Anrufliste) - MSN 05131xxx does not match the current line-filter: $VAR1 = {
2015.06.12 20:20:52 5: FB_CALLLIST (Anrufliste) - checking if MSN is filtered via line-filter
2015.06.12 20:20:52 4: FB_CALLLIST (Anrufliste) - start processing event ring for Call-ID 0
2015.06.12 20:20:52 4: FB_CALLMONITOR (Callmonitor) - reverse search returned: Handy René
2015.06.12 20:20:52 4: FB_CALLMONITOR (Callmonitor) - using internal phonebook for reverse search of 0177xxx
2015.06.12 20:20:51 4: FB_CALLMONITOR (Callmonitor) - using dasoertliche.de for reverse search of 0177xxx
2015.06.12 20:20:51 5: FB_CALLMONITOR (Callmonitor) - received data: 12.06.15 20:20:58;RING;0;0177xxx;05131xxx;SIP0;
Ok, ich glaube ich habe des Rätsels Lösung.
Ich gehe davon aus, dass du im Attribut "internal-number-filter" eine falsche Nummer konfiguriert hast. der internal-number Filter darf nur die Rufnummer ohne Vorwahl enthalten.
Angenommen deine vollständige Rufnummer wäre 0123/456789
Dann würde der internal-number-filter
{'456789' => 'privat'}
Man matcht hiermit das Reading internal_number von FB_CALLMONITOR zu einer eigenen Bezeichnung. Die Vorwahl oder sonstige Zeichen dürfen hier nicht enthalten sein.
Wenn du den Filter entfernst solltest du auf jedenfall Einträge bekommen.
Viele Grüße
Markus
Zitat von: Markus Bloch am 12 Juni 2015, 21:43:26
Dann würde der internal-number-filter
{'456789' => 'privat'}
Ok ich habe die besagten Erfolge... Super.
Es geht aber nur mit entfernten Filter, obwohl ich im attr nur meine Nummer ohne Vorwahl drin hatte...
Was fehlt ist jetzt noch die Dauer, hier erscheint nichts...!
Anbei Screenshot
Die Dauer wird erst gezählt, sobald abgenommen wird. In deinen Fällen hattest du einen eingehenden Anruf an den du nicht ran gegangen bist. Daher ist die Dauer nicht gesetzt da kein Gespräch stattgefunden hat.
Gruß
Markus
Zitat von: Markus Bloch am 12 Juni 2015, 22:45:32
Die Dauer wird erst gezählt, sobald abgenommen wird.
OK, da war eben in der anderen Liste immer ein 00:00 drin deshalb meine Frage...
Ich habe jetzt mal ein Ruf nach draußen abgesetzt und er zeigt sogar bei via DECT_1 an, dass ist ja der Filter der dann eben wohl privat anzeigen sollte.
Übrigens geht das jetzt auch auf meinem Produktivsystem mit der "irgendwann" eingesetzten Version, denn die neue Moduldatei habe ich immer nur auf meinem Testsystem ersetzt.
Zitat von: moonsorrox am 12 Juni 2015, 22:54:19
Ich habe jetzt mal ein Ruf nach draußen abgesetzt und er zeigt sogar bei via DECT_1 an, dass ist ja der Filter der dann eben wohl privat anzeigen sollte.
Nicht ganz. Das Attribut internal-number-filter dient ja der zuallererst der Filterung und zusätzlich zum Mapping der internen Rufnummer auf eine eigene Bezeichnung. Das Ergebnis steht in der Spalte "Intern"
Das Attribut "connection-mapping" weist den Gerätenamen eine eigene Bezeichnung zu, also DECT_1 => Mobilteil usw. Das Ergebnis steht dann in der Spalte "Via".
OK, dass war dann ja mal ne Geburt ;) :D
Vielen Dank das du dich da so rein gekniet hast...!
Zitat von: Markus Bloch am 12 Juni 2015, 23:05:17
Nicht ganz. Das Attribut internal-number-filter dient ja der zuallererst der Filterung und zusätzlich zum Mapping der internen Rufnummer auf eine eigene Bezeichnung. Das Ergebnis steht in der Spalte "Intern"
OK, das bedeutet bei mir dann, es erscheint nur meine Nummer, wer mehrere hat kann das nutzen. Bei mir ist es also überflüssig, da immer die gleiche Nummer da steht.. Das könnte ich dann ausblenden.
Zitat von: Markus Bloch am 12 Juni 2015, 23:05:17
Das Attribut "connection-mapping" weist den Gerätenamen eine eigene Bezeichnung zu, also DECT_1 => Mobilteil usw. Das Ergebnis steht dann in der Spalte "Via".
Das kann man dann ja auf den einzelnen DECT_1/2 Stationen oder wie die heißen anpassen...
Dann wird dieser Filter internal-number-filter wohl bei einigen diese Probleme machen, aber eben auch nicht bei allen. Es gab ja hier im Forum Leute bei denen hat die Anzeige funktioniert.
Zitat von: moonsorrox am 12 Juni 2015, 23:27:04
OK, das bedeutet bei mir dann, es erscheint nur meine Nummer, wer mehrere hat kann das nutzen. Bei mir ist es also überflüssig, da immer die gleiche Nummer da steht.. Das könnte ich dann ausblenden.
Genau.
Zitat von: moonsorrox am 12 Juni 2015, 23:27:04
Das kann man dann ja auf den einzelnen DECT_1/2 Stationen oder wie die heißen anpassen...
Genau. im Attribut "connection-mapping" würde man dan z.B. folgendes setzen: {'DECT_1' => 'Mobilteil Wohnzimmer', 'DECT_2' => 'Mobilteil Küche'}
Viele Grüße
Markus
Jetzt hoffe ich nur noch, dass bei Klaus das selbe Problem besteht, wie bei dir.
Zitat von: Markus Bloch am 12 Juni 2015, 23:31:38
Genau. im Attribut "connection-mapping" würde man dan z.B. folgendes setzen: {'DECT_1' => 'Mobilteil Wohnzimmer', 'DECT_2' => 'Mobilteil Küche'}
jo, das ist sehr schick.. grad mal gemacht - tolle Arbeit :D
Zitat von: Markus Bloch am 12 Juni 2015, 23:33:04
Jetzt hoffe ich nur noch, dass bei Klaus das selbe Problem besteht, wie bei dir.
na mal schauen er meldet sich sicher morgen oder liest sogar mit.
Dann kann ja bald das finale Modul kommen... ;) ich habe wie schon gesagt auf meinem Produktivsystem noch das ganz alte ohne die AUswahlmöglichkeit welche Spalten angezeigt werden sollen
HalliHallo,
da habe ich mal die letzte Version eingespielt und internal-number-filter gelöscht und schon werden
auch die Anrufe mit der unterdrückten RUfnummer angezeigt.
Soll ich noch was testen?
Klaus
Zitat von: kvo1 am 13 Juni 2015, 00:38:18
Soll ich noch was testen?
geh schlafen auch in Berlin is schon dunkel ;) ;)
Denke Markus wird uns noch das Finale Modul bereitstellen, wenn alles fertig ist, er schläft wohl schon... hat ihn genug Nerven gekostet ;) :D
Klaus du mußt einen ausgeben, du hast Antwort 333 (Schnapszahl - ich trinke Slivo ;))
@klaus: Teste lieber dein Bett. ;-)
ZitatKlaus du mußt einen ausgeben, du hast Antwort 333 (Schnapszahl - ich trinke Slivo ;))
gut , komm nach Berlin !
Ja , ich würde jetzt mal warten bis Markus hier eine Finalversion frei gibt und dann nochmal testen.
hatte bei internal-number-filter aber auch nur die eigene Nummer ohne Vorwahl drin !
Gruss Klaus
Zitat von: Markus Bloch am 13 Juni 2015, 00:47:46
@klaus: Teste lieber dein Bett. ;-)
;) :D ;)
Zitat von: kvo1 am 13 Juni 2015, 00:49:11
gut , komm nach Berlin !
bin öfter da, meine Eltern und mein Bruder wohnen da
Hallo Markus,
wenn ich das attr internal-number-filter wieder setze {'345678123'=>'1.Leitung'}
dann wird der Anruf (ausgehend ) vom Apparat wo die Nummer Unterdrückt wird nicht angezeigt
Klaus
Hallo zusammen,
ihr beide habt offensichtlich noch Probleme mit dem internal-number-filter.
@moonsorrox:
Ich habe in deinen Logs folgende Meldung gesehen die ich eingefügt hatte um zu schauen, warum der Filter die Calls rausschmeißt.
Nun gab es dazu bspw. folgende Zeile:
2015.06.12 20:20:54 5: FB_CALLLIST (Anrufliste) - MSN 05131xxx does not match the current line-filter: $VAR1 = {
'5xxx' => 'privat'
};
Dort sieht man ein Call, der eine internal_number von "05131xxx' hat nicht auf dein gesetzten Filter matcht der nur die Zahl '5xxx' enthält. Das ist auch soweit richtig, daher war meine Vermutung, dass du hier entweder nur Teile deiner internen Anschlussnummer (MSN) angegeben hast und offenbar nicht die vollständige. Ein Teil-Match ist hier momentan nicht möglich, die interne Rufnummer muss wirklich komplett und vollständig, so wie sie auch vom FB_CALLMONITOR im Reading "internal_number" ausgegeben wird, exakt matchen.
Jetzt kann es natürlich sein, dass beim unkenntlich machen der Logeinträge das vielleicht nur so aussieht, aber es ist zumindest für mich ein Indiz, dass hier was nicht passt bei eurer Konfiguration.
@kvo1:
Ich habe soeben mal an meinem Endgerät die Rufnummernunterdrückung (CLIR) in der FritzBox aktiviert. Die interne Rufnummer wird dennoch am FB_CALLMONITOR korrekt rausgegeben und mein gesetzter Filter von {'8xxxxx8' => 'privat'} matcht auch. Bitte installier dir mal die letzte Debug Version, die sich auch moonsorrox zur Eingrenzung installiert hat, da dort die oben genannte Logzeile drin ist, wo man genau erkennen kann, welche Rufnummer er gegen welchen Filter nicht matchen konnte. Wiegesagt, der Filter muss die komplette internal_number zuordnen, so wie sie vom FB_CALLMONITOR kommt. Wenn du ein Gespräch von einem Endgerät mit Rufnummernunterdrückung führst, muss die interne Rufnummer über die das Gespräch läuft ja auch im Reading "internal_number" im Callmonitor angezeigt werden.
Gruß
Markus
Ich konnte das Problem sowohl auf meinem NAS, als auch in einer Debian 8 VM nicht reproduzieren.
Hallo Markus,
Welche Version meinst Du, die aus Post #321 ?
Könntest Du irgendwie ne Versionsnummer einbauen.
Klau
Ja genau, die meine ich. Die Versionsnummer ist vorhanden, sobald ich es im SVN einchecke ;-)
Zitat von: Markus Bloch am 13 Juni 2015, 09:06:18
@moonsorrox:
Ich habe in deinen Logs folgende Meldung gesehen die ich eingefügt hatte um zu schauen, warum der Filter die Calls rausschmeißt.
Nun gab es dazu bspw. folgende Zeile:
2015.06.12 20:20:54 5: FB_CALLLIST (Anrufliste) - MSN 05131xxx does not match the current line-filter: $VAR1 = {
'5xxx' => 'privat'
};
Dort sieht man ein Call, der eine internal_number von "05131xxx' hat nicht auf dein gesetzten Filter matcht der nur die Zahl '5xxx' enthält.
OK, also die 05131 ist ja meine Vorwahlnummer, diese hatte ich natürlich nicht im Filter drin, weil ich es immer so verstanden habe das nur die Rufnummer ohne Vorwahl eingetragen werden sollte (meine Nr. beginnt zufällig auch mit 5, die restlichen Zahlen hatte ich mit xxxxx gelöscht), dann könnte ich das ganze nochmals mit Vorwahl eintragen und es sollte eine Neue Zeile in der Anrufliste erscheinen...!
Richtig verstanden..?
Du hast in der internal_number eine Vorwahl mit drin im Reading von FB_CALLMONITOR? Das wäre mir neu. Über welchen Weg nutzt du denn diese Rufnummer? Ist das eine VoIP Nummer oder eine direkte Festnetznummer über die Telefondose?
Ich kenne es so, dass Rufnummern in der FritzBox immer ohne Vorwahl konfiguriert sind. Die Vorwahl sowie Landesvorwahl wird in den Anschlusseinstellungen separat gesetzt. Es würde mich daher wundern, wenn du bei dir in deiner FritzBox Rufnummern inkl. Vorwahl konfiguriert hättest.
Zitat von: Markus Bloch am 13 Juni 2015, 11:13:58
Du hast in der internal_number eine Vorwahl mit drin im Reading von FB_CALLMONITOR? Das wäre mir neu. Über welchen Weg nutzt du denn diese Rufnummer? Ist das eine VoIP Nummer oder eine direkte Festnetznummer über die Telefondose?
so, zum 1.
mein Test hat funktioniert, ich habe im Filter jetzt die Vorwahl mit Rufnummer drin und es wird sofort angezeigt.
siehe Screenshot
zum2. Eintrag in der Fritzbox
ja bei mir steht die Vorwahl mit drin...!
siehe Screenshot
Formatierung für später dann:
ich habe noch eine Anmerkung zu meinem 1.Screenshot, ich würde sehr gern die Icons so übernehmen wie ich es hatte, weil die für mich etwas besser in der Darstellung sind.
Ich würde gern alles was raus und rein kommt und wo nicht telefoniert wird in rot anzeigen lassen mit dem entsprechenden Icon, ist ein Anruf zustande gekommen soll er je mit einem Icon in grün dargestellt werden, ein Gespräch was gerade läuft war bisher bei mir immer in gelb dargestellt und wenn es auf den AB geht in Blau..
Ich habe da schon mal ins Modul geschaut und gesehen das dieses wunderbar geht...
Hui, ok. Ist mir noch nicht untergekommen. Gut zu wissen. Werde ich in der Doku entsprechend berücksichtigen.
ich glaube das liegt an der Konfiguration meiner Fritte, und wenn ich Eure Einträge so ansehen... ich habe
bei Rufnummer auch die Vorwahl mit drin.....
hier noch mein log
es gibt 2 Anschlüsse und 3 Nummern (5000007, 80000005, 80000004)
Anschluss ausgehend ankommend
FON 1 5000007 5000007 und 80000005
FON 2 80000005 5000007 und 80000005
Fax 80000004
2015.06.13 11:11:14 0: Server started with 54 defined entities (version $Id: fhem.pl 8690 2015-06-04 16:47:20Z rudolfkoenig $, os linux, user fhem, pid 2188)
2015.06.13 11:12:01 5: FB_CALLMONITOR (FB7272) - received data: 13.06.15 11:12:01;CALL;0;1;80000005;01770000001;SIP2;
2015.06.13 11:12:01 4: FB_CALLMONITOR (FB7272) - using cache for reverse search of 01770000001
2015.06.13 11:12:01 4: FB_CALLMONITOR (FB7272) - reverse search returned: unknown
2015.06.13 11:12:01 4: FB_CALLLIST (FB7272_LIST) - start processing event call for Call-ID 0
2015.06.13 11:12:01 5: FB_CALLLIST (FB7272_LIST) - checking if MSN is filtered via line-filter
2015.06.13 11:12:01 5: FB_CALLLIST (FB7272_LIST) - 1
2015.06.13 11:12:01 5: FB_CALLLIST (FB7272_LIST) - 2
2015.06.13 11:12:01 5: FB_CALLLIST (FB7272_LIST) - 3
2015.06.13 11:12:01 5: FB_CALLLIST (FB7272_LIST) - MSN 80000005 does not match the current line-filter: $VAR1 = {
'5000007' => 'privat'
};
2015.06.13 11:12:14 5: FB_CALLMONITOR (FB7272) - received data: 13.06.15 11:12:14;DISCONNECT;0;0;
2015.06.13 11:12:14 4: FB_CALLLIST (FB7272_LIST) - start processing event disconnect for Call-ID 0
2015.06.13 11:12:14 5: FB_CALLLIST (FB7272_LIST) - checking if MSN is filtered via line-filter
2015.06.13 11:12:14 5: FB_CALLLIST (FB7272_LIST) - 1
2015.06.13 11:12:14 5: FB_CALLLIST (FB7272_LIST) - 2
2015.06.13 11:12:14 5: FB_CALLLIST (FB7272_LIST) - 3
2015.06.13 11:12:14 5: FB_CALLLIST (FB7272_LIST) - MSN 80000005 does not match the current line-filter: $VAR1 = {
'5000007' => 'privat'
};
2015.06.13 11:27:51 5: FB_CALLMONITOR (FB7272) - received data: 13.06.15 11:27:51;CALL;0;1;80000005;01770000001;SIP2;
2015.06.13 11:27:51 4: FB_CALLMONITOR (FB7272) - using cache for reverse search of 01770000001
2015.06.13 11:27:51 4: FB_CALLMONITOR (FB7272) - reverse search returned: unknown
2015.06.13 11:27:51 4: FB_CALLLIST (FB7272_LIST) - start processing event call for Call-ID 0
2015.06.13 11:27:51 5: FB_CALLLIST (FB7272_LIST) - checking if MSN is filtered via line-filter
2015.06.13 11:27:51 5: FB_CALLLIST (FB7272_LIST) - 1
2015.06.13 11:27:51 5: FB_CALLLIST (FB7272_LIST) - 2
2015.06.13 11:27:51 5: FB_CALLLIST (FB7272_LIST) - 3
2015.06.13 11:27:51 5: FB_CALLLIST (FB7272_LIST) - MSN 80000005 does not match the current line-filter: $VAR1 = {
'84725654' => 'kein-Name'
};
2015.06.13 11:28:08 5: FB_CALLMONITOR (FB7272) - received data: 13.06.15 11:28:08;DISCONNECT;0;0;
2015.06.13 11:28:08 4: FB_CALLLIST (FB7272_LIST) - start processing event disconnect for Call-ID 0
2015.06.13 11:28:08 5: FB_CALLLIST (FB7272_LIST) - checking if MSN is filtered via line-filter
2015.06.13 11:28:08 5: FB_CALLLIST (FB7272_LIST) - 1
2015.06.13 11:28:08 5: FB_CALLLIST (FB7272_LIST) - 2
2015.06.13 11:28:08 5: FB_CALLLIST (FB7272_LIST) - 3
2015.06.13 11:28:08 5: FB_CALLLIST (FB7272_LIST) - MSN 80000005 does not match the current line-filter: $VAR1 = {
'80000004' => 'kein-Name'
};
Zitat von: Markus Bloch am 13 Juni 2015, 11:36:37
Hui, ok. Ist mir noch nicht untergekommen. Gut zu wissen. Werde ich in der Doku entsprechend berücksichtigen.
ich habe versucht das mal umzustellen und die Vorwahl extra einzutragen, da ändert sich nichts, es gibt ja unter Anschlußeinstellungen die Möglichkeit die Ortsvorwahl einzutragen, das ändert bei mir aber nichts.
Es bleibt alles so
Ja denn, denke ich hätten wir die Ursache gefunden. Ich werde einen entsprechenden Vermerk in der commandref reinbringen, das sich hier je nach Telefonanbieter auch die Vorwahl mit dabei befinden können.
Alternativ könnte man das auch direkt im Callmonitor lösen und in der internal_number die Vorwahl (sofern sie konfiguriert ist via Attribute local-area-code und natürlich auch matcht) entfernen.
Gruß
Markus
Zitat von: Markus Bloch am 13 Juni 2015, 11:56:10
Ja denn, denke ich hätten wir die Ursache gefunden. Ich werde einen entsprechenden Vermerk in der commandref reinbringen, das sich hier je nach Telefonanbieter auch die Vorwahl mit dabei befinden können.
Alternativ könnte man das auch direkt im Callmonitor lösen und in der internal_number die Vorwahl (sofern sie konfiguriert ist via Attribute local-area-code und natürlich auch matcht) entfernen.
Gruß
Markus
genau da steht bei mir nämlich nur die Vorwahl drin evtl. sollte ich diese mal raus nehmen
@Markus
Nochmal ne Frage zu der Formatierung mit Icons..
In dem Bereich des Sub ist kein Anrufbeantworter eingetragen, ist das noch möglich
#####################################
# returns the call state of a specific call as icon or text
sub FB_CALLLIST_returnCallState($$)
Ich sehe dann ja bei Via "Answering_Machine_1" da könnte man dann vorne ein Symbol für den AB hinterlegen, oder ist das schon drin und ich finde es nicht..?
Im connection-mapping habe ich das schon eingetragen, aber das Symbol wird nur als Einkommendes Gespräch in Blau dar gestellt.
Evtl. kann man das auch als Attribut hinterlegen - das wäre das beste - mit den Icons, aber sogut kenne ich mich da nicht aus mit der Programmierung.
Wenn ich das für mich anpasse muss ich jedesmal bei einem Update des Moduls, wieder meine Icons einfügen
Zitat von: moonsorrox am 13 Juni 2015, 11:59:19
Ich sehe dann ja bei Via "Answering_Machine_1" da könnte man dann vorne ein Symbol für den AB hinterlegen, oder ist das schon drin und ich finde es nicht..?
Im connection-mapping habe ich das schon eingetragen, aber das Symbol wird nur als Einkommendes Gespräch in Blau dar gestellt.
Habe ich eingebaut. Werde heute Abend die finale Version einchecken.
Hallo Markus,
Gut wäre, wenn man an der Gesamtbreite noch was machen könnten,
bisher geht es ja immer über die ganze Breite.
Klaus
Hallo Klaus,
die aktuelle Version die ich einchecke wird nicht mehr über die gesamte Breite gehen.
Gruß
Markus
Hallo zusammen,
die CALLLIST habe ich soeben eingecheckt und wird ab morgen regulär per update ausgeliefert.
Danke an alle für die Unterstützung.
Viele Grüße
Markus
Zitat von: Markus Bloch am 13 Juni 2015, 17:14:09
Hallo zusammen,
die CALLLIST habe ich soeben eingecheckt und wird ab morgen regulär per update ausgeliefert.
Danke an alle für die Unterstützung.
Viele Grüße
Markus
Hallo Markus,
Super , ich glaube, wir müssen uns bei Dir bedanken!
Klaus
Hammer! besten Dank Markus!
Gesendet von meinem GT-I9100 mit Tapatalk
Hallo,
nutze jetzt auch das neue Modul FB_CALLLIST, funktioniert super - vielen Dank Markus!
Habe aber nach dem heutigen Update noch folgende Fehlermeldungen im Log gefunden:
Use of uninitialized value $FW_ME in concatenation (.) or string at /opt/fhem/FHEM/72_FB_CALLLIST.pm line 498, <$fh> line 1153
Use of uninitialized value $FW_subdir in concatenation (.) or string at /opt/fhem/FHEM/72_FB_CALLLIST.pm line 498, <$fh> line 1153
Use of uninitialized value $FW_ME in concatenation (.) or string at /opt/fhem/FHEM/72_FB_CALLLIST.pm line 498, <$fh> line 1154
Use of uninitialized value $FW_subdir in concatenation (.) or string at /opt/fhem/FHEM/72_FB_CALLLIST.pm line 498, <$fh> line 1154
was wollen mir diese Meldungen sagen?
Die Funktion scheint nicht beeinträchtigt zu sein.
was für ein Frontend benutzt du denn?
Das ganz normale!
Dann sollten diese Variablen auch vorhanden sein, da es sich hier um globale Variablen von FHEMWEB handelt. Tritt dieser Fehler denn immer auf, sobald du die Raumübersicht aufmachst in der deine Calllist sich befindet?
Nein, der Fehler tritt nur beim Starten von FHEM auf!
Ah ok, ja das kann unter bestimmten Umständen vorkommen. Da werd ich mir noch was überlegen, hat aber wie gesagt keinerlei Auswirkungen auf die eigentliche Funktion.
Kein Problem, scheint ja wie gesagt nichts auszumachen!
Nochmals Danke für deine Arbeit!
Zitat von: Markus Bloch am 13 Juni 2015, 15:38:38
die aktuelle Version die ich einchecke wird nicht mehr über die gesamte Breite gehen.
Gruß
Markus
so Update gemacht...! ;)
nach wie vor volle Breite.... aber ich sage trotzdem schon mal Super und vielen Dank für die tolle Arbeit :D
der Rest ist sicher noch ein wenig klein Arbeit was Formatierung usw. betrifft, jetzt kann es wachsen... ;)
Hallo zusammen,
erst mal ein großes Dankeschön für das überarbeitete Modul!!!!
Habe es gerade im Update gefunden und direkt ausprobiert.
Die Lieste wird auch direkt erstellt und die anrufe werden auch angezeigt.
Hatte vorher das TM drauf und da klappte es mit dem Anzeigen der Namen aus dem Telefonbuch der Fritzbox. Leider bekomme ich diese in dem neuen Modul nicht angezeigt.
Hier in den Beiträgen habe ich aber gesehen das es da einige gibt.
Kann man mir da etwas helfen?
Gruß
Porsti
Was steht denn im Reading "external_name" im FB_CALLMONITOR bei dir?
Hallo Markus,
super Modul, es funktionierte auf Anhieb bei mir.
Eine Frage:
hast du geplant, eine Funktion einzubauen, die bei klick auf eine der Zeilen eine Aktion auslösen kann wobei die externe Telefonnummer übergeben wird?
Ich würde damit gern einen Rückruf auslösen.
Grüße
Klaus
Bei "external_name" im FB_CALLMONITOR steht: unknown
Obwohl die Nummer im Telefonbuch der Fritzbox steht und diese auch immer im odul vom Elektrolurch angezeigt wurde.
Gruß
Porsti
Zitat von: klausw am 14 Juni 2015, 13:48:58
hast du geplant, eine Funktion einzubauen, die bei klick auf eine der Zeilen eine Aktion auslösen kann wobei die externe Telefonnummer übergeben wird?
Ich würde damit gern einen Rückruf auslösen.
Inwiefern meinst du "Rückruf auslösen". Willst du die Wählhilfe ansprechen?
Zitat von: Porsti am 14 Juni 2015, 13:50:58
Bei "external_name" im FB_CALLMONITOR steht: unknown
Obwohl die Nummer im Telefonbuch der Fritzbox steht und diese auch immer im odul vom Elektrolurch angezeigt wurde.
Gruß
Porsti
Der Wert "unknown" wird in der Calllist mit einem "-" dargestellt. Das heißt, es ist kein Name bekannt. Das ist das richtige Verhalten. Nun ist die Frage, warum kann der Name im FB_CALLMONITOR nicht aufgelöst werden. Es würde mich wundern, wenn im Modul von Elektrolurch der Name angezeigt wird, obwohl der FB_CALLMONITOR nur "unknown" ausgibt, da dieses Modul auch nur die Daten/Events vom FB_CALLMONITOR verarbeitet. Evtl. steht die entsprechende Telefonnummer nicht mehr in deinem Telefonbuch, etc.
Gruß
Markus
Zitat von: Porsti am 14 Juni 2015, 13:50:58
Obwohl die Nummer im Telefonbuch der Fritzbox steht und diese auch immer im odul vom Elektrolurch angezeigt wurde.
Vorsicht, du nutzt nicht das aktuelle Telefonbuch der FritzBox, sondern einen Extrakt in Form einer XML Datei. Wenn der Eintrag dort nicht vorhanden ist und über dasoertliche.de nicht aufgelöst werden kann, gibt er unknown zurück.
Alternativ kannst du das Telefonbuch aus der FritzBox direkt abziehen. Siehe dazu das Attribut fritzbox-remote-phonebook im FB_CALLMONITOR.
Viele Grüße
Markus
Hi,
habe das Telefonbuch gerade noch mal exportiert und auf den Raspi geschoben.
Vermute das ich es ausversehen beim spielen mit dem Callmonitor geschrottet habe.
Danke für deine Hilfe und das neue Modul.
Gruß
Porsti
Du kannst dir im Callmonitor über die Get-Befehle alle Telefonbuch Einträge anzeigen, die er eingelesen hat.
Zitat von: Markus Bloch am 14 Juni 2015, 13:51:37
Inwiefern meinst du "Rückruf auslösen". Willst du die Wählhilfe ansprechen?
Genau, das war der Wunsch.
Rückruf: Beim alten TM habe ich in der readingsGroup so gelöst, dass ich für die angezeigte Nummer ein command-Attribut gesetzt habe, welches dann in dem 72_fritzbox - Modul einen Telefonanruf startete.
commands {'monitor-type' => 'monitor-type:','clear' => 'set $DEVICE clear', 'D0' => "set fritzbox call $VALUE",'D1' => "set fritzbox call $VALUE", 'D2' => "set fritzbox call $VALUE",'D3' => "set fritzbox call $VALUE",'D4' => "set fritzbox call $VALUE"}
Elektrolurch
Zitat von: Elektrolurch am 14 Juni 2015, 16:11:53
Rückruf: Beim alten TM habe ich in der readingsGroup so gelöst, dass ich für die angezeigte Nummer ein command-Attribut gesetzt habe, welches dann in dem 72_fritzbox - Modul einen Telefonanruf startete.
commands {'monitor-type' => 'monitor-type:','clear' => 'set $DEVICE clear', 'D0' => "set fritzbox call $VALUE",'D1' => "set fritzbox call $VALUE", 'D2' => "set fritzbox call $VALUE",'D3' => "set fritzbox call $VALUE",'D4' => "set fritzbox call $VALUE"}
Elektrolurch
Ok, entspricht das dann der Wählhilfe? Also man führt das Kommando im FRITZBOX Modul aus und dann klingelt es an einem gewünschten Telefon mit dem initiierten Gespräch?
Ja. Es klingelt das Telefon, welches im Fritzbox-Modul per Attribut festgelegt wurde.
Läuft gerade ein Anruf, verschwindet die Liste (sowohl im Raum,als auch in der Detailansicht) und es erscheint nur eine 1. Aktualisiert man die Seite, wird der korrekte aktuelle Status inklusive "läuft" angezeigt. Ist dieser Bug bekannt? Im Grunde passiert das Verschwinden bei jeder Live-Statusänderung der Liste.
Zitat von: Elektrolurch am 15 Juni 2015, 08:57:55
Ja. Es klingelt das Telefon, welches im Fritzbox-Modul per Attribut festgelegt wurde.
Genau so hatte ich mir das vorgestellt.
Im mom habe ich aber noch eine weitere Baustelle, da bei mir nur die externe Nummer klingelt und das interne Dect Telefon stumm bleibt. Hebt dann der angerufene ab, dann hört er "die Verbindung wird gehalten"
Allerdings ist das eher offtopic ...(Tips sind Trotzdem willkommen) 8)
Bei mir ist dieser Apparat, der in dem Attribut eingetragen ist, kein DECT sondern ein Analoges. Hatte ich noch übrig und steht neben dem PC im Büro. Damit konnte man dann auch in Webseiten auf dem PC auf Telefonnummern klicken und die FB hat dann das Gespräch aufgebaut. Seit Win8 geht aber der AVM-Treiber dafür nicht mehr.
Dafür haben wir ja jetzt das fritzbox-Modul.
Die im calllist angezeigte externe Nummer müsste per attr dann noch einen Link verpasst bekommen.
Was mir vom TM im callist noch fehlt, ist die Möglichkeit "gesammelt" auf Events zu reagieren.
(method-ring, method-connect usw.)
Die events für die einhzelnen Werte kommen ja vom fb-CallMonitor alle hintereinander. Man könnte natürlich z.B. bei ring dann die gesetzten readings beim FB-CallMonitor abfragen, aber so was wie z.B.
set meinSTV call Anruf von $EXTNAME mit $EXTNUM
(Einblenden der Anruf-Infos auf dem Samsung TV)
wird dann ziemlich kompliziert.
Im TM hatte ich da Pseudovariablen gesetzt, die dann beim Aufruf durch die echten Werte ersetzt wurden.
War halt komfortabler, als alles außerhalb mit ReadingsVal einzusammeln.
Elektrolurch
Zitat von: Elektrolurch am 15 Juni 2015, 15:09:05
Was mir vom TM im callist noch fehlt, ist die Möglichkeit "gesammelt" auf Events zu reagieren.
(method-ring, method-connect usw.)
Die events für die einhzelnen Werte kommen ja vom fb-CallMonitor alle hintereinander. Man könnte natürlich z.B. bei ring dann die gesetzten readings beim FB-CallMonitor abfragen, aber so was wie z.B.
set meinSTV call Anruf von $EXTNAME mit $EXTNUM
(Einblenden der Anruf-Infos auf dem Samsung TV)
wird dann ziemlich kompliziert.
Im TM hatte ich da Pseudovariablen gesetzt, die dann beim Aufruf durch die echten Werte ersetzt wurden.
War halt komfortabler, als alles außerhalb mit ReadingsVal einzusammeln.
Elektrolurch
Finde ich prinzipiell richtig die Idee, würde ich aber an einer höheren, generellen Stelle ansetzen:
Aktuell wird ja bei einem notify mehrere Platzhalter ersetzt ($EVENT, $EVTPART1, $EVTPART2,....). Ich würde mir hier ein generelles Konstrukt vorstellen, welches von einem bestimmten Device ein Reading an die jeweilige Stelle als Platzhalter einfügt.
z.B. [<devicename>:<readingname>]
so dass man dann ein Notify machen würde alá:
define TV_Popup notify Callmonitor:ring set meinSTV call Anruf von [Callmonitor:external_name] mit [Callmonitor:external_number]
Damit könnte man auch überall solche ReadingsVal-Konstrukte abschaffen, nicht nur in der Calllist ;-)
Einen entsprechenden Patch würde ich einreichen, sobald ich am Wochenende wieder zuhause bin.
Viele Grüße
Markus
Ich wollte das Modul FB_CALLLIST für die FHEM APP melden. Doch leider sind dort keine Readings enthalten, die genutzt werden können. Hat man da eine Chance? Ist kann man da nichts machen?
Zitat:
Ich würde mir hier ein generelles Konstrukt vorstellen, welches von einem bestimmten Device ein Reading an die jeweilige Stelle als Platzhalter einfügt.
z.B. [<devicename>:<readingname>]
so dass man dann ein Notify machen würde alá:
Solche Platzhalter fehlen z.B. auch beim stateFormat, wenn man da einen perl-Ausdruck verwenden möchte.
Wo ich das zuerst gesehen hatte und total sinnvoll fand, war im Andres "readingsGroup" - Modul. Daher hatte ich die Idee für den TM sofort abgekupfert. :-)
Gruß
Elektrolurch
Zitat von: karl0123 am 15 Juni 2015, 14:06:59
Läuft gerade ein Anruf, verschwindet die Liste (sowohl im Raum,als auch in der Detailansicht) und es erscheint nur eine 1. Aktualisiert man die Seite, wird der korrekte aktuelle Status inklusive "läuft" angezeigt. Ist dieser Bug bekannt? Im Grunde passiert das Verschwinden bei jeder Live-Statusänderung der Liste.
Diesen Fehler kann ich bei mir auch beobachten.
beim mir bleibt die letzte Zeile (bei mir 10) und die neue Zeile wird angezeigt. Hat aber in der letzten Version noch funktioniert!
Hallo, über das neue Modul FB_Calllist habe ich mich sehr gefreut. Es funktioniert super. Leider "verliere" ich aber bei einemShutdown restart die bereits angezeigten Anrufe. Ist das ein Bug oder gewollt oder liegt es an meiner Konfiguration? Habe schon das Forum durchforstet, kann aber keine Lösung findern
Beste Grüße
Jürgen K.
Hallo nochmal, habe den Fehler gefunden: uniqueID hatte nicht die nötigen Rechte...
Zitat von: karl0123 am 15 Juni 2015, 14:06:59
Läuft gerade ein Anruf, verschwindet die Liste (sowohl im Raum,als auch in der Detailansicht) und es erscheint nur eine 1. Aktualisiert man die Seite, wird der korrekte aktuelle Status inklusive "läuft" angezeigt. Ist dieser Bug bekannt? Im Grunde passiert das Verschwinden bei jeder Live-Statusänderung der Liste.
Habt ihr auch die aktuellste via "update" verteilte Version im Einsatz? Ich hatte nach dem initialen Check-In ein weiteres Update eingecheckt, was genau dieses Problem behoben hat.
Gruß
Markus
Zitat72_FB_CALLLIST.pm 8739 2015-06-13 15:10:24Z markusbloch $
Eine neuere Version wird über update nicht angeboten. Die aus dem Trunk in sf hat die gleiche Versionsnummer.
Edit: Version von fhemweb_fbcallist.js
Zitat$Id: fhemweb_fbcalllist.js 8742 2015-06-14 10:01:11Z markusbloch $
Ein weiteres "Problem" ist, dass man in der Detailansicht nicht, wie üblich, den commandref Eintrag unter den Device-Details sieht, wenn man "Device Specific Help" anklickt, sondern zur lokalen commandref weitergeleitet wird.
Ich meinte damit nicht das Modul als solches, sondern die fhemweb_fbcalllist.js, welches den Update-Mechanismus enthält.
siehe: http://sourceforge.net/p/fhem/code/8742/
Kann ich mir nicht vorstellen. Muss ich heute abend bei mir mal testen. Ich war die Woche auf Konferenz und hatte keine Zeit das auszuprobieren.
Auch hier allgemein wieder meine Bitte, den Thread nicht für neue Probleme zu nutzen. Dieser Thread diente zum Entwurf und Test von mehreren neuen Modulen. Ein Endergebnis steht nun für alle zur Verfügung.
Ich möchte euch daher bitten für entsprechende Fragen/Probleme einen neuen Thread zu öffnen, da parallele Problemlösung in einem Thread nicht sehr übersichtlich ist.
@Elektrolurch: Es wäre toll, wenn du den Thread schließen könntest.
Vielen Dank
Gruß
Markus
Zitat von: Markus Bloch am 18 Juni 2015, 15:14:16
Ich meinte damit nicht das Modul als solches, sondern die fhemweb_fbcalllist.js, welches den Update-Mechanismus enthält.
siehe: http://sourceforge.net/p/fhem/code/8742/ (http://sourceforge.net/p/fhem/code/8742/)
Dahingehend hatte ich meinen Beitrag editiert. Ich hatte schon vermutet, dass du dich unpräzise ausgedrückt hattest ;). Auch hier fahre ich mit der aktuellen Version aus sf.