Wechselwirkung event-min-interval & event-on-change-reading

Begonnen von FhemPiUser, 13 Dezember 2022, 19:54:42

Vorheriges Thema - Nächstes Thema

FhemPiUser

Ich habe eine Frage zu den Wechselwirkungen von event-min-interval & event-on-change-reading https://wiki.fhem.de/wiki/Event-min-interval:

Ich habe ein device mit vielen Readings und habe folgende Anforderung:
a) drei Readings (current_temperature,outside_temperature,state) nur alle 300s ein Event generieren - nicht häufiger
b) alle anderen Readings sofort bei Änderung ein Event generieren.

Ich versuche also den dritten Fall in der Tabelle der Wechselwirkungen auf https://wiki.fhem.de/wiki/Event-min-interval nur für die drei Readings zu erfüllen. Für alle anderen Readings soll einfach event-on-change-reading gelten.

Ich habe dafür folgende Attribute definiert, aber leider kommen so für die 3 Readings gar keine Events mehr.


attr dev event-min-interval current_temperature:300,outside_temperature:300,state:300
attr dev event-on-change-reading (?!(current_temperature|outside_temperature|state)).*


Hat jemand eine Idee?
"event-on-change-reading .*" führt dazu, dass die drei Readings immer sofort ein Reading erzeugen, was auch nicht meine Anforderung erfüllt.

OdfFhem

event-on-change-reading sorgt dafür, dass für die dort ausgeschlossenen Readings generell keine Events mehr generiert werden. Folglich hat event-min-interval keinerlei Bedeutung mehr.

event-min-interval sorgt eigentlich nur bei qualifizierten Readings dafür, dass trotz Wertgleichheit bei abgelaufener Zeitspanne doch ein Event generiert wird.

FhemPiUser

danke.

Heißt das, dass meine Anforderung nicht umsetzbar ist mit event-min-interval & event-on-change-reading?

Beta-User

Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

betateilchen

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

rudolfkoenig

Womoeglich hilft das commandref:
Zitatevent-on-change-reading
The attribute takes a comma-separated list of readings. You may use regular expressions in that list. If set, only changes of the listed readings create events. In other words, if a reading listed here is updated with the new value identical to the old value, no event is created. If an optional [:threshold] is given after a reading name events are only generated if the change is >= threshold.
Zitatevent-min-interval
This attribute takes a comma-separated list of reading:minInterval pairs. You may use regular expressions for reading. Events will only be generated, if at least minInterval seconds elapsed since the last reading of the matched type. If event-on-change-reading is also specified, they are combined with OR: if one of them is true, the event is generated.

Ich wuerde das Attribut event-on-change-reading entfernen.


FhemPiUser

#6
danke für den Tipp, aber leider bekomme ich ohne event-on-change-reading dann alle anderen Readings im Sekundenabstand als Event, auch wenn sich diese nicht ändern. Das möchte ich nicht.

Mein Ziel ist es die Anzahl Events und damit die Einträge im FileLog zu minimieren, d.h. 1) die oben genannten drei Readings (die sich im Sekundentakt ändern) nur max. alle 300s als Event und 2) für alle anderen Readings (die sich selten ändern wie z.B. switches) sofort, aber nur bei Änderung der Readings.

Diese Anforderung scheint nicht umsetzbar mit dem aktuellen Konzept.

Letzter Versuch: Ich teste jetzt nochmal die Regex "(?!(current_temperature|outside_temperature|state)).*" durch eine Liste der >50 Readings zu ersetzen...

frank

zumindestens für die temp readings sollte es doch mit threshold funktionieren, wenn der threshold während der 300s nicht erreicht wird:

attr dev event-min-interval current_temperature:300,outside_temperature:300,state:300
attr dev event-on-change-reading current_temperature:10,outside_temperature:10,state:10,.*
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html