Anwesenheitserkennung müllt Logfile zu

Begonnen von maddinthebrain, 28 September 2018, 22:18:32

Vorheriges Thema - Nächstes Thema

maddinthebrain

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
Viele Grüße
Martin

Futro mit Proxmox und Debian: FHEM, Signalduino 433MHz & 868MHz, MAX!, WeeWX, FHEM2FHEM,
Raspi 4 mit ConBee mit deCONZ und Phoscon für ZigBee Aktoren und Sensoren

OdfFhem

Hallo,

einfach vor die störende Zeile, die mit "Log 1," beginnt ein "#" setzen.

Aus Log 1, ... wird also #Log 1, ...

Viele Grüße

Benni

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#

maddinthebrain

Danke, diese Zeilen habe ich übersehen.  :P
Viele Grüße
Martin

Futro mit Proxmox und Debian: FHEM, Signalduino 433MHz & 868MHz, MAX!, WeeWX, FHEM2FHEM,
Raspi 4 mit ConBee mit deCONZ und Phoscon für ZigBee Aktoren und Sensoren