Warum schreibt das Logfile mache Events nicht mit?

Begonnen von WarBird, 18 April 2023, 17:40:27

Vorheriges Thema - Nächstes Thema

WarBird

 Hallo zusammen,
Also zuerst der Hintergrund, warum ich es so eingestellt habe.
Um bei meinem Plot keine Balken abrisse zu haben,
wenn zum Beispiel ein Fenster Kontakt längere Zeit zu bleibt.

Ich habe an meinem Homatic Fenster Kontakt zwei Dinge eingestellt zum einen,

event-on-change-reading .*Um nur bei einer Wertänderung einen Eintrag im Lok zu erhalten

event-min-interval .*:3600Und das, um einmal jede Stunde einen Eintrag zu erhalten

Ich bekomme Lock File Einträge, wenn sich das Fenster öffnet oder schließt, was dann auch im Plot sichtbar ist. Aber er schreibt keine Lokeinträge zu jeder Stunde.

Du darfst diesen Dateianhang nicht ansehen.
Hier markiert zum einen Die Einstellungen Event—min und Event—on—change
Und den Status mit der Uhrzeit? 17:02 Uhr

Du darfst diesen Dateianhang nicht ansehen.
Hier das geöffnete Lock File mit dem letzten Eintrag 16:02 Uhr

Du darfst diesen Dateianhang nicht ansehen.
Und hier die Plot Einstellungen einmal markiert der Eintrag aus dem Lock File 16:02 Uhr und oben der Plotabriss obwohl Der letzte Zeitstempel im Status von dem Fenster Kontakt 17:02 Uhr ist.


Ich finde leider keinen Fehler und verstehe auch nicht, warum diese Funktion nicht mit schreibt. Hat irgendeiner eine Idee? Danke im Voraus.
Gruß Tobias

 

JudgeDredd

Hallo,

also durch Dein
event-on-change-reading .*erzwingst Du ja, das gleichbleibende Readings keinen Event auslösen.

event-min-interval .*:3600schreibt aber den gleichen Wert in das Reading.

Um die Plotabrisse zu vermeiden kannst Du aber im Logdevice das Attribut "addLog" verwenden.

Gruß,
JudgeDredd
Router: Eigenbau (pfSense)
FHEM: Proxmox (DELL R720) | Debian 12 (VM)

RalfRog

Ich hadere gelegentlich auch damit. Insbesondere, da zu event-min-interval dieser Text in der Attribut Erklärung steht:

event-min-interval
Dieses Attribut enthält eine durch Kommata getrennte Liste von "readings:minInterval" Paare. readings kann ein regexp sein.
Ein Event wird nur dann generiert, falls seit dem letzten Auftreten des gleichen Events mindestens minInterval Sekunden vergangen sind.
Falls event-on-change-reading auch spezifiziert ist, dann werden sie mit ODER kombiniert, d.h. wenn einer der beiden Bedingungen wahr ist.

Gruß
FHEM auf Proxmox VM Bookworm (Futro S740) - nanoCUL, HM-MOD-RPI-PCB und MAX!Cube über LAN
HM- Fensterkontakte, UP-Schalter, Bewegungsmelder und ein Rauchmelder sowie Shelly 3EM, 1PM, PlugS und IT Schaltsteckdosen

Benni

Das bedeutet aber trotzdem, dass ein Event auftreten muss, entweder einer mit geändertem Wert oder nach min 3600 Sekunden einer mit dem bereits vorhandenen Wert.

Wenn kein Event auftritt, passiert auch nix!

Gruß Benni

betateilchen

Diese event-on-dingsbums Attribute halte ich nach wie vor für genau so überflüssig wie Fußpilz oder goldene Fußkettchen...

Die stiften seit Jahren mehr Verwirrung und Probleme als dass sie wirklich was nützen.

Zeit für Popcorn.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

WarBird

Zitat von: betateilchen am 18 April 2023, 19:45:17Diese event-on-dingsbums Attribute halte ich nach wie vor für genau so überflüssig wie Fußpilz oder goldene Fußkettchen...

Die stiften seit Jahren mehr Verwirrung und Probleme als dass sie wirklich was nützen.

Zeit für Popcorn.

Ok ich stimme dir zu das es ziemlich verwirrend ist...
Und ich will auch nicht unbedingt an dieser Lösung festhalten, aber wie würde den deine Lösung für meine Aufgabe aussehen?
Bin gespannt auf deinen Lösungsansatz.

Gruß Tobias

betateilchen

Du verwendest die Attribute einfach für einen Zweck, für den sie nicht vorgesehen sind.
Deshalb kannst Du sie bedenkenlos entfernen.

Die Lösung für Deine Aufgabe wurde hier im Thread bereits erwähnt:

Zitat von: JudgeDredd am 18 April 2023, 18:34:03Um die Plotabrisse zu vermeiden kannst Du aber im Logdevice das Attribut "addLog" verwenden.

Achtung: das Attribut gibt es nur bei FileLog. Solltest Du für das Logging die Variante DbLog verwenden, gibt es für die gleiche Aufgabe einen set Befehl, der die gleiche Funktion hat.

Beides ist in der commandref bei den entsprechenden Log-Modulen beschrieben.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!