FileLog <attr addLog> gesetzt - Keine Eventeinträge im Logfile mehr?

Begonnen von fast-eddy, 13 Februar 2021, 15:09:26

Vorheriges Thema - Nächstes Thema

fast-eddy

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
Raspberry Pi | HMUART | HMLAN | JeeLink | HUE | Z-WAVE.ME | HM-LC-Bl1PBU-FM | HM-PB-2-WM55 HM-CC-RT-DN | HM-LC-SW4-SM | HM-WDS10-TH-O HM-WDS30-T-O | HM-LC-SW4-DR | HM-Sen-MDIR-O-2 | HM-SEC-SCo |  Technoline TX 29 DT-HT|

rudolfkoenig

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.

fast-eddy

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 :


  • Statuswerte des Aktors werden direkt ins FileLog geschrieben, wenn der Aktor über das Threshold oder manuell geschaltet wird
  • Neue Einträge werden erst bei erneutem Schalten geschrieben
  • Ohne Schaltaktion werden KEINE Einträge ins FileLog geschrieben

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


  • Statuswerte des Aktors werden alle 180 Sekunden korrekt ins FileLog geschrieben, auch wenn keine Schaltaktionen erfolgen
  • Wird eine Schaltaktion ausgelöst egal ob manuell oder über Threshold erfolgt KEIN Eintrag im FileLog obwohl im Event Monitor das Event angezeigt wird
  • Nach Ablauf der 180 Sekunden wird durch addLog automatisch ein neuer Eintrag im FileLog erzeugt - dann mit dem korrekten Wert der zuvor augeführten Aktion

LONG STORY SHORT ;-)

  • Schaltaktor (ohne zyklische Events) mit dazugehörigem FilLog anlegen
  • Schalter ohne Attribut addLog mehrmals manuell EIN/AUS schalten und Einträge im FileLog prüfen
  • Jetzt Schalter mit Attribut addLog mehrmals manuell EIN/AUS schalten, Einträge im FileLog prüfen und mit den tatsächlichen Schaltzeiten vergleichen

ich hoffe das hilft Dir weiter ansonsten bitte nochmal melden.

Grüße,
Ralf




Raspberry Pi | HMUART | HMLAN | JeeLink | HUE | Z-WAVE.ME | HM-LC-Bl1PBU-FM | HM-PB-2-WM55 HM-CC-RT-DN | HM-LC-SW4-SM | HM-WDS10-TH-O HM-WDS30-T-O | HM-LC-SW4-DR | HM-Sen-MDIR-O-2 | HM-SEC-SCo |  Technoline TX 29 DT-HT|

rudolfkoenig

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.

fast-eddy

... 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.
Raspberry Pi | HMUART | HMLAN | JeeLink | HUE | Z-WAVE.ME | HM-LC-Bl1PBU-FM | HM-PB-2-WM55 HM-CC-RT-DN | HM-LC-SW4-SM | HM-WDS10-TH-O HM-WDS30-T-O | HM-LC-SW4-DR | HM-Sen-MDIR-O-2 | HM-SEC-SCo |  Technoline TX 29 DT-HT|

rudolfkoenig

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.