Explizit auf ein Reading triggern

Begonnen von MichaelO, 17 September 2016, 15:08:38

Vorheriges Thema - Nächstes Thema

MichaelO

Moin,

ich war schon kurz davor, meinen nodon ZWave-Wandtaster zu entsorgen, den ich bislang nicht inkludiert bekommen hab. Heute hatte ich etwas Zeit, nochmal mit dem Teil rum zu spielen und siehe da, plötzlich war er im System.

Der Taster (4 Druckpunkte) und verfügt über Readings, welche den Status der Klicks darstellen, getrennt nach Einfach-, Doppel-, Dreifachklick, wobei die Zahl den Taster darstellt.

cSceneSet 3
cSceneDouble 3
...


Ich habe ein einfaches DOIF, welches nun bei einem Einfachklick ein Licht ein- und ausschaltet. Per do always ist sichergestellt, dass man jederzeit schalten kann, auch wenn zwischenzeitlich der Status des Aktors wegen anderer Aktivitäten im System gewechselt hat.

## einfacher Druck auf linken Taster oben
([PB_WG_TasterTuer:cSceneSet] eq "1")       

     ## schaltet beide Steckdosen an der Pergola an     
     (set AU_DS_Pergola:FILTER=STATE=off on)     

DOELSEIF
## einfacher Druck auf linken Taster unten
([PB_WG_TasterTuer:cSceneSet] eq "3")       

     ## schaltet beide Steckdosen an der Pergola aus     
     (set AU_DS_Pergola:FILTER=STATE=on off)


Nun mein "Problem"... Ich möchte auch Doppelklicks des Tasters verarbeiten. Ein Doppelklick verändert das Reading cSceneDouble. Nun triggert aber auch immer das DOIF von oben. Steht es also in cmd 1, ein anderer Taster hat das Licht aber aus geschaltet, dann kommt der Doppelklick, triggert das DOIF erneut, obwohl der Auslöser des Events ja eigentlich das veränderte Reading cSceneDouble war.

Vielleicht stelle ich mich etwas blöd an, aber wie sage ich dem DOIF, dass es nur dann triggern soll, wenn das Reading cScene gefeuert hat? Ich kann mit event-on-change-reading zwar erzwingen, dass nur das Reading cScene einen Event auslöst, aber dann funktioniert das DOIF nicht mehr, welches auf den Doppelklick wartet.

Es soll also jeweils nur auf die Readings reagiert werden, welche im DOIF vorkommen.

Danke für die Hilfe
Michael

Damian

Zitat von: MichaelO am 17 September 2016, 15:08:38
Moin,

ich war schon kurz davor, meinen nodon ZWave-Wandtaster zu entsorgen, den ich bislang nicht inkludiert bekommen hab. Heute hatte ich etwas Zeit, nochmal mit dem Teil rum zu spielen und siehe da, plötzlich war er im System.

Der Taster (4 Druckpunkte) und verfügt über Readings, welche den Status der Klicks darstellen, getrennt nach Einfach-, Doppel-, Dreifachklick, wobei die Zahl den Taster darstellt.

cSceneSet 3
cSceneDouble 3
...


Ich habe ein einfaches DOIF, welches nun bei einem Einfachklick ein Licht ein- und ausschaltet. Per do always ist sichergestellt, dass man jederzeit schalten kann, auch wenn zwischenzeitlich der Status des Aktors wegen anderer Aktivitäten im System gewechselt hat.

## einfacher Druck auf linken Taster oben
([PB_WG_TasterTuer:cSceneSet] eq "1")       

     ## schaltet beide Steckdosen an der Pergola an     
     (set AU_DS_Pergola:FILTER=STATE=off on)     

DOELSEIF
## einfacher Druck auf linken Taster unten
([PB_WG_TasterTuer:cSceneSet] eq "3")       

     ## schaltet beide Steckdosen an der Pergola aus     
     (set AU_DS_Pergola:FILTER=STATE=on off)


Nun mein "Problem"... Ich möchte auch Doppelklicks des Tasters verarbeiten. Ein Doppelklick verändert das Reading cSceneDouble. Nun triggert aber auch immer das DOIF von oben. Steht es also in cmd 1, ein anderer Taster hat das Licht aber aus geschaltet, dann kommt der Doppelklick, triggert das DOIF erneut, obwohl der Auslöser des Events ja eigentlich das veränderte Reading cSceneDouble war.

Vielleicht stelle ich mich etwas blöd an, aber wie sage ich dem DOIF, dass es nur dann triggern soll, wenn das Reading cScene gefeuert hat? Ich kann mit event-on-change-reading zwar erzwingen, dass nur das Reading cScene einen Event auslöst, aber dann funktioniert das DOIF nicht mehr, welches auf den Doppelklick wartet.

Es soll also jeweils nur auf die Readings reagiert werden, welche im DOIF vorkommen.

Danke für die Hilfe
Michael

siehe  http://fhem.de/commandref_DE.html#DOIF_checkReadingEvent

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

MichaelO

Vielen Dank für den schnellen Hinweis. Den Parameter hatte ich total übersehen...

Danke
Michael