[Erledigt] DOIF mit SELF und and Verknüpfung wird Ignoriert

Begonnen von SamNitro, 11 Mai 2024, 22:52:22

Vorheriges Thema - Nächstes Thema

SamNitro

Hallo habe hier ein $SELF DOIF, aber der Sensor wird ignoriert,

defmod DOIF_DLD_Tuer_aufschliessen_abschliessen DOIF ([$SELF:AUF]) \
(set dummy2 on)\
DOELSEIF\
([$SELF:ZU] and [Sensor_Tuer_Terrasse] eq "open")\
(set dummy2 off)
attr DOIF_DLD_Tuer_aufschliessen_abschliessen cmdState AUF|ZU
attr DOIF_DLD_Tuer_aufschliessen_abschliessen do always
attr DOIF_DLD_Tuer_aufschliessen_abschliessen setList AUF ZU
attr DOIF_DLD_Tuer_aufschliessen_abschliessen webCmd AUF:ZU

Es wird einfach geschaltet egal welchen Status der Sensor hat.
Geht das nicht oder habe ich einen Fehler in meinem DOIF?
Gruß Patrick
(Intel-Nuc Proxmox) (Homematic) (EnOcean) (CUL868) (CUL433) (Zigbee2MQTT) (ESP8266) (Echo) (DUOFERN)

Per

Wenn du mit Set schaltest, werden die Bedingungen ignoriert.
Mehr kann ich aus dem Konstrukt nicht herauslesen.

Damian

Mit [$SELF:AUF] reagierst du auf das Reading namens "AUF" egal was da drin steht.

Wenn du auf das Ereignis "AUF" reagieren willst, dann muss du es in Anführungszeichen angeben: [$SELF:"AUF"]
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

SamNitro

Hey, aber trotzdem scheint es mir so das der Türssensor ignoriert wird, er schaltet egal welcher Zustand der Sensor hat. Meine Heizung wird auch von dem Sensor gesteuert. aber halt nicht mit einem $SELF Befehl.

Alternativ habe ich einen Dummy als trigger benutzt, damit geht es natürlich, aber ich wollte mir den dummy sparen :)
(Intel-Nuc Proxmox) (Homematic) (EnOcean) (CUL868) (CUL433) (Zigbee2MQTT) (ESP8266) (Echo) (DUOFERN)

Damian

Durch deine Definition wird bei AUF set cmd_1 ausgeführt und bei ZU set cmd_2 ohne die Bedingung auszuwerten

Du kannst statt über einen Dummy über ein Reading gehen:

defmod DOIF_DLD_Tuer_aufschliessen_abschliessen DOIF ([$SELF:button] eq "AUF") \
(set dummy2 on)\
DOELSEIF\
([$SELF:button] eq "ZU" and [Sensor_Tuer_Terrasse] eq "open")\
(set dummy2 off)
attr DOIF_DLD_Tuer_aufschliessen_abschliessen cmdState AUF|ZU
attr DOIF_DLD_Tuer_aufschliessen_abschliessen do always
attr DOIF_DLD_Tuer_aufschliessen_abschliessen readingList button
attr DOIF_DLD_Tuer_aufschliessen_abschliessen setList button:AUF,ZU
attr DOIF_DLD_Tuer_aufschliessen_abschliessen webCmd button
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

SamNitro

Perfekt Damian, danke für deine tolle Arbeit :) So funktioniert es.
(Intel-Nuc Proxmox) (Homematic) (EnOcean) (CUL868) (CUL433) (Zigbee2MQTT) (ESP8266) (Echo) (DUOFERN)