[Gelöst] DOIF ... bekomme nie Bedingung 1

Begonnen von is2late, 08 Januar 2021, 18:20:09

Vorheriges Thema - Nächstes Thema

is2late

Hi,

ich scheitere offenbar an der DOIF-Syntax. StromOKay ist ein Dummy, Schreibtisch eine Lampe.
Realisiert wird immer nur Bedingung 2, dh der Dummy steht beharrlich auf "on".

defmod LichtAusNachStromausfall DOIF ([Schreibtisch:"off"]) (set StromOkay off) DOELSE(set StromOkay on)

Sieht jemand den Fehler?

LG Ingo
Pi4, Tahoma Jalousien, Hue, Echo, Sonos, Lupusec XT3, FritzBox

Otto123

#1
Hallo Ingo,

na viel ist nicht zu sehen, aber zu vermuten:
Du triggerst das DOIF mit Events und fragst aber nur den Event off für den ersten Zweig ab.
Schau Dir im Event Monitor an was da noch danach kommt - sicher kommt was.

Das ist nicht "off" und dein DOIF geht auf cmd2.

Mach doch den Trigger auf Zustand: ([Schreibtisch] eq "off") damit wird der STATE abgefragt (auch nicht optimal) wenn ein Event kommt und das DOIF triggert.

Besser wäre gezielt ein Reading zu fragen: ([Schreibtisch:state] eq "off")

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Damian

Das ist eine Zustandsabfrage:

defmod LichtAusNachStromausfall DOIF ([Schreibtisch:state] eq "off") (set StromOkay off) DOELSE(set StromOkay on)
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

is2late

Super!

Nach Ottos Tipp habe ich im Logfile gesehen, dass die Lampe dort nicht mit dem Klarnamen, sondern als HUEDevice14 geführt wird.
Damians Code hat dann mit dem angepassten Namen sofort funktioniert.
Herzlichen Dank und einen schönen Abend!

LG Ingo
Pi4, Tahoma Jalousien, Hue, Echo, Sonos, Lupusec XT3, FritzBox