FHEM Forum

FHEM - Entwicklung => FHEM Development => Thema gestartet von: John am 31 Januar 2015, 12:08:59

Titel: Fehler bei event-on-change-reading ?
Beitrag von: John am 31 Januar 2015, 12:08:59
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
Titel: Antw:Fehler bei event-on-change-reading ?
Beitrag von: rudolfkoenig am 31 Januar 2015, 12:24:27
Anhand des Test-Szenarios sehe ich das Problem nicht. Oder auch: abs(1-1) < 1
Titel: Antw:Fehler bei event-on-change-reading ?
Beitrag von: John am 31 Januar 2015, 12:34:44
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
Titel: Antw:Fehler bei event-on-change-reading ?
Beitrag von: rudolfkoenig am 31 Januar 2015, 15:22:33
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.

Titel: Antw:Fehler bei event-on-change-reading ?
Beitrag von: John am 31 Januar 2015, 15:49:42
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
Titel: Antw:Fehler bei event-on-change-reading ?
Beitrag von: John am 03 Februar 2015, 17:42:07
Hallo Rudi,

bist du beim Nachdenken über die Interaktion von  event-on-change-reading mit event-min-interval schon zu einem Ergebnis
gekommen ?

John
Titel: Antw:Fehler bei event-on-change-reading ?
Beitrag von: rudolfkoenig am 15 Februar 2015, 14:11:36
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.