Event-min-interval: Unterschied zwischen den Versionen
K (Beschreibung geändert, Forum #125618) |
|||
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt) | |||
Zeile 2: | Zeile 2: | ||
Mit dem Attribut [[event-min-interval]] kann für Readings eines Gerätes festgelegt werden, dass nach einer bestimmten Zeit ein Event | Mit dem Attribut [[event-min-interval]] kann für Readings eines Gerätes festgelegt werden, dass erst nach Ablauf einer bestimmten Zeit ein Event ausgelöst wird. | ||
In der Regel ist das Attribut sinnvoll vor allem in Kombination mit dem Attribut [[event-on-change-reading]] einsetzbar. | In der Regel ist das Attribut sinnvoll vor allem in Kombination mit dem Attribut [[event-on-change-reading]] einsetzbar, damit nach Ablauf der Mindestzeit ein Event auch ohne Wertänderung nicht mehr unterdrückt wird. | ||
== Einführung == | == Einführung == | ||
FHEM erzeugt für jedes gemeldete Reading ein Event, egal, ob das Reading sich geändert hat, oder nur intervallweise per Update aktualisiert wurde. Dieses Verhalten kann Nachteile haben und daher mit event-on-change-reading für ein Gerät abgestellt werden. | FHEM erzeugt für jedes gemeldete Reading ein Event, egal, ob das Reading sich geändert hat, oder nur intervallweise per Update aktualisiert wurde. Dieses Verhalten kann Nachteile haben und daher mit event-on-change-reading für ein Gerät abgestellt werden. | ||
event-min-interval dient nun vor allem dazu, für Readings des Gerätes in einem festgelegtem (längerem) Intervall dennoch Events für Readings (und damit Logeinträge) | event-min-interval dient nun vor allem dazu, für Readings des Gerätes in einem festgelegtem (längerem) Intervall dennoch Events für Readings (und damit Logeinträge) zuzulassen. Dies kann z.b. bei der Erzeugung von Graphen notwendig sein. | ||
Zeile 45: | Zeile 45: | ||
|Durch die Regex ".*" gilt für alle Readings: | |Durch die Regex ".*" gilt für alle Readings: | ||
Ein Event wird '''sofort''' ausgelöst wenn sich der Reading Wert ändert,<br> | Ein Event wird '''sofort''' ausgelöst wenn sich der Reading Wert ändert,<br> | ||
ODER wenn mindestens 3600 Sekunden (1h) seit dem letzten Event vergangen ist<br> | ODER wenn zum Zeitpunkt der Aktualisierung mindestens 3600 Sekunden (1h) seit dem letzten Event vergangen ist.<br> | ||
|- | |- | ||
Zeile 51: | Zeile 51: | ||
|nicht gesetzt | |nicht gesetzt | ||
|.*:3600 | |.*:3600 | ||
|Ein Event wird ausgelöst, wenn der selbe Wert, der bereits im Reading steht, nochmal geschrieben wird (Update) UND mindestens min-interval Sekunden seit dem letzten Event vergangen sind | |Ein Event wird ausgelöst, wenn der selbe Wert, der bereits im Reading steht, nochmal geschrieben wird (Update) UND mindestens min-interval Sekunden seit dem letzten Event vergangen sind. | ||
|- | |- | ||
|nicht gesetzt | |nicht gesetzt | ||
Zeile 58: | Zeile 58: | ||
|Durch die Regex ".*" gilt für alle Readings: | |Durch die Regex ".*" gilt für alle Readings: | ||
Ein Event wird sofort ausgelöst wenn mindestens 3600 Sekunden (1h) seit dem letzten Event vergangen ist | Ein Event wird sofort ausgelöst wenn mindestens 3600 Sekunden (1h) seit dem letzten Event vergangen ist | ||
EGAL ob das Reading | EGAL ob das aktualisierte Reading geändert wird oder gleich bleibt. | ||
Aktuelle Version vom 21. Januar 2022, 09:46 Uhr
Mit dem Attribut event-min-interval kann für Readings eines Gerätes festgelegt werden, dass erst nach Ablauf einer bestimmten Zeit ein Event ausgelöst wird. In der Regel ist das Attribut sinnvoll vor allem in Kombination mit dem Attribut event-on-change-reading einsetzbar, damit nach Ablauf der Mindestzeit ein Event auch ohne Wertänderung nicht mehr unterdrückt wird.
Einführung
FHEM erzeugt für jedes gemeldete Reading ein Event, egal, ob das Reading sich geändert hat, oder nur intervallweise per Update aktualisiert wurde. Dieses Verhalten kann Nachteile haben und daher mit event-on-change-reading für ein Gerät abgestellt werden. event-min-interval dient nun vor allem dazu, für Readings des Gerätes in einem festgelegtem (längerem) Intervall dennoch Events für Readings (und damit Logeinträge) zuzulassen. Dies kann z.b. bei der Erzeugung von Graphen notwendig sein.
Syntax
Das event-min-interval Attribut wird in der folgenden Weise spezifiziert:
attr <device> event-min-interval reading1:minInterval1[,reading2:minInterval2,...]
Die zu berücksichtigenden Readings sind als durch Komma getrennte Werte anzugeben, können aber auch über reguläre Ausdrücke zusammengefasst werden. Das minIntervall wird in Sekunden angegeben.
Wechselwirkungen
Dieses Attribut steht in Wechselwirkung mit den Attributen event-on-change-reading und event-on-update-reading, bitte beim Einsatz berücksichtigen.
Angenommen als minIntervall werden 3600 Sekunden eingesetzt und bei event-on-update-reading event-on-change-reading würde durch den Regulären Ausdruck .* alle Readings eingeschlossen, so ergeben sich folgende Wechselwierkungen:
event-on-update-reading | event-on-change-reading | event-min-interval | Wirkung |
nicht gesetzt | .*
|
.*:3600 | Durch die Regex ".*" gilt für alle Readings:
Ein Event wird sofort ausgelöst wenn sich der Reading Wert ändert, |
.* | nicht gesetzt | .*:3600 | Ein Event wird ausgelöst, wenn der selbe Wert, der bereits im Reading steht, nochmal geschrieben wird (Update) UND mindestens min-interval Sekunden seit dem letzten Event vergangen sind. |
nicht gesetzt | nicht gesetzt | .*:3600 | Durch die Regex ".*" gilt für alle Readings:
Ein Event wird sofort ausgelöst wenn mindestens 3600 Sekunden (1h) seit dem letzten Event vergangen ist EGAL ob das aktualisierte Reading geändert wird oder gleich bleibt.
|
Beispiele
Hat man durch
attr <device><nowiki>event-on-change-reading .*
erreicht, dass alle Readings des Gerätes nur noch bei Werteänderung eine Event erzeugen (und somit auch nur bei Werteänderung geloggt werden), kann mit
attr <device> event-min-interval .*:3600
dafür gesorgt werden, dass spätestens jede Stunde dennoch für alle Readings eine Aktualisierung als Event durchgelassen und geloggt wird, egal ob der Wert sich geändert hat oder nicht.