FHEM Forum

FHEM => Automatisierung => Thema gestartet von: fast-eddy am 13 Februar 2021, 15:09:26

Titel: FileLog <attr addLog> gesetzt - Keine Eventeinträge im Logfile mehr?
Beitrag von: fast-eddy am 13 Februar 2021, 15:09:26
Hallo zusammen,

nach längerer Zeit habe ich tatsächlich mal wieder ein Problemchen und könnte die Hilfe des Formums brauchen.
Hatte schon fast vergessen wo mein FHEM Maschinchen steht so stabil läuft das Ding...

Also zu meiner Fragestellung:

Über einen HM-LC-SW4-DR schalte ich die Heizung meiner Gewächshäuser. Um die Schaltzeiten in Bezug zum Temperaturverlauf zu visualisieren schreibe ich die Temperatur vom Sensor (HM-WDS30-T-O) und den Status des Schalters (state: on/off) in ein Logfile. Das funktioniert soweit wie es soll.

Da der HM-LC-SW4-DR keine zyklischen Statuswerte sendet, habe ich, um einen Plotabriss zu verhindern, im FileLog das Attribut addLog mit einem Intervall von 180 Sekunden gesetzt. Auch das funktioniert so wie es soll.

Aber jetzt habe ich festgestellt, dass nur noch die vom addLog gesetzten Werte im Logfile ankommen?! Events werden d.h. Zustandsänderungen des Schalters von ON nach OFF und umgekehrt werden erst nach 180 Sekunden ins Logfile geschrieben.

Soweit ich die commandref verstanden habe sollte attr addLog doch nur zusätzliche Werte schreiben und nicht die Events unterdrücken, oder habe ich da was falsch verstanden?

Bin gespannt auf Eure Antworten.

Grüße,
Ralf

Internals:
   DEF        ./log/BAMBUS-%Y-%m.log BAMBUS:temperature:.*|garten_SWB_04:state:.*
   FD         54
   FUUID      5c59da3d-f33f-d5e6-80e1-c0f0fa32390cb497
   NAME       FileLog_BAMBUS
   NOTIFYDEV  garten_SWB_04,BAMBUS
   NR         452
   NTFY_ORDER 50-FileLog_BAMBUS
   REGEXP     BAMBUS:temperature:.*|garten_SWB_04:state:.*
   STATE      active
   TYPE       FileLog
   addLogMinInterval 180
   currentlogfile ./log/BAMBUS-2021-02.log
   logfile    ./log/BAMBUS-%Y-%m.log
   READINGS:
     2021-02-13 14:59:34   linesInTheFile  1529583
   pos:
Attributes:
   addLog     garten_SWB_04:state:180
   logtype    text
   nrarchive  3
   room       LOGS
Titel: Antw:FileLog <attr addLog> gesetzt - Keine Eventeinträge im Logfile mehr?
Beitrag von: rudolfkoenig am 14 Februar 2021, 10:03:10
addLog sollte keine Auswirkung auf das Schreiben der Events haben, u.a. nicht das Schreiben der Events verzoegern.
Wenn das trotzdem der Fall sein sollte, dann bitte ich um eine Methode, um es nachstellen zu koennen.
Titel: Antw:FileLog <attr addLog> gesetzt - Keine Eventeinträge im Logfile mehr?
Beitrag von: fast-eddy am 15 Februar 2021, 18:45:13
Hallo Rudi,

danke für deine Rückmeldung.

Also wenn ich Dich richtig verstanden habe willst Du von mir wissen, wie du mein Setup zum testen nachstellen kannst?


Ich habe einen Schaltaktor im Einsatz, der keine zyklichen Statusupdates sendet - in meinem Fall den Kanal 4 eines HM-LC-SW4-DR garten_SWB_04

Für diesen Aktor habe ich ein FileLog (FileLog_BAMBUS) angelegt, in welches ich nur den Status des Aktors und die Temperatur eines HM-WDS30-T-O schreibe define FileLog_BAMBUS FileLog ./log/BAMBUS-%Y-%m.log BAMBUS:temperature:.*|garten_SWB_04:state:.*
setuuid FileLog_BAMBUS 5c59da3d-f33f-d5e6-80e1-c0f0fa32390cb497
attr FileLog_BAMBUS addLog garten_SWB_04:state:180
attr FileLog_BAMBUS logtype text
attr FileLog_BAMBUS nrarchive 3
attr FileLog_BAMBUS room LOGS


Um zyklische Einträge des Aktors alle 180 Sekunden zu ezwingen habe ich das Attribut addLog gesetzt: attr FileLog_BAMBUS addLog garten_SWB_04:state:180

Der Schaltaktor wird über ein THRESHOLD in Abhängigkeit von der Temperatur des HM-Sensors geschaltet. Zum Testen genügt aber auch
manuelles schalten.

TEST VARIANTE 1:
Aufbau wie oben beschrieben OHNE das Attribut addLog :


TEST VARIANTE 2:
Aufbau wie oben beschrieben MIT Attribut addLog:


LONG STORY SHORT ;-)

ich hoffe das hilft Dir weiter ansonsten bitte nochmal melden.

Grüße,
Ralf




Titel: Antw:FileLog <attr addLog> gesetzt - Keine Eventeinträge im Logfile mehr?
Beitrag von: rudolfkoenig am 15 Februar 2021, 20:11:47
Da die Beschreibung fuer Variante 1 und Variante 2 nicht zum Nachstellen reicht (die Events fehlen), habe ich "long story short" improvisiert:
fhem> define f FileLog ./log/test.log d1
fhem> define d1 dummy
fhem> setreading d1 hello a
fhem> setreading d1 hello b
fhem> attr f addLog d1:hello:10
fhem> setreading d1 hello c
fhem> setreading d1 hello d
fhem> setreading d1 hello e


Im log/test.log steht
Zitat
2021-02-15_20:07:50 d1 hello: a
2021-02-15_20:07:53 d1 hello: b
2021-02-15_20:08:08 d1 hello: b
2021-02-15_20:08:18 d1 hello: b
2021-02-15_20:08:19 d1 hello: c
2021-02-15_20:08:20 d1 hello: d
2021-02-15_20:08:22 d1 hello: e
2021-02-15_20:08:38 d1 hello: e
2021-02-15_20:08:57 d1 hello: e
2021-02-15_20:09:07 d1 hello: e
2021-02-15_20:09:17 d1 hello: e
2021-02-15_20:09:27 d1 hello: e
Wie man es an dem Zeitstempel sieht, wurden die abgesetzten Events sofort geschrieben.
Ich habe parallel ein "tail -f test.log" am laufen gehabt, und konnte es auch direkt sehen.

Das Regexp in deinem Fall (BAMBUS:temperature:.*|garten_SWB_04:state:.*) liefert nicht das, was man auf dem ersten Blick erwartet, da FileLog (und notify, etc) die Regexps automatisch mit ^ und $ ergaenzt. Ich kann aber (noch?) nicht vorstellen, dass das mit dem hier geschilderten Problem zusammenhaengt.
Titel: Antw:FileLog <attr addLog> gesetzt - Keine Eventeinträge im Logfile mehr?
Beitrag von: fast-eddy am 22 Februar 2021, 09:00:15
... nochjemand eine Idee woran das Verhalten entweder "Echtzeiteintrag" oder zyklischer Eintrag im LogFile liegen kann?
Ich kann es jedenfalls direkt reproduzieren: Mit addLog -> nur zyklisch / ohne addLog nur eventgetriggert bzw. "echtzeit"

@Rudi:
Ich stehe auf dem Schlauch bzw. verstehe nicht was Du hiermit meinst und wie ich das ggf. zum Eingrenzen des Fehlerbilds nutzen kann

ZitatDas Regexp in deinem Fall (BAMBUS:temperature:.*|garten_SWB_04:state:.*) liefert nicht das, was man auf dem ersten Blick erwartet, da FileLog (und notify, etc) die Regexps automatisch mit ^ und $ ergaenzt.
Titel: Antw:FileLog <attr addLog> gesetzt - Keine Eventeinträge im Logfile mehr?
Beitrag von: rudolfkoenig am 22 Februar 2021, 09:16:57
Zitatverstehe nicht was Du hiermit meinst
Ohne Klammer "zerfaellt" dein Regexp in zwei Teile: "^BAMBUS:temperature:.* ODER garten_SWB_04:state:.*$" . Das mag zwar kein Problem verursachen, ist aber vmtl. nicht das, was Du meinst, bestellt zu haben.

Zitatund wie ich das ggf. zum Eingrenzen des Fehlerbilds nutzen kann
Das kann ich Dir nicht sagen.
Ich behaupte ja auch, dass das Problem nicht existiert, und ich kann es nicht reproduzieren. Um meine Meinung zu aendern (und das Problem zu fixen) brauche ich was zum Nachstellen.