Fehler bei event-on-change-reading ?

Begonnen von John, 31 Januar 2015, 12:08:59

Vorheriges Thema - Nächstes Thema

John

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
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

rudolfkoenig

Anhand des Test-Szenarios sehe ich das Problem nicht. Oder auch: abs(1-1) < 1

John

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
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

rudolfkoenig

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.


John

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
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

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
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

rudolfkoenig

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.