Hallo,
zwar bekommt man über die Suche ganz viele Treffer, aber ich habe immer noch nicht herausfinden könne, wie ich event-on-change-reading, event-on-update-reading und event-min-interval kombinieren muss, um von meinem Bewegungsmelder (IT) nicht verrückt gemacht zu werden.
Der Melder gibt (wenn jemand im Erfassungsbereich ist), alle 3 sec ein Event ab. So oft brauche ich aber keine SMS, keinen Gong oder so. Es reicht mir (und so hätte ich es gerne), dass ich das nächste Event eben erst bekomme, wenn nach z.B. 30 Sekunden immer noch action ist.
Irgendwie krieg ichs nicht hin. Trotz vielen Lesens ...
Danke
Hi,
also soweit ich das verstehe, einfach nur event-min-interval nehmen, die anderen beiden leer lassen (löschen).
Also etwa
attr meinDevice event-min-interval meinReading:30
Gruß,
Thorsten
Hallo Thorsten,
leider eben nicht, "klingelt" dann auch dauernd .... :(
Hi,
zeig mal ein list von dem Device.
Gruß,
Thorsten
Das Tückische an event-min-interval ist, dass es sich unterschiedlich verhält, je nachdem ob man event-on-update oder event-on-change verwendet. Musste ich zumindest auf die harte Tour lernen:
https://forum.fhem.de/index.php/topic,36522.msg287945.html#msg287945
Eigentlich ist "unterschiedlich verhalten" nicht richtig. Es verhält sich immer gleich. Allerdings haben die beiden anderen genannten Attribute dann auch eine Wirkung und das führt dazu, dass man denken könnte, dass event-min-interval nicht das macht, was man meint, das es tun sollte. Allerdings gilt ganz klar: works as designed
Die commandref geht explizit auf den Unterschied im Verhalten ein, sobald event-on-change-reading ins Spiel kommt.
Es handelt sich dann aber nicht um ein verändertes Verhalten von event-min-interval. Das macht IMMER das gleiche. event-on-change führt lediglich dazu, dass Änderungen immer ein Event auslösen, egal, was event-min-interval sagt. Der Passus in der commandref steht da, weil man es eben sonst falsch verstehen könnte.
Es ist aber auch müßig darüber zu diskutieren, denn das Ergebnis ist das gleiche. Alle 3 Attribute muss man immer im Zusammenhang sehen, wenn man sie verwendet und dann ist das Verhalten durchaus logisch nachvolziehbar.
Zitat von: marvin78 am 25 April 2017, 17:40:49
event-on-change führt lediglich dazu, dass Änderungen immer ein Event auslösen, egal, was event-min-interval sagt.
Stimmt mMn so nicht. In Kombination mit event-on-change werden auch Readings erzeugt, wenn sich der Wert NICHT geändert hat, aber die min-interval verstrichen ist. Es werden also MEHR Events erzeugt als ohne min-interval.
Ohne event-on-change werden immer nur Events erzeugt, wenn min-interval verstrichen ist. Es werden also WENIGER Events erzeugt.
Ja. Genau das habe ich gesagt. Das ist aber keine Änderung am Verhalten von event-min-intervall sondern das zusätzliche Verhalten von event-on-change. Völlig korrekt und laut Doku erwartbar. Aber wie gesagt: es ist müßig
Also ich verstehe das jetzt so:
event-on-change-reading - es gibt ein Event, wenn sich der Wert ändert
event-min-interval - es gibt alle x Sekunden auf jeden Fall ein Event, auch wenn sich nichts ändert
Das ist logisch und nachvollziehbar.
Es löst aber leider nicht mein Problem. Wie vermeide ich wiederkehrende Events für eine bestimmte Zeit, auch wenn der Bewegungsmelder immer weiter meldet?
gib mal Antwort zu Beitrag 3
und vielleicht auch ein list von dem Device der auf die Events reagiert (notify oder so)?
Zitatevent-on-change-reading - es gibt ein Event, wenn sich der Wert ändert
event-min-interval - es gibt alle x Sekunden auf jeden Fall ein Event, auch wenn sich nichts ändert
nein. nicht wirklich. wichtig ist: events gibt es immer nur wenn der sensor auch etwas sendet. wenn er nichts sendet gibt es auch keine events. niemals. egal welche attribute gesetzt sind.
die attribute filtern nur events weg:
event-on-change-reading - filter alles weg das sich nicht ändert
event-min-interval - filter alles weg so lange das interval nicht abgelaufen ist
die beiden filter sind aber nicht und verknüpft sondern oder verknüpft. d.h. wenn einer von beiden etwas durch lässt bekomst du ein event. auch wenn der andere es gefiltert hat.
bei einem bewegungsmelder der immer nur motion events erzeugt (d.h. ohne no-motion) ist event-on-change-reading sinnlos!
event-min-interval macht genau das was du willst. jedenfalls wenn es richtig gesetzt ist. deshalb die frage nach dem list.
Hier das List, wie es jetzt ist. Als noch kein event-on-change-reading gesetzt war, verhielt es sich genauso.
Internals:
CUL_433_MSGCNT 109
CUL_433_RAWMSG id207ba
CUL_433_RSSI -70.5
CUL_433_TIME 2017-04-25 18:03:47
DEF 1527xd207b 1010 0000
IODev CUL_433
LASTInputDev CUL_433
MSGCNT 109
NAME BewgMeldHaustr
NR 1368
STATE off
TYPE IT
XMIT 1f0d00f1d1
XMITdimdown 00
XMITdimup 00
XMIToff 0000
XMITon 1010
Code:
1 1527xd207b
Readings:
2017-04-12 14:31:41 protocol EV1527
2017-04-25 18:03:51 state off
Attributes:
DbLogExclude .*
IODev CUL_433
event-min-interval 30
event-on-change-reading state
room 40_Aussen,IT
Und hier das list vom notify:
Internals:
DEF BewgMeldHaustr:.*on {Haustuer(1)}
NAME nHaustBewg
NOTIFYDEV BewgMeldHaustr
NR 1369
NTFY_ORDER 50-nHaustBewg
REGEXP BewgMeldHaustr:.*on
STATE 2017-04-25 18:03:47
TYPE notify
Readings:
2017-04-23 20:01:19 state active
Attributes:
DbLogExclude .*
Aufgerufen wird eine Funktion im 99_myUtils.
event-min-interval nimmt eine Liste von <reading>:<mininterval> also versuch doch mal:
event-min-interval state:30
Wpbei - nochmal zurück zum Problem:
Eigentlich wäre das für mich ein Fall für ein DOIF speziell mit dem Punkt:
Zwangspause für das Ausführen eines Kommandos seit der letzten Zustandsänderung
https://fhem.de/commandref_DE.html#DOIF_cmdpause (https://fhem.de/commandref_DE.html#DOIF_cmdpause)
Super,
das scheint jetzt zu klappen ...
Hallo,
es ist zwar ein alter Thread, jedoch hat mich der Zusammenhang zwischen event-on-update-reading, event-on-change-reading und event-min-interval so sehr beschäftigt, dass ich nun anhand weniger, möglichst klar formulierter Sätze entscheiden kann, was ich wie wann einsetzen will.
Das Ergebnis ist die angehängte (und hoffentlich richtige) Tabelle.
Evtl. hilft sie ja dem Einen oder Anderen.
Gruß Chris
Edit: Das Attribut poll_interval kann zusätzlich oftmals sehr hilfreich sein.
ich hab mir jetzt deine Tabelle nicht genau durchgelesen.
aber decken sich deine Erkenntnisse damit:
https://wiki.fhem.de/wiki/Event-min-interval
??
Aber sicher doch. :-*