FHEM Forum

FHEM - Hausautomations-Systeme => Unterstützende Dienste => Thema gestartet von: gloob am 28 August 2017, 08:06:57

Titel: Logging bei eventgesteuertem Presence - Schreiben ins FileLog
Beitrag von: gloob am 28 August 2017, 08:06:57
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
Titel: Antw:Logging bei eventgesteuertem Presence - Schreiben ins FileLog
Beitrag von: amenomade am 28 August 2017, 08:24:16
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.
Titel: Antw:Logging bei eventgesteuertem Presence - Schreiben ins FileLog
Beitrag von: gloob am 28 August 2017, 08:28:15
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.
Titel: Antw:Logging bei eventgesteuertem Presence - Schreiben ins FileLog
Beitrag von: amenomade am 28 August 2017, 12:46:23
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)