Logging bei eventgesteuertem Presence - Schreiben ins FileLog

Begonnen von gloob, 28 August 2017, 08:06:57

Vorheriges Thema - Nächstes Thema

gloob

Hallo,

Aktuell bilde ich meinen Presence Status über das PRESENCE Modul ab. Ich erhalte von meinem Unifi Controller Events wenn sich jemand abmeldet und anmeldet.
Leider kann ich daraus kein wirkliches Log erzeugen, da mir zyklischen Events wie beim LAN-Ping fehlen.

Gibt es eine Möglichkeit alle 10 Minuten den Status vom Presence Device ins Log des Devices zu schreiben?

Gruß
Stefan




Edit:
Bevor die ganz schlauen Antworten kommen. Ich weiß, dass ich es über ein AT machen kann. Nur wie schreibe ich ins Log?

Device:
Internals:
   DEF        event Unifi_APC_AC_LR:iPhone-6:.disconnected Unifi_APC_AC_LR:iPhone-6:.connected
   EVENT_ABSENT Unifi_APC_AC_LR:iPhone-6:.disconnected
   EVENT_PRESENT Unifi_APC_AC_LR:iPhone-6:.connected
   MODE       event
   NAME       Presence_Unifi_Stefan
   NOTIFYDEV  global,Unifi_APC_AC_LR
   NR         368
   NTFY_ORDER 50-Presence_Unifi_Stefan
   STATE      absent
   TYPE       PRESENCE
   READINGS:
     2017-08-24 20:48:29   model           event
     2017-08-28 07:03:09   presence        absent
     2017-08-28 07:03:09   state           absent
   helper:
     CURRENT_STATE absent
Attributes:
   event-min-interval presence:180
   event-on-change-reading presence
   room       WLAN,Presence


Logfile:
Internals:
   DEF        ./log/Presence_%Y-%m.log (Presence_TV:.*|Presence_iMac:.*|Presence_Unifi_Stefan:presence:.*|Presence_Unifi_Tina:presence:.*)
   NAME       FileLog_Presence
   NOTIFYDEV  Presence_TV,Presence_iMac,Presence_Unifi_Tina,Presence_Unifi_Stefan
   NR         378
   NTFY_ORDER 50-FileLog_Presence
   REGEXP     (Presence_TV:.*|Presence_iMac:.*|Presence_Unifi_Stefan:presence:.*|Presence_Unifi_Tina:presence:.*)
   STATE      active
   TYPE       FileLog
   currentlogfile ./log/Presence_2017-08.log
   logfile    ./log/Presence_%Y-%m.log
   READINGS:
     2017-08-28 08:09:40   linesInTheFile  17921
   pos:
Attributes:
   logtype    text
   room       Logs,Presence
Raspberry Pi 3 | miniCUL 433MHz | nanoCUL 868 MHz | nanoCUL 433 MHz | MySensors WLAN Gateway | LaCrosse WLAN Gateway | SignalESP 433 MHz | SignalESP 868 MHz | HM-MOD-UART WLAN Gateway | IR - 360 Grad WLAN Gateway

amenomade

Das
Zitatalle 10 Minuten den Status vom Presence Device ins Log des Devices zu schreiben?
ist aber grundsätzlich inkompatibel mit das:
Zitat
   event-on-change-reading presence

Wenn du einen guten Grund hast, um die Ereignisse so zu unterdrücken , würde https://wiki.fhem.de/wiki/Plot-Abriss_vermeiden auch nicht helfen, da:
ZitataddLog verwendet die Funktion trigger. Für fhem ist das gleichwertig mit dem Eintreffen eines Ereignisses. Es werden also ggf. alle notifies ausgeführt, die für das relevante Gerät abzuarbeiten sind.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

gloob

#2
Ich bekomme leider bei Anwesenheit alle Minute ein Event, daher das "event-on-change-reading" in Kombination mit "event-min-interval".
Bei Abwesenheit gibt es keine Events. Deswegen würde ich dort gerne selber welche erzeugen.

Ich schau mir das AddLog mal an. Möglicherweise lässt sich da mit einem Watchdog ja etwas basteln.
AddLog generiert mir ja scheinbar auch nur "Events" wie als wenn das Reading neu geschrieben werden würde.




Lösung:


sub
createEvent($$)
{
    my ($logdevice, $reading) = @_;
    my $logentry = ReadingsVal($logdevice,$reading,"");
    fhem "trigger $logdevice $reading: $logentry";
}


+

defmod Presence_CreateEvent at +*00:10:00 {createEvent("Presence_Unifi_Stefan","presence")}

Vielen Dank für den Hinweis mit dem AddLog.
Raspberry Pi 3 | miniCUL 433MHz | nanoCUL 868 MHz | nanoCUL 433 MHz | MySensors WLAN Gateway | LaCrosse WLAN Gateway | SignalESP 433 MHz | SignalESP 868 MHz | HM-MOD-UART WLAN Gateway | IR - 360 Grad WLAN Gateway

amenomade

Kann man es nicht dann auch ohne Sub machen? Etwas in der Form:
defmod Presence_CreateEvent at +*00:10:00 trigger Presence_Unifi_Stefan presence [Presence_Unifi_Stefan:presence]
(nicht getestet)
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus