Event-min-interval: Unterschied zwischen den Versionen

Aus FHEMWiki
Zeile 35: Zeile 35:
Beispiel:<br>
Beispiel:<br>
Ein Raspberry Pi GPIO besitzt ein Attribut poll_interval, dieses wird z.B. auf 10 Minuten gesetzt.<br>
Ein Raspberry Pi GPIO besitzt ein Attribut poll_interval, dieses wird z.B. auf 10 Minuten gesetzt.<br>
Dann werden die Readings alle 10 Minuten aktualisiert. Bei konstantem Wert wird nach 1 Stunde und maximal 10 Minuten ein Event gesendet.
Dann werden die Readings alle 10 Minuten aktualisiert. Bei konstantem Wert wird nach 1 Stunde und maximal 10 Minuten ein Event gesendet.<br>
<br>
Bei event-on-change-reading kann zusätzlich noch ein Threshold gesetzt werden um die Anzahl der Events zu redizieren. Z.B. bei Temperaturwerten sinnvoll:<br>
event-on-change-reading Temp.*:0.5 ,.*<br>
<br>
Alle Readings, die mit Temp beginnen erzeugen nur ein event wenn die Änderung >0.5 Grad ist. Alle anderen Readings erzeugen bei jeder Änderung ein Event.<br>
|-
|-
|.*
|.*

Version vom 7. Dezember 2017, 11:34 Uhr

Syntax

Mit dem Attribut event-min-interval kann für Readings eines Gerätes festgelegt werden, dass nach einer bestimmten Zeit ein Event, auch ohne Wertänderung ausgelöst wird.

Das event-min-interval Attribut wird in der folgenden Weise spezifiziert:

attr <device> event-min-interval reading1:minInterval1[,reading2:minInterval2,...]
  • Reading Name oder reguläre Ausdrücke
  • minIntervall in Sekunden.


Wechselwirkungen

Dieses Attribut steht in Wechselwirkung mit den Attributen event-on-change-reading und event-on-update-reading, bitte also unbedingt auch deren Beschreibung berücksichtigen!

Wechselwirkiungen
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,
ODER wenn mindestens 3600 Sekunden (1h) seit dem letzten Event vergangen ist
UND das Reading aktuaisiert wird.

Wird ein Reading nicht aktualisiert (mit dem gleichen Wert) gibt es nach Ablauf der Zeit auch kein Event.

Beispiel:
Ein Raspberry Pi GPIO besitzt ein Attribut poll_interval, dieses wird z.B. auf 10 Minuten gesetzt.
Dann werden die Readings alle 10 Minuten aktualisiert. Bei konstantem Wert wird nach 1 Stunde und maximal 10 Minuten ein Event gesendet.

Bei event-on-change-reading kann zusätzlich noch ein Threshold gesetzt werden um die Anzahl der Events zu redizieren. Z.B. bei Temperaturwerten sinnvoll:
event-on-change-reading Temp.*:0.5 ,.*

Alle Readings, die mit Temp beginnen erzeugen nur ein event wenn die Änderung >0.5 Grad ist. Alle anderen Readings erzeugen bei jeder Änderung ein Event.

.* nicht gesetzt .*:3600 TODO
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 Reading aktualisiert wird oder gleich bleibt.


Beispiel: Temperatursensor sendet Temperatur-Werte, es wird ein Event erzeugt wenn mindestens 3600 Sekunden (1h) seit dem letzten Event vergangen ist EGAL ob die Temperatur sich verändert hat oder nicht.

Beispiele

Um alle Readings eines Gerätes bei Aktualisierungen zu protokollieren, sollte das Attribut folgendermaßen gesetzt werden:

attr <device> event-min-interval .*:3600

Siehe auch


Links