Hallo zusammen,
Ich habe die Anwesenheitserkennung wie sie im Wiki beschrieben ist, bei mir eingerichtet. Geht alles wunderbar. Nur musste ich feststellen, dass die Funktion in 99-myutil meine Logdatei zumüllt. Alle fünf Minuten ein Eintrag.
Die Funktion in 99_myUtils:
sub checkFritzMACpresent($$) {
# Benötigt: Name der zu testenden Fritzbox ($Device),
# zu suchende MAC ($MAC),
# Rückgabe: 1 = Gerät gefunden
# 0 = Gerät nicht gefunden
my ($Device, $MAC) = @_;
my $Status = 0;
$MAC =~ tr/:/_/;
$MAC = "mac_".uc($MAC);
my $StatusFritz = ReadingsVal($Device, $MAC, "weg");
if ($StatusFritz eq "weg") {
Log 1, ("checkFritzMACpresent ($Device): $MAC nicht gefunden, abwesend.");
$Status = 0;
} elsif ($StatusFritz eq "inactive") {
Log 1, ("checkFritzMACpresent ($Device): $MAC ist >inactive<, also abwesend.");
$Status = 0;
} else {
# Reading existiert, Rückgabewert ist nicht "inactive", also ist das Gerät per WLAN angemeldet.
Log 1, ("checkFritzMACpresent ($Device): $MAC gefunden, Gerät heißt >$StatusFritz<.");
$Status = 1;
}
return $Status
}
In der Logdatei tauchen alle fünf Minuten solche Einträge auf:
2018.09.28 21:54:36 1: checkFritzMACpresent (FritzBoxYYYY): mac_XX_XX_XX_XX_XX_XX gefunden, Gerät heißt >Galaxy-SXY (WLAN, 29 / 26 Mbit/s, -84)<.
Das function device sieht so aus: Internals:
DEF function {checkFritzMACpresent("FritzBoxYYYY","XX:XX:XX:XX:XX:XX")} 300 300
INTERVAL_NORMAL 300
INTERVAL_PRESENT 300
MODE function
NAME Martins_Handy_da
NOTIFYDEV global
NR 149
NTFY_ORDER 50-Martins_Handy_da
STATE present
TYPE PRESENCE
Helper:
DBLOG:
presence:
logmysql:
TIME 1538163870.25547
VALUE present
state:
logmysql:
TIME 1538163870.25547
VALUE present
READINGS:
2018-09-28 08:38:01 model function
2018-09-28 22:09:36 presence present
2018-09-28 22:09:36 state present
helper:
CURRENT_STATE present
call {checkFritzMACpresent("FritzBoxYYYY","XX:XX:XX:XX:XX:XX")}
Attributes:
DbLogExclude .*
devStateIcon present:status_available absent:status_away_2 .*:status_away_2
room Anwesenheit
verbose 0
Ich will keine Logeinträge, das soll im Log nicht auftauchen. Wie krieg ich das hin?
Vielen Dank
Martin
Hallo,
einfach vor die störende Zeile, die mit "Log 1," beginnt ein "#" setzen.
Aus Log 1, ...
wird also #Log 1, ...
Viele Grüße
Zitat von: OdfFhem am 29 September 2018, 02:04:03
einfach vor die störende Zeile, die mit "Log 1," beginnt ein "#" setzen.
Das wäre die radikale Methode. Besser ist es, die ersten beiden "Log 1" - Zeilen so belassen wie sie sind, da sie ggf. auf Fehler hinweisen.
Die 3. würde ich allerdings wie folgt abändern, damit sie nur noch bei einem (globalen) verbose-Level von 4 oder 5 ausgegeben wird, welchen man normalerweise auch nur zum Debugging aktiviert.
Log 4, ("checkFritzMACpresent ($Device): $MAC gefunden, Gerät heißt >$StatusFritz<.");
Ich habe mir eine Anpassung des entsprechenden Wiki-Artikels erlaubt.
gb#
Danke, diese Zeilen habe ich übersehen. :P