event-aggregator: Max Werte je Stunde / Tag

Begonnen von Guybrush, 08 Januar 2024, 01:30:58

Vorheriges Thema - Nächstes Thema

Guybrush

Ich hab ein Verständnisproblem bei dem Attribut event-aggregator. Über die Forensuche hab ich ein Thema gefunden, was auch darauf eingeht (https://forum.fhem.de/index.php/topic,129920.msg1241897.html#msg1241897). Allerdings erschließt sich mir das nicht. Hinzu kommt noch, dass das Wiki (https://wiki.fhem.de/wiki/Event-aggregator) dazu noch mehr Verwirrung bringt.

Und zwar geht es um folgendes:

Ich möchte bei einem Device die Max Values im Reading state innerhalb eines bestimmten Zeitraums erfassen. Das habe ich versucht über das Attribut event-aggregator umzusetzen. Also hab ich dafür mal ein Test Device angelegt wie folgt:

defmod test dummy
attr test event-aggregator r1:10:none:max:10,r2:60:none:max:60
attr test event-on-change-reading .*
attr test userReadings r1 {ReadingsVal("test", "state", 0)},r2 {ReadingsVal("test", "state", 0)}

Meine Erwartung war nun, dass jedes mal wenn in das Reading "state" in den Readings "r1" und "r2" ein neuer Wert geschrieben wird - im Reading "r1" der höchste Wert der letzten 10 sek bzw. im Reading "r2" der höchste der letzten 60 sek geschrieben würde. Aber dort bleibt der per ReadingsVal() ausgelesene Wert des Readings "state" stehen. Es spielt dabei keine Rolle, ob der neu gesetzte Wert größer oder kleiner ist.

Kann ich über event-aggregator nur steuern, was für ein Wert dann ins Log geschrieben wird ohne dass ich den im Fhem Web sehen kann? Die Funktionsweise erschließt sich mir leider nicht so recht. Ich hatte jedenfalls die Erwartung, dass die Werte der im event-aggregator angegebenen Readings in dem Beispiel für 10s bzw. 60s intern vorgehalten werden und davon dann der jeweils höchste Wert ins entsprechende Reading geschrieben wird, wenn das Reading mit einem neuen Wert aktualisiert wird bevor die Werte nach Ablauf der Zeit resettet werden?

Vielleicht kann mich ja jemand aufklären  ::)