DOIF if Logging is < 1 Sekunde

Begonnen von pronson, 27 Dezember 2018, 00:57:07

Vorheriges Thema - Nächstes Thema

pronson

Hallo zusammen,
ich habe einen Aqara Doppeltaster zigbee.
Ich würde nun gerne wenn ich auf den einen Schalter drücke damit bewirken, dass mein Vorhang, wenn er offen ist zugeht und umgekehrt.

Das Problem welches ich momentan habe ist, dass ich ein DOIF gemacht habe welches prüft ob der Status vom Taster click_left ist. Dieser Status wird aber leider beibehalten bist ich an dem Taster eine andere Taste drücke.

Somit geht jetzt mein Vorhang ständig auf und zu wenn ich den click_left betätige.
Darum würde ich jetzt zusätzlich zum click_left noch abfragen, wann dieser Befehl geloggt wurde und somit bestimmten kann, dass wenn dieser älter als 1 Sekunde, der DOIF vom Vorhang nicht mehr ausgelöst wird.

Beste Grüsse.

pronson

Byte09

Zitat von: pronson am 27 Dezember 2018, 00:57:07
Hallo zusammen,
ich habe einen Aqara Doppeltaster zigbee.
Ich würde nun gerne wenn ich auf den einen Schalter drücke damit bewirken, dass mein Vorhang, wenn er offen ist zugeht und umgekehrt.

Das Problem welches ich momentan habe ist, dass ich ein DOIF gemacht habe welches prüft ob der Status vom Taster click_left ist. Dieser Status wird aber leider beibehalten bist ich an dem Taster eine andere Taste drücke.

Somit geht jetzt mein Vorhang ständig auf und zu wenn ich den click_left betätige.
Darum würde ich jetzt zusätzlich zum click_left noch abfragen, wann dieser Befehl geloggt wurde und somit bestimmten kann, dass wenn dieser älter als 1 Sekunde, der DOIF vom Vorhang nicht mehr ausgelöst wird.

Beste Grüsse.

pronson

das sollte doch vermeidbar sein , indem du nicht auf den status des tasters testest, sondern auf das Event des tasters reagierst.

das sind bei DOIF ja 2 paar Schuhe.

gruss Byte09

Ellert

Und die Eventangabe kann man aus dem Eventmonitor erzeugen. Wenn man DOIFtools verwendet kann der Eventmonitor direkt in der Detailansicht des DOIF geöffnet werden und die erzeugte Triggerangabe in die Definition eingefügt werden.
https://wiki.fhem.de/wiki/DOIFtools#Zugriff_auf_den_Event-Monitor_in_der_Detailansicht_von_DOIFtools
https://wiki.fhem.de/wiki/Event_monitor

pronson

Vielen Danke euch, ich habe es jetzt so gelöst:
define n_CurtainTaster notify xiaomi_schalter1:click:.* IF ([0x00158d00020e79f8:state] eq "close") (set 0x00158d00020e79f8 open) ELSE (set 0x00158d00020e79f8 close)