Das Problem:
even-on-change-reading hebelt die Funktion von event-min-interval aus, sobald bei even-on-change-reading ein Offset angeben wird.
Test-Szenario:
inform on
define TestEvent dummy
attr TestEvent event-min-interval .*:3
# ------------ funktioniert
attr TestEvent event-on-change-reading .*
set TestEvent 1
sleep 4
set TestEvent 1
sleep 4
set TestEvent 1
# Ausgabe
#dummy TestEvent 1
#dummy TestEvent 1
#dummy TestEvent 1
# ------------ funktioniert nicht
attr TestEvent event-on-change-reading state:1
set TestEvent 1
sleep 4
set TestEvent 1
sleep 4
set TestEvent 1
# keine Ausgabe
Anbei der Versuch einer Lösung.
John
Anhand des Test-Szenarios sehe ich das Problem nicht. Oder auch: abs(1-1) < 1
Ist es nicht so, dass event-min-interval gewährleisten soll, daß spätestens nach der angegebenen Zeit ein Event gefeuert wird,
auch zwar auch dann wenn das Kriterium zum Feuern seitens event-on-change-reading nicht erfüllt ist.
Wenn ja, dann sollte dies auch gelten, wenn event-on-change-reading mit einer Hysterese behaftet ist.
Oder habe ich da noch ein Verständnisproblem ?
John
Ich fuerchte ich habe auch ein Verstaendnisproblem:
1. mit "attr TestEvent event-on-change-reading .*" sollte "set TestEvent 1; sleep 4; set TestEvent 1" keine events produzieren, bzw. genau eins wenn TestEvent vorher auf einem anderen Wert stand.
2. Bin inzwischen nicht sicher, was die Kombination von event-on-change-reading mit event-min-interval produzieren soll.
Mein Verständnis war bisher:
event-on-change-reading verhindert das übermässige Feuern von Events, wenn der Wert sich nicht oder nur wenig (Hysterese) geändert hat.
Nun kann es passieren, daß über Stunden kein Event mehr gefeuert wird. So sorgt event-min-interval dafür, dass dies im gewünschten
Mindestumfang dennoch erfolgt.
Das wäre meiner Meinung nach eine technisch durchaus sinnvolle und wünschenswerte Lösung.
Der User kann die anfallenden Ereignisse weitgehend reduzieren und gleichzeitig für ein Mindestmaß sorgen.
Damit müsste das Kriterium zum Feuern des Events eine ODER-Verknüpfung aus beiden Bedingungen sein.
John
Hallo Rudi,
bist du beim Nachdenken über die Interaktion von event-on-change-reading mit event-min-interval schon zu einem Ergebnis
gekommen ?
John
Dein Verstaendnis ist sinnvoll in manchan Situationen, bin aber nicht sicher, ob das in allen Faellen so ist. Das eigentliche Problem ist, dass die Interaktion der drei Attribute nicht klar definiert und das, was definiert, etwas verwirrend ist. Der dazugehoerige Code ist nicht besser, was vielleicht daran liegt, dass hier 3 Features von drei Leuten implementiert wurden.
Ich habe deine Aenderungen dazugebaut und eingecheckt, eigentlich muesste alles klar definiert und neu implementiert werden, was ich eine Weile auch ueberlegt, aber dann aufgegeben habe.