Callmonitor für Anfänger

Begonnen von coolice, 25 Januar 2014, 13:07:36

Vorheriges Thema - Nächstes Thema

Absolute Beginner

Ich versuche mich auch gerade an diesem Callmonitor, und eingehende und abgehende Anrufe werden auch mit Klarnamen registriert. So falsch kann ich dann doch gar nicht sein! Nur im Fenster 'Anrufliste' tut sich nichts.
Im Logfile steht nur überall:
missed to call readingsBeginUpdate first.
Wo liegt mein Fehler?
Raspberry Pi 3 - CUL868 - Jessie - FHEM5.8 - MQTT - Node-RED
HM-TC-IT-WM-W-EU, HM-LC-BI1PBU-FM, HM-Sec-SCo, HM-WDS30-0T2-SM, SOMFY, Echo, ESP, SonOff

fiedel

Mal Updates machen und wenn es dann nicht geht, meine Minimalkonfig von ein paar Posts weiter oben nehmen.
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423

Invers

Ich habe die Anrufliste bei mir nach dieser Anleitung installiert und sie läuft fast super.
Leider habe ich festgestellt, dass ein Anruf heute nicht angezeigt wird.

ich erhielt einen Anruf mit unterdrückter nummer, den ich ncht annahm. Es klingelte, bis der AB anging. dann legte der Anrufer offenbar auf, ohne etwas zu sagen.

Der Anruf wurde im LOG gespeichert.


2014-02-14_11:54:07 Callmon event: ring
2014-02-14_11:54:07 Callmon external_number: unknown
2014-02-14_11:54:07 Callmon external_name: unknown
2014-02-14_11:54:07 Callmon internal_number: 88888888
2014-02-14_11:54:07 Callmon external_connection: ISDN
2014-02-14_11:54:07 Callmon call_id: 0
2014-02-14_11:54:33 Callmon event: connect
2014-02-14_11:54:33 Callmon internal_connection: Answering_Machine_1
2014-02-14_11:54:33 Callmon call_id: 0


Andere Anrufe werden korrekt angezeigt, ich weiss aber nicht, ob noch ander Varianten kommen können, wo es nicht geht.
Hier mal ein korrekter Log:


2014-02-14_10:42:00 Callmon event: call
2014-02-14_10:42:00 Callmon external_number: 11111111
2014-02-14_10:42:00 Callmon external_name: aaaadfadsasdfasdf
2014-02-14_10:42:00 Callmon internal_number: 22222222
2014-02-14_10:42:00 Callmon external_connection: ISDN
2014-02-14_10:42:00 Callmon internal_connection: DECT_3
2014-02-14_10:42:00 Callmon call_id: 1
2014-02-14_10:42:08 Callmon event: connect
2014-02-14_10:42:08 Callmon internal_connection: DECT_3
2014-02-14_10:42:08 Callmon call_id: 1
2014-02-14_10:46:20 Callmon event: disconnect
2014-02-14_10:46:20 Callmon call_duration: 256
2014-02-14_10:46:20 Callmon call_id: 1


Säntliche Rufnummern habe ich natürlich geändert.

Hat jemand eine Idee, was ich tun kann?
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

Absolute Beginner

Hab nochmal alles gecheckt, und tatsächlich war da doch ein altes file geladen. Blöd so etwas. Trotzdem zeigt er in der Anrufliste immer noch nichts an.
Im Logfile ist nach wie vor dieser Fehler:
2014.02.14 15:55:13 3: Fritz_Box device opened
2014.02.14 15:55:13 2: FB_CALLMONITOR: Fritz_Box found FritzBox phonebook /var/flash/phonebook
2014.02.14 15:55:13 2: FB_CALLMONITOR: Fritz_Box read 83 contacts from FritzBox phonebook
2014.02.14 15:55:13 3: FB_CALLMONITOR: loading cache file ./log/Fritz_Box-%Y.log Fritz_Box
2014.02.14 15:55:13 3: FB_CALLMONITOR: could not open cache file


Hat jemand einen Rat?
Raspberry Pi 3 - CUL868 - Jessie - FHEM5.8 - MQTT - Node-RED
HM-TC-IT-WM-W-EU, HM-LC-BI1PBU-FM, HM-Sec-SCo, HM-WDS30-0T2-SM, SOMFY, Echo, ESP, SonOff

Invers

#34
Ich denke, dass vielleicht dein Logfile falsch definiert ist. Esistiert denn die Datei?
Hier mal meine Version:


define FileLog_Callmon FileLog ./log/Callmon-%Y.log Callmon
attr FileLog_Callmon logtype text
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

Invers

Wird schon wieder sehr unübersichtlich. Daher mal hier eine komplette, funktionierende Konfiguration:


# Logfile der Anrufe (Fritzbox)

# Callmonitor mit scrollender Anruferliste:
define Callmon FB_CALLMONITOR 192.168.178.1:1012
attr Callmon icon phone_call
attr Callmon local-area-code 030
attr Callmon reverse-search all
attr Callmon reverse-search-cache 1
attr Callmon reverse-search-phonebook-file /fhem/fb_phonebook.xml
attr Callmon 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 Callmon verbose 0

# Telefonevents für Anzeige abfangen:
define Func_TelMon_N notify Callmon:.* { \
  TelefonMonitor ($EVENT);; \
}

# Anzeige der Anrufe generieren:
define Anrufliste readingsGroup 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 group Anrufe
attr Anrufliste mapping {'Callmon.A0' => '1.', 'Callmon.A1' => '2.', 'Callmon.A2' => '3.', 'Callmon.A3' => '4.', 'Callmon.A4' => '5.'}
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 0_Überblick
# attr Anrufliste style style="font-size:20px"
# Style ( noch machen): Pfeile und/oder Nummern farbig je nach in/out:
# attr Anrufliste valueStyle {($READING eq "A0" && $A[$callID] = "<-")?'style="color:red"':'style="color:green"'}


define FileLog_Callmon FileLog ./log/Callmon-%Y.log Callmon
attr FileLog_Callmon logtype text
define rgAnrufe readingsGroup Anrufliste A1,B1,C1,D1




Und die 99_myUtilsTelefon,pm


#################################################
# $Id: 99_myUtilsTelefon.pm 1932 2012-10-06 20:15:33Z ulimaass $
package main;

use strict;
use warnings;
use POSIX;
use FritzBoxUtils;


# fuer Telefonanrufe
our @A;
our @B;
our @C;
our @D;
our @E;
our %TelefonAktionsListe;


sub
myUtilsTelefon_Initialize($$)
{
  my ($hash) = @_;

 
  #...
 

}
################################################################


sub SendSMS ($$)
{
  my $adress = $_[0].'@sms.kundenserver.de';
   my $body = $_[1];
   Log (3,"SendSMS: $adress - $body");
   FB_mail($adress,"",$body);
# end sub SendSMS
}
#####################################
# Anruffunktionen ueber Fritzbox

sub
FBCall ($$)
{

my $callnr = $_[0];
my $duration = $_[1];

Log(3,"FBCall: $callnr mit Dauer $duration");


$callnr = "ATDT".$callnr."#";
my $ret = "ATD: " . `echo $callnr | nc 127.0.0.1 1011`;
InternalTimer(gettimeofday()+$duration, "FBHangOn", "", 0);
return;
}

sub FBHangOn ()
{
Log(3,"FBCallHangOn aufgerufen");

my $ret = " ATH: " . `echo "ATH" | nc 127.0.0.1 1011`;
$ret =~ s,[\r\n]*,,g;
return;
}

######################################

sub TelefonAktion($$)
{
# es wird der Name und die interne angerufene Nummer uebergeen

my ($caller) = split ('\(',$_[0]);
$caller = ltrim(rtrim($caller));

my $intern = $_[1];

# Log(3,"TelefonAktion: $caller $intern");
# Sound ausgeben

my $com = $main::TelefonAktionsListe{$caller};

if ($com)
{
    Log(3,"TelefonAktion: commando: $com");
   sig2_repeat($com,5,4);
} # falls commando vorhanden

} # end sub TelefonAktion

######################################
# EventZeit: Die Zeit wird nicht in der fhem-Reihenfolge, sondern für "human Interface" dargestellt
sub EventZeit()
{
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time());
return sprintf ("%2d:%02d:%02d %2d.%02d.%4d", $hour,$min,$sec,$mday,($mon+1),($year+1900));
} # end sub EventZeit

######################################


sub TelefonMonitor($)
{
our $extnum;
our $intnum;
our $extname;
our $callID;
our $callDuration;
our $stat;
my $i; my $j;
our $ab;
my $Callmon = $defs{"Callmon"};

my ($event,$arg) = split (':',$_[0]);
$arg = ltrim($arg);

# Log(3,"TM: event: $event arg: $arg");
if ($event eq "event")
{
$stat = $arg;
if ($arg eq "disconnect")
  {
#    fhem("set msg2_TVMarina MUTE 0");
#    fhem("set msg2_TVWohnzimmer MUTE 0");
#    sig2_break(); fiedel: -> Funktion um Anrufername auf FS20SIG2 auszugeben (nicht genutzt)
#    sig2(70); # ringout
  } # if disconnect
    return;
} # end if event

if ($stat eq "ring")
{
if ($event eq"external_number")
  {
    $extnum = $arg;
return;
} # if external number


if ($event eq "external_name")
  {
    $extname = $arg;
   return;
}
if ($event eq "internal_number")
  {
    $intnum = $arg;
   return;
   } # end if intnum


if ($event eq "call_id")
{
   $callID = $arg;
# hier koennen wir eine anrufgesteuerte Aktion starten
TelefonAktion($extname, $intnum);

$A[$callID] = "-> ";
   $B[$callID] = EventZeit();
   $C[$callID] = $extname;
   $D[$callID] = $extnum;
# fiedel: Folgende Dummys bzw. Funktionen in der CFG einrichten, wenn Samsung TV vorhanden!
#    fhem("set msg2_TVMarina MUTE 1");
#    fhem("set msg2_TVWohnzimmer MUTE 1");
#    fhem("set msg1_TVMarina call Anruf von $extname $extnum");
#    fhem("set msg1_TVWohnzimmer call Anruf von $extname $extnum");
   return;
   } # end if callid
return;
} # end if ring loop

if ($stat eq "connect")
{
if (($event eq"internal_connection") &&
     ($arg =~m/Answering_Machine_.*/))
    {
    $ab = "ab";
    } # end if internal_connection
if ($event eq "call_id")
{
   $callID = $arg;
if ($ab && ($ab eq "AB")) {$A[$callID] = "AB"; $ab; }
   $ab = undef; # zuruecksetzen
   } # end if  callID
   } # end if connect


if ($stat eq "call")
{
if ($event eq"external_number")
  {
    $extnum = $arg;
#sig2(70); # ringout
return;   
} # if external number

if ($event eq "external_name")
  {
    $extname = $arg;
   return;
}
if ($event eq "call_id")
{
   $callID = $arg;
$A[$callID] = "<-";
   $B[$callID] = EventZeit();
   $C[$callID] = $extname;
   $D[$callID] = $extnum;

   return;
   } # end if callid
return;
} # end if callloop



if ($stat eq "disconnect")
{


if ($event eq "call_duration")
{
  $callDuration = sprintf("%2d:%02d", ($arg/60),$arg%60);
  return;
} # if call_duration


if ($event eq "call_id")
   {
   $callID = $arg;
# shiften der alten Inhalte
   my $tt;
    readingsBeginUpdate($Callmon);

    for ($i=4;$i>0; $i--)
    {
   foreach $j ('A'..'E')
   {
#   $defs{"Callmon"}{READINGS}{$j.($i-1)}{VAL};

    $tt = ReadingsVal("Callmon",$j.($i-1),"-");
   readingsBulkUpdate($Callmon,$j.$i,$tt);
   } # end j
   } # end i
   $E[$callID] = $callDuration;
  readingsBulkUpdate($Callmon,"A0",$A[$callID]);
  readingsBulkUpdate($Callmon,"B0",$B[$callID]);
  readingsBulkUpdate($Callmon,"C0",$C[$callID]);
  readingsBulkUpdate($Callmon,"D0",$D[$callID]);
  readingsBulkUpdate($Callmon,"E0",$E[$callID]);

  readingsEndUpdate($Callmon, 1);
   $stat = "";

   return;
   } # end if callid


} # end if disconnect

##############################
} #end sub TelefonMonitor
1;


Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

Franz Tenbrock

endlich mal was auf Anheb hinbekommen, :)
gerade mal ne halbe Stunde obwohl ich dafür den Nachmittag reserviert hatte,  8)
dank der guten Anleitung hier.  :D
verstehe zwar noch nicht gas die 99util ...
da steht was von sms, hab schon eine Vorahnung was da geht..

was ist mit email Benachrichtigung, hab d mal an anderer Stelle was gelesen..

macht sich super im Dashboard, mal sehen was meine Frau dazu meint

(http://telefonliste.jpg)
cubi3, Cul 868, ESA2000WZ, EM1000GZ,  FS20, dashboard, 1-Wire, Max Thermos, Max Wandthermo, Max Lan, Fritzbox callmonitor, , nanocul, HM Led16, HM Bewegungsmelder, HM Schalter, RPi, banana, ESP8266, DoorPi

moonsorrox

kann mir jemand sagen warum meine Fritzbox in dem Room Telefon unter "FB_CALLMONITOR  Fritz_Box disconnected" anzeigt.
Ich arbeite mit dem RPI und habe die Fritzbox IP eingetragen Port ist der default 1012
Call_Notify ist active die Anrufliste leer

Meine Code ist praktisch der hier aus dem Thread weiter oben ich habe aber anstatt Callmon überall Fritz_Box drin siehe Code
99_Telefon Modul ist 1:1 übernommen


define Fritz_Box FB_CALLMONITOR 10.0.0.1:1012
attr Fritz_Box local-area-code 05131
attr Fritz_Box reverse-search all
attr Fritz_Box reverse-search-cache 1
attr Fritz_Box reverse-search-cache-file ./log/Fritz_Box-%Y.log Fritz_Box
attr Fritz_Box reverse-search-phonebook-file ./log/Fritz_Box_Telefonbuch.xml
attr Fritz_Box room Telefon
attr Fritz_Box 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 Fritz_Box verbose 0

#  Anrufliste generieren:

# Telefonevents für Anrufliste abfangen:
define Call_Notify notify Fritz_Box:.* { \
  TelefonMonitor ($EVENT);; \
}
attr Call_Notify room Telefon

# Anzeige der Anrufliste generieren:
define Anrufliste readingsGroup Fritz_Box:A0,B0,C0,D0,E0 Fritz_Box:A1,B1,C1,D1,E1 Fritz_Box:A2,B2,C2,D2,E2 Fritz_Box:A3,B3,C3,D3,E3 Fritz_Box:A4,B4,C4,D4,E4
attr Anrufliste mapping {'Fritz_Box.A0' => '1.', 'Fritz_Box.A1' => '2.', 'Fritz_Box.A2' => '3.', 'Fritz_Box.A3' => '4.', 'Fritz_Box.A4' => '5.'}
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:20px"


########################################################################
##
## Log von der Fritzbox
##
#########################################################################

define FileLog_Fritz_Box FileLog ./log/Fritz_Box-%Y-%m.log Fritz_Box
attr FileLog_Fritz_Box group Logfile
attr FileLog_Fritz_Box logtype text
attr FileLog_Fritz_Box room Logs
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

Absolute Beginner

@ moonsorrox:
hast Du den Monitor mit #96*5* (am Telefon) aktiviert?
Raspberry Pi 3 - CUL868 - Jessie - FHEM5.8 - MQTT - Node-RED
HM-TC-IT-WM-W-EU, HM-LC-BI1PBU-FM, HM-Sec-SCo, HM-WDS30-0T2-SM, SOMFY, Echo, ESP, SonOff

Absolute Beginner

@ Invers: Danke - habe alles neu aufgesetzt und erhalte meine alte Fehlermeldung nicht mehr.

Aber eine Anruferliste erhalte ich leider immer noch nicht. Anrufer sehe ich nur, wenn ich im CallMonitor unter 'Readings' nachschaue. Irgendwas funkt dazwischen.
Raspberry Pi 3 - CUL868 - Jessie - FHEM5.8 - MQTT - Node-RED
HM-TC-IT-WM-W-EU, HM-LC-BI1PBU-FM, HM-Sec-SCo, HM-WDS30-0T2-SM, SOMFY, Echo, ESP, SonOff

moonsorrox

Zitat von: Absolute Beginner am 14 Februar 2014, 17:44:50
@ moonsorrox:
hast Du den Monitor mit #96*5* (am Telefon) aktiviert?

Oha sorry, echt das habe ich nirgends gelesen, vielen Dank das war es :D
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

Franz Tenbrock

die beiden Kommandos kann man schön im Fritzbox Telefonbuch ablegen damit man es nicht vergisst

hat jemand Idee für Anrufbeantworter
was ist mit Fax (nur so am Rande)
cubi3, Cul 868, ESA2000WZ, EM1000GZ,  FS20, dashboard, 1-Wire, Max Thermos, Max Wandthermo, Max Lan, Fritzbox callmonitor, , nanocul, HM Led16, HM Bewegungsmelder, HM Schalter, RPi, banana, ESP8266, DoorPi

moonsorrox

#42
Zitat von: Absolute Beginner am 14 Februar 2014, 17:48:52
Aber eine Anruferliste erhalte ich leider immer noch nicht.

ich leider auch nicht...!
Äh ich meinte das ich alles erhalte, aber immer wird bei mir unknown und kein Name angezeigt, obwohl ich die xml Datei von der Fritzbox nach fhem kopiert habe
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

Invers

Zitat von: moonsorrox am 14 Februar 2014, 17:53:07
Oha sorry, echt das habe ich nirgends gelesen, vielen Dank das war es :D

Das gehört ja auch nicht zu fhem, sondern steht in der Anleitung der Fritzbox und an vielen andeen Stellen auch hier.
Telnet muss bei Bedarf ebenfalls angeschaltet werden.
Nächstesmal hast du es wieder vergessen, wnn du es nicht irgenwo hinschreibst, wo du es immer wieder siehst.  ;D
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

moonsorrox

so bis auf das er mir bei Anrufen (einmal nicht) unknown anzeigt habe ich das jetzt auch mit den Icons hinbekommen.
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM