Event-on-update-reading: Unterschied zwischen den Versionen
(Baustelle entfernt) |
|||
(4 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
{{SEITENTITEL:event-on-update-reading}} <!-- da richtige Schreibweise kleinen Anfangsbuchstaben hat --> | {{SEITENTITEL:event-on-update-reading}} <!-- da richtige Schreibweise kleinen Anfangsbuchstaben hat --> | ||
Mit dem Attribut [[event-on-update-reading]] kann für Readings eines Gerätes festgelegt werden, dass bei jeder Aktualisierung ein Event (und damit in der Regel auch ein Log-Eintrag) erzeugt werden soll. | Mit dem Attribut [[event-on-update-reading]] kann für Readings eines Gerätes festgelegt werden, dass bei jeder Aktualisierung ein Event (und damit in der Regel auch ein Log-Eintrag) erzeugt werden soll. Da dies das Defaultverhalten von FHEM ist, ist event-on-update-reading nur dann sinnvoll einsetzbar, wenn das Defaultverhalten vorher mit dem Attribut [[event-on-change-reading]] eingeschränkt wurde. | ||
Wird ''event-on-update-reading'' für ein einzelnes Reading gesetzt, werden zunächst alle übrigen Readings nicht mehr protokolliert, erzeugen also keine Events mehr. | Wird ''event-on-update-reading'' für ein einzelnes Reading gesetzt, werden zunächst alle übrigen Readings nicht mehr protokolliert, erzeugen also keine Events mehr. | ||
== 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-on-update-reading]] dient dazu, für '''einzelne''' Readings des Gerätes das Standardverhalten wieder herzustellen, sollte es für bestimmte Readings in einer gegeben FHEM Installation sinnvoll sein, doch bei jedem Update auch ohne Werteänderung ein Event zu erhalten. Dies kann z.b. bei der Erzeugung von Graphen notwendig sein. | |||
== Syntax == | == Syntax == | ||
Das ''event-on-update-reading'' Attribut wird in der folgenden Weise spezifiziert: | Das ''event-on-update-reading'' Attribut wird in der folgenden Weise spezifiziert: | ||
:<code><nowiki>attr <device> event-on-update-reading reading1[,reading2...n]</nowiki></code> | :<code><nowiki>attr <device> event-on-update-reading reading1[,reading2...n]</nowiki></code> | ||
Die zu berücksichtigenden Readings sind als durch | Die zu berücksichtigenden Readings sind als durch Kommata getrennte Werte anzugeben, können aber auch über reguläre Ausdrücke zusammengefasst werden. | ||
== Wechselwirkungen == | == Wechselwirkungen == | ||
Dieses Attribut steht in Wechselwirkung mit den Attributen [[event-on-change-reading]] und [[event-min-interval]], bitte | Dieses Attribut steht in Wechselwirkung mit den Attributen [[event-on-change-reading]] und [[event-min-interval]], bitte beim Einsatz berücksichtigen. Ein Einsatz ohne gleichzeitige event-on-change-reading ist idR. nicht sinvoll. | ||
Sind bei einem Device weder ''event-on-update-reading'' noch ''event-on-change-reading'' spezifiziert, werden für alle Readings sowohl bei Aktualisierung (mit dem gleichen Wert) als auch bei der Änderung Events erzeugt. Sobald jedoch eines der beiden Attribute gesetzt ist, müssen alle Readings, die protokolliert werden sollen bei (mindestens) einem der Attribute berücksichtigt sein. | Sind bei einem Device weder ''event-on-update-reading'' noch ''event-on-change-reading'' spezifiziert, werden für alle Readings sowohl bei Aktualisierung (mit dem gleichen Wert) als auch bei der Änderung Events erzeugt, dies ist das Standardverhalten. Sobald jedoch eines der beiden Attribute gesetzt ist, müssen alle Readings, die protokolliert werden sollen bei (mindestens) einem der Attribute berücksichtigt sein. | ||
Ist für ein Reading sowohl ''event-on-change-reading'' als auch ''event-on-update-reading'' spezifiziert, wird bei jeder Aktualisierung des Readings ein Event erzeugt, das ''event-on-change'' wird für dieses Reading also außer Kraft gesetzt bzw. " | Ist für ein Reading sowohl ''event-on-change-reading'' als auch ''event-on-update-reading'' spezifiziert, wird bei jeder Aktualisierung des Readings ein Event erzeugt, das ''event-on-change'' wird für dieses Reading also außer Kraft gesetzt bzw. "überschrieben". Das ist erforderlich in allen Fällen, in denen ein Reading naturgemäß immer den gleichen Wert liefert oder liefern kann bspw. bei Tastern (toggle), oder in den Fällen, bei denen die Aktualisierung mit dem gleichen Readings-Wert geprüft wird wie bspw. ein Watchdog mit "SAME". | ||
== Beispiele == | == Beispiele == | ||
Hat man durch | |||
:<code><nowiki>attr <device> event-on-update-reading | :<code>attr <device> event-on-change-reading .*</code> | ||
erreicht, dass alle Readings des Gerätes nur noch bei Werteänderung eine Event erzeugen (und somit auch nur dann geloggt werden), kann mit | |||
:<code><nowiki>attr <device> event-on-update-reading temperature, humidity</nowiki></code> | |||
dafür gesorgt werden, das für Temperatur und Luftfeuchte dennoch mit jedem Update (intervallweise Aktualisierung auch ohne Werteänderung) ein Event erzeugt und geloggt wird. | |||
== Praktische Anwendung == | |||
Da mit [[event-min-interval]] ebenfalls dafür gesorgt werden kann, dass Readings auch ohne Werteänderungen ein Event erzeugen, muss beim Einsatz geprüft werden, ob event-min-interval nicht sinnvoller als event-on-update-reading ist. Da die Updateintervalle einiger Geräte recht kurz sind, kann der Einsatz event-on-update-reading immer noch sehr viele (ggf. nutzlose) Events für das gegebene Reading erzeugen. | |||
== Siehe auch == | == Siehe auch == |
Aktuelle Version vom 23. Februar 2022, 17:36 Uhr
Mit dem Attribut event-on-update-reading kann für Readings eines Gerätes festgelegt werden, dass bei jeder Aktualisierung ein Event (und damit in der Regel auch ein Log-Eintrag) erzeugt werden soll. Da dies das Defaultverhalten von FHEM ist, ist event-on-update-reading nur dann sinnvoll einsetzbar, wenn das Defaultverhalten vorher mit dem Attribut event-on-change-reading eingeschränkt wurde.
Wird event-on-update-reading für ein einzelnes Reading gesetzt, werden zunächst alle übrigen Readings nicht mehr protokolliert, erzeugen also keine Events mehr.
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-on-update-reading dient dazu, für einzelne Readings des Gerätes das Standardverhalten wieder herzustellen, sollte es für bestimmte Readings in einer gegeben FHEM Installation sinnvoll sein, doch bei jedem Update auch ohne Werteänderung ein Event zu erhalten. Dies kann z.b. bei der Erzeugung von Graphen notwendig sein.
Syntax
Das event-on-update-reading Attribut wird in der folgenden Weise spezifiziert:
attr <device> event-on-update-reading reading1[,reading2...n]
Die zu berücksichtigenden Readings sind als durch Kommata getrennte Werte anzugeben, können aber auch über reguläre Ausdrücke zusammengefasst werden.
Wechselwirkungen
Dieses Attribut steht in Wechselwirkung mit den Attributen event-on-change-reading und event-min-interval, bitte beim Einsatz berücksichtigen. Ein Einsatz ohne gleichzeitige event-on-change-reading ist idR. nicht sinvoll.
Sind bei einem Device weder event-on-update-reading noch event-on-change-reading spezifiziert, werden für alle Readings sowohl bei Aktualisierung (mit dem gleichen Wert) als auch bei der Änderung Events erzeugt, dies ist das Standardverhalten. Sobald jedoch eines der beiden Attribute gesetzt ist, müssen alle Readings, die protokolliert werden sollen bei (mindestens) einem der Attribute berücksichtigt sein.
Ist für ein Reading sowohl event-on-change-reading als auch event-on-update-reading spezifiziert, wird bei jeder Aktualisierung des Readings ein Event erzeugt, das event-on-change wird für dieses Reading also außer Kraft gesetzt bzw. "überschrieben". Das ist erforderlich in allen Fällen, in denen ein Reading naturgemäß immer den gleichen Wert liefert oder liefern kann bspw. bei Tastern (toggle), oder in den Fällen, bei denen die Aktualisierung mit dem gleichen Readings-Wert geprüft wird wie bspw. ein Watchdog mit "SAME".
Beispiele
Hat man durch
attr <device> event-on-change-reading .*
erreicht, dass alle Readings des Gerätes nur noch bei Werteänderung eine Event erzeugen (und somit auch nur dann geloggt werden), kann mit
attr <device> event-on-update-reading temperature, humidity
dafür gesorgt werden, das für Temperatur und Luftfeuchte dennoch mit jedem Update (intervallweise Aktualisierung auch ohne Werteänderung) ein Event erzeugt und geloggt wird.
Praktische Anwendung
Da mit event-min-interval ebenfalls dafür gesorgt werden kann, dass Readings auch ohne Werteänderungen ein Event erzeugen, muss beim Einsatz geprüft werden, ob event-min-interval nicht sinnvoller als event-on-update-reading ist. Da die Updateintervalle einiger Geräte recht kurz sind, kann der Einsatz event-on-update-reading immer noch sehr viele (ggf. nutzlose) Events für das gegebene Reading erzeugen.
Siehe auch
Links
- Benutzungstipps (Best Practice) für das Attribut in diesem Forenthread