(Gelöst) DOIF Trigger auf Event statt Zustand

Begonnen von Spezialtrick, 23 Februar 2017, 22:15:29

Vorheriges Thema - Nächstes Thema

Spezialtrick

Hallo,

ich habe Probleme bei der Erstellung eines DOIFs. Ich würde gerne eine HM-RC-SEC4-2 mit DOIF abbilden, um damit meine Alarmanlage in die unterschiedlichen Modi zu schalten. Die Fernbedienung hat vier Tasten, von denen drei für mich relevant sind. Jede Taste sendet ON bzw. OFF. Ich würde gerne unabhängig davon immer die gleiche Aktion ausführen. Leider funktioniert es nicht so recht:


([HM_Vir_RC_ARM_1_Arm_Away:state] eq "ON|OFF") (set HM_4F5A0F_Arm alarmLevel armAll) DOELSE
([HM_Vir_RC_ARM_1_Home_Night:state] eq "ON|OFF") (set HM_4F5A0F_Arm alarmLevel armExtSens) DOELSE
([HM_Vir_RC_ARM_1_Disarm_Cancel:state] eq "ON|OFF") (set HM_4F5A0F_Arm alarmLevel disarmed)


Es funktioniert nur die erste Funktion. Das Problem liegt darin, dass die Bedingung immer zutrifft und daher niemals die anderen geprüft werden. Leider habe ich keine Idee, wie man das lösen könnte.

Hat jemand eine Idee?
FHEM - Debmatic - Zigbee2MQTT - Homekit

Brockmann

Du solltest auf das Event und nicht den Status triggern. Das Event ist immer nur in dem Moment wahr, wo der Knopf gedrückt wird.


([HM_Vir_RC_ARM_1_Arm_Away:"ON|OFF"]) (set HM_4F5A0F_Arm alarmLevel armAll) DOELSE
([HM_Vir_RC_ARM_1_Home_Night:"ON|OFF"]) (set HM_4F5A0F_Arm alarmLevel armExtSens) DOELSE
([HM_Vir_RC_ARM_1_Disarm_Cancel:"ON|OFF"]) (set HM_4F5A0F_Arm alarmLevel disarmed)

Ungetestet und ohne Gewähr

Spezialtrick

Zitat von: Brockmann am 24 Februar 2017, 09:41:33
Du solltest auf das Event und nicht den Status triggern. Das Event ist immer nur in dem Moment wahr, wo der Knopf gedrückt wird.

Vielen Dank für den Tipp, wusste leider nicht wie man das realisiert.  :D

Es hat auch mit einer kleineren Änderung (DOELSEIF statt DOELSE) funktioniert:

([HM_Vir_RC_ARM_1_Arm_Away:"ON|OFF"]) (set HM_4F5A0F_Arm alarmLevel armAll) DOELSEIF
([HM_Vir_RC_ARM_1_Home_Night:"ON|OFF"]) (set HM_4F5A0F_Arm alarmLevel armExtSens) DOELSEIF
([HM_Vir_RC_ARM_1_Disarm_Cancel:"ON|OFF"]) (set HM_4F5A0F_Arm alarmLevel disarmed)
FHEM - Debmatic - Zigbee2MQTT - Homekit

Per

Zitat von: Spezialtrick am 24 Februar 2017, 20:43:39Es hat auch mit einer kleineren Änderung (DOELSEIF statt DOELSE) funktioniert:
Gab das vorher keine Fehlermeldung? Zweimal DOELSE kann es eigentlich nicht geben. Und das direkt nach DOELSE sollte er als Befehl erkennen und auch so auswerten wollen. Also noch eine Fehlermeldung.