1
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-05-07 22:29:19 +00:00

PRESENCE: harmonize log output

git-svn-id: https://svn.fhem.de/fhem/trunk@6340 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
markusbloch 2014-08-01 21:24:14 +00:00
parent 5818aefa5c
commit 25a506c4b0

View File

@ -63,7 +63,7 @@ PRESENCE_Define($$)
my @a = split("[ \t]+", $def); my @a = split("[ \t]+", $def);
my $dev; my $dev;
my $username = getlogin || getpwuid($<) || "[unknown]"; my $username = getlogin || getpwuid($<) || "[unknown]";
my $name = $hash->{NAME};
if(defined($a[2]) and defined($a[3])) if(defined($a[2]) and defined($a[3]))
{ {
if($a[2] eq "local-bluetooth") if($a[2] eq "local-bluetooth")
@ -71,7 +71,7 @@ PRESENCE_Define($$)
unless($a[3] =~ /^\s*([0-9a-fA-F]{2}:){5}[0-9a-fA-F]{2}\s*$/) unless($a[3] =~ /^\s*([0-9a-fA-F]{2}:){5}[0-9a-fA-F]{2}\s*$/)
{ {
my $msg = "given address is not a bluetooth hardware address"; my $msg = "given address is not a bluetooth hardware address";
Log 2, "PRESENCE: ".$msg; Log 2, "PRESENCE ($name) - ".$msg;
return $msg return $msg
} }
@ -87,14 +87,14 @@ PRESENCE_Define($$)
unless(-X "/usr/bin/ctlmgr_ctl") unless(-X "/usr/bin/ctlmgr_ctl")
{ {
my $msg = "this is not a fritzbox or you running FHEM with the AVM Beta Image. Please use the FHEM FritzBox Image from fhem.de"; my $msg = "this is not a fritzbox or you running FHEM with the AVM Beta Image. Please use the FHEM FritzBox Image from fhem.de";
Log 2, "PRESENCE: ".$msg; Log 2, "PRESENCE ($name) - ".$msg;
return $msg; return $msg;
} }
unless($username eq "root") unless($username eq "root")
{ {
my $msg = "FHEM is not running under root (currently $username) This check can only performed with root access to the FritzBox"; my $msg = "FHEM is not running under root (currently $username) This check can only performed with root access to the FritzBox";
Log 2, "PRESENCE: ".$msg; Log 2, "PRESENCE ($name) - ".$msg;
return $msg; return $msg;
} }
@ -109,7 +109,7 @@ PRESENCE_Define($$)
if(-X "/usr/bin/ctlmgr_ctl" and not $username eq "root") if(-X "/usr/bin/ctlmgr_ctl" and not $username eq "root")
{ {
my $msg = "FHEM is not running under root (currently $username) This check can only performed with root access to the FritzBox"; my $msg = "FHEM is not running under root (currently $username) This check can only performed with root access to the FritzBox";
Log 2, "PRESENCE: ".$msg; Log 2, "PRESENCE ($name) - ".$msg;
return $msg; return $msg;
} }
@ -132,14 +132,14 @@ PRESENCE_Define($$)
if($hash->{helper}{call} =~ /\|/) if($hash->{helper}{call} =~ /\|/)
{ {
my $msg = "The command contains a pipe ( | ) symbol, which is not allowed."; my $msg = "The command contains a pipe ( | ) symbol, which is not allowed.";
Log 2, "PRESENCE: ".$msg; Log 2, "PRESENCE ($name) - ".$msg;
return $msg; return $msg;
} }
if($hash->{MODE} eq "function" and not $hash->{helper}{call} =~ /^\{.+\}$/) if($hash->{MODE} eq "function" and not $hash->{helper}{call} =~ /^\{.+\}$/)
{ {
my $msg = "The function call must be encapsulated by brackets ( {...} )."; my $msg = "The function call must be encapsulated by brackets ( {...} ).";
Log 2, "PRESENCE: ".$msg; Log 2, "PRESENCE ($name) - ".$msg;
return $msg; return $msg;
} }
} }
@ -151,7 +151,7 @@ PRESENCE_Define($$)
unless($a[3] =~ /^\s*([0-9a-fA-F]{2}:){5}[0-9a-fA-F]{2}\s*$/) unless($a[3] =~ /^\s*([0-9a-fA-F]{2}:){5}[0-9a-fA-F]{2}\s*$/)
{ {
my $msg = "given address is not a bluetooth hardware address"; my $msg = "given address is not a bluetooth hardware address";
Log 2, "PRESENCE: ".$msg; Log 2, "PRESENCE ($name) - ".$msg;
return $msg return $msg
} }
@ -170,15 +170,15 @@ PRESENCE_Define($$)
} }
else else
{ {
my $msg = "unknown mode: ".$a[2]." - Please use lan-ping, lan-bluetooth, local-bluetooth, fritzbox, shellscript or function"; my $msg = "unknown mode \"".$a[2]."\" in define statement: Please use lan-ping, lan-bluetooth, local-bluetooth, fritzbox, shellscript or function";
Log 2, $msg; Log 2, "PRESENCE ($name) - ".$msg;
return $msg return $msg
} }
} }
else else
{ {
my $msg = "wrong syntax: define <name> PRESENCE <mode> <device-address> [ <check-interval> [ <present-check-interval> ] ]"; my $msg = "wrong syntax for define statement: define <name> PRESENCE <mode> <device-address> [ <check-interval> [ <present-check-interval> ] ]";
Log 2, $msg; Log 2, "PRESENCE ($name) - $msg";
return $msg; return $msg;
} }
@ -188,14 +188,14 @@ PRESENCE_Define($$)
if(defined($timeout) and not $timeout =~ /^\d+$/) if(defined($timeout) and not $timeout =~ /^\d+$/)
{ {
my $msg = "check-interval must be a number"; my $msg = "check-interval must be a number";
Log 2, "PRESENCE: ".$msg; Log 2, "PRESENCE ($name) - ".$msg;
return $msg; return $msg;
} }
if(defined($timeout) and not $timeout > 0) if(defined($timeout) and not $timeout > 0)
{ {
my $msg = "check-interval must be greater than zero"; my $msg = "check-interval must be greater than zero";
Log 2, "PRESENCE: ".$msg; Log 2, "PRESENCE ($name) -".$msg;
return $msg; return $msg;
} }
@ -203,7 +203,7 @@ PRESENCE_Define($$)
if(defined($presence_timeout) and not $presence_timeout =~ /^\d+$/) if(defined($presence_timeout) and not $presence_timeout =~ /^\d+$/)
{ {
my $msg = "presence-check-interval must be a number"; my $msg = "presence-check-interval must be a number";
Log 2, "PRESENCE: ".$msg; Log 2, "PRESENCE ($name) - ".$msg;
return $msg; return $msg;
} }
@ -211,7 +211,7 @@ PRESENCE_Define($$)
if(defined($presence_timeout) and not $presence_timeout > 0) if(defined($presence_timeout) and not $presence_timeout > 0)
{ {
my $msg = "presence-check-interval must be greater than zero"; my $msg = "presence-check-interval must be greater than zero";
Log 2, "PRESENCE: ".$msg; Log 2, "PRESENCE ($name) - ".$msg;
return $msg; return $msg;
} }
@ -419,6 +419,7 @@ PRESENCE_Read($)
chomp $buf; chomp $buf;
Log3 $name, 5, "PRESENCE ($name) - received data: $buf";
readingsBeginUpdate($hash); readingsBeginUpdate($hash);
@ -450,19 +451,19 @@ PRESENCE_Read($)
} }
elsif($buf =~ /socket_closed;(.+?)$/) elsif($buf =~ /socket_closed;(.+?)$/)
{ {
Log3 $hash->{NAME}, 3, "PRESENCE ($name) - collectord lost connection to room $1 for device ".$hash->{NAME}; Log3 $name, 3, "PRESENCE ($name) - collectord lost connection to room $1";
} }
elsif($buf =~ /socket_reconnected;(.+?)$/) elsif($buf =~ /socket_reconnected;(.+?)$/)
{ {
Log3 $hash->{NAME}, 3, "PRESENCE ($name) - collectord reconnected to room $1 for device ".$hash->{NAME}; Log3 $name , 3, "PRESENCE ($name) - collectord reconnected to room $1";
} }
elsif($buf =~ /error;(.+?)$/) elsif($buf =~ /error;(.+?)$/)
{ {
Log3 $hash->{NAME}, 3, "PRESENCE ($name) - room $1 cannot execute hcitool to check device ".$hash->{NAME}; Log3 $name, 3, "PRESENCE ($name) - room $1 cannot execute hcitool to check device";
} }
elsif($buf =~ /error$/) elsif($buf =~ /error$/)
{ {
Log3 $hash->{NAME}, 3, "PRESENCE ($name) - presenced cannot execute hcitool to check device ".$hash->{NAME}; Log3 $name, 3, "PRESENCE ($name) - presenced cannot execute hcitool to check device ";
} }
readingsEndUpdate($hash, 1); readingsEndUpdate($hash, 1);
@ -578,7 +579,7 @@ PRESENCE_DoLocalPingScan($)
} }
else else
{ {
$return = "$name|$local|error|Could not execute ping command: \"ping -n $count $device\""; $return = "$name|$local|error|Could not execute ping command: \"ping -n $count -4 $device\"";
} }
} }
@ -613,7 +614,7 @@ PRESENCE_ExecuteFritzBoxCMD($$)
while(-e "/var/tmp/fhem-PRESENCE-cmd-lock.tmp" and (stat("/var/tmp/fhem-PRESENCE-cmd-lock.tmp"))[9] > (gettimeofday() - 2)) while(-e "/var/tmp/fhem-PRESENCE-cmd-lock.tmp" and (stat("/var/tmp/fhem-PRESENCE-cmd-lock.tmp"))[9] > (gettimeofday() - 2))
{ {
$wait = int(rand(4))+2; $wait = int(rand(4))+2;
Log3 $name, 5, "PRESENCE_ExecuteFritzBoxCMD: ($name) - ctlmgr_ctl is locked. waiting $wait seconds..."; Log3 $name, 5, "PRESENCE ($name) - ctlmgr_ctl is locked. waiting $wait seconds...";
$wait = 1000000*$wait; $wait = 1000000*$wait;
usleep $wait; usleep $wait;
} }
@ -622,6 +623,7 @@ PRESENCE_ExecuteFritzBoxCMD($$)
qx(touch /var/tmp/fhem-PRESENCE-cmd-lock.tmp); qx(touch /var/tmp/fhem-PRESENCE-cmd-lock.tmp);
Log3 $name, 5, "PRESENCE ($name) - executing ctlmgr_ctl: $cmd";
$status = qx($cmd); $status = qx($cmd);
usleep 200000; usleep 200000;
unlink("/var/tmp/fhem-PRESENCE-cmd-lock.tmp") if(-e "/var/tmp/fhem-PRESENCE-cmd-lock.tmp"); unlink("/var/tmp/fhem-PRESENCE-cmd-lock.tmp") if(-e "/var/tmp/fhem-PRESENCE-cmd-lock.tmp");
@ -647,7 +649,7 @@ PRESENCE_DoLocalFritzBoxScan($)
{ {
$number = $defs{$name}{helper}{cachednr}; $number = $defs{$name}{helper}{cachednr};
Log3 $name, 5, "PRESENCE_DoLocalFritzBoxScan: try checking $name as device $device with cached number $number"; Log3 $name, 5, "PRESENCE ($name) - try checking $name as device $device with cached number $number";
my $cached_name = PRESENCE_ExecuteFritzBoxCMD($name, "/usr/bin/ctlmgr_ctl r landevice settings/landevice$number/name"); my $cached_name = PRESENCE_ExecuteFritzBoxCMD($name, "/usr/bin/ctlmgr_ctl r landevice settings/landevice$number/name");
chomp $cached_name; chomp $cached_name;
@ -793,12 +795,14 @@ PRESENCE_DoLocalShellScriptScan($)
my $ret; my $ret;
my $return; my $return;
Log3 $name, 5, "PRESENCE_DoLocalShellScriptScan: $string"; Log3 $name, 5, "PRESENCE ($name) - execute local shell script: $string";
$ret = qx($call); $ret = qx($call);
chomp $ret; chomp $ret;
Log3 $name, 5, "PRESENCE ($name) - script output: $ret";
if(not defined($ret)) if(not defined($ret))
{ {
$return = "$name|$local|error|scriptcall doesn't return any output"; $return = "$name|$local|error|scriptcall doesn't return any output";
@ -835,12 +839,14 @@ PRESENCE_DoLocalFunctionScan($)
my $ret; my $ret;
my $return; my $return;
Log3 $name, 5, "PRESENCE_DoLocalFunctionScan: $string"; Log3 $name, 5, "PRESENCE ($name) - execute perl function: $string";
$ret = AnalyzeCommandChain(undef, $call); $ret = AnalyzeCommandChain(undef, $call);
chomp $ret; chomp $ret;
Log3 $name, 5, "PRESENCE ($name) - function returned with: $ret";
if(not defined($ret)) if(not defined($ret))
{ {
$return = "$name|$local|error|function call doesn't return any output"; $return = "$name|$local|error|function call doesn't return any output";
@ -880,12 +886,13 @@ PRESENCE_ProcessLocalScan($)
return if($hash->{helper}{DISABLED}); return if($hash->{helper}{DISABLED});
my $local = $a[1]; my $local = $a[1];
my $name = $hash->{NAME};
Log3 $hash->{NAME}, 5, "PRESENCE_ProcessLocalScan: $string"; Log3 $hash->{NAME}, 5, "PRESENCE ($name) - blocking scan result: $string";
if(defined($hash->{helper}{RETRY_COUNT})) if(defined($hash->{helper}{RETRY_COUNT}))
{ {
Log3 $hash->{NAME}, 2, "PRESENCE: ".$hash->{NAME}." returned a valid result after ".$hash->{helper}{RETRY_COUNT}." unsuccesful ".($hash->{helper}{RETRY_COUNT} > 1 ? "retries" : "retry"); Log3 $hash->{NAME}, 2, "PRESENCE ($name) - check returned a valid result after ".$hash->{helper}{RETRY_COUNT}." unsuccesful ".($hash->{helper}{RETRY_COUNT} > 1 ? "retries" : "retry");
delete($hash->{helper}{RETRY_COUNT}); delete($hash->{helper}{RETRY_COUNT});
} }
@ -914,7 +921,7 @@ PRESENCE_ProcessLocalScan($)
{ {
$a[3] =~ s/<<line-break>>/\n/g; $a[3] =~ s/<<line-break>>/\n/g;
Log3 $hash->{NAME}, 2, "PRESENCE: error while processing device ".$hash->{NAME}." - ".$a[3]; Log3 $hash->{NAME}, 2, "PRESENCE ($name) - error while processing check: ".$a[3];
} }
readingsEndUpdate($hash, 1); readingsEndUpdate($hash, 1);
@ -934,7 +941,7 @@ PRESENCE_ProcessAbortedScan($)
{ {
my ($hash) = @_; my ($hash) = @_;
my $name = $hash->{NAME};
delete($hash->{helper}{RUNNING_PID}); delete($hash->{helper}{RUNNING_PID});
RemoveInternalTimer($hash); RemoveInternalTimer($hash);
@ -942,13 +949,13 @@ PRESENCE_ProcessAbortedScan($)
{ {
if($hash->{helper}{RETRY_COUNT} >= 3) if($hash->{helper}{RETRY_COUNT} >= 3)
{ {
Log3 $hash->{NAME}, 2, "PRESENCE: ".$hash->{NAME}." could not be checked after ".$hash->{helper}{RETRY_COUNT}." ".($hash->{helper}{RETRY_COUNT} > 1 ? "retries" : "retry"). " (resuming normal operation)" if($hash->{helper}{RETRY_COUNT} == 3); Log3 $hash->{NAME}, 2, "PRESENCE ($name) - device could not be checked after ".$hash->{helper}{RETRY_COUNT}." ".($hash->{helper}{RETRY_COUNT} > 1 ? "retries" : "retry"). " (resuming normal operation)" if($hash->{helper}{RETRY_COUNT} == 3);
InternalTimer(gettimeofday()+10, "PRESENCE_StartLocalScan", $hash, 0) unless($hash->{helper}{DISABLED}); InternalTimer(gettimeofday()+10, "PRESENCE_StartLocalScan", $hash, 0) unless($hash->{helper}{DISABLED});
$hash->{helper}{RETRY_COUNT}++; $hash->{helper}{RETRY_COUNT}++;
} }
else else
{ {
Log3 $hash->{NAME}, 2, "PRESENCE: ".$hash->{NAME}." could not be checked after ".$hash->{helper}{RETRY_COUNT}." ".($hash->{helper}{RETRY_COUNT} > 1 ? "retries" : "retry")." (retrying in 10 seconds)"; Log3 $hash->{NAME}, 2, "PRESENCE ($name) - device could not be checked after ".$hash->{helper}{RETRY_COUNT}." ".($hash->{helper}{RETRY_COUNT} > 1 ? "retries" : "retry")." (retrying in 10 seconds)";
InternalTimer(gettimeofday()+10, "PRESENCE_StartLocalScan", $hash, 0) unless($hash->{helper}{DISABLED}); InternalTimer(gettimeofday()+10, "PRESENCE_StartLocalScan", $hash, 0) unless($hash->{helper}{DISABLED});
$hash->{helper}{RETRY_COUNT}++; $hash->{helper}{RETRY_COUNT}++;
} }
@ -958,7 +965,7 @@ PRESENCE_ProcessAbortedScan($)
{ {
$hash->{helper}{RETRY_COUNT} = 1; $hash->{helper}{RETRY_COUNT} = 1;
InternalTimer(gettimeofday()+10, "PRESENCE_StartLocalScan", $hash, 0) unless($hash->{helper}{DISABLED}); InternalTimer(gettimeofday()+10, "PRESENCE_StartLocalScan", $hash, 0) unless($hash->{helper}{DISABLED});
Log 2, "PRESENCE: ".$hash->{NAME}." could not be checked (retrying in 10 seconds)" Log 2, "PRESENCE ($name) - device could not be checked (retrying in 10 seconds)"
} }
} }