Hallo @all,
ich versuche mich an dem Beispiel der Zeitsteuerung einer Schaltuhr ,was soweit auch funktioniert ....aber ich würde gerne noch AUTO mit im DOIF übergeben !
Also , die Zeitschaltuhr soll nur dann automatisch schalten ,wenn der Button Auto aktiv ist, oder halt manuell ON - OFF.
define lamp_Labor002 dummy
setuuid lamp_Labor002 5fc36861-f33f-9031-f239-7e626cefae359d68
attr lamp_Labor002 alias Lampe2
attr lamp_Labor002 group Labor: Zeitsteuerung mit manuell Ein/Aus
attr lamp_Labor002 room DOIF_Labor
#
define time_switch_Labor2 DOIF (["$SELF:P_mybutton2: on"] or [[$SELF:P_mybegin2,"00:00"]])\
(set lamp_Labor002 on)\
DOELSEIF (["$SELF:P_mybutton2: off"] or [[$SELF:P_myend2,"00:01"]])\
(set lamp_Labor002 off)
setuuid time_switch_Labor2 5fc36861-f33f-9031-47b4-57da39df7ea98623
attr time_switch_Labor2 alias Schaltuhr2
attr time_switch_Labor2 cmdState on|off|auto
attr time_switch_Labor2 group Labor: Zeitsteuerung mit manuell Ein/Aus
attr time_switch_Labor2 readingList P_mybutton2 P_mybegin2 P_myend2
attr time_switch_Labor2 room DOIF_Labor
attr time_switch_Labor2 setList P_mybutton2:uzsuSelectRadio,on,off,auto P_mybegin2:time P_myend2:time
attr time_switch_Labor2 webCmd P_mybutton2:P_mybegin2:P_myend2
wenn ich das DOIF richtig verstehe , dann prüft die erste Bedingung
(["$SELF:P_mybutton2: on"]
ob manuell geschaltet wurde , oder
or [[$SELF:P_mybegin2,"00:00"]])\
der Timer soweit ist ,um zu schalten ....
Darum dachte ich ,ich könnte mit einer weiteren Bedingung , das DOIF dazu bewegen , den TIMER nur in Verbindung mit AUTO zu schalten
define time_switch_Labor2 DOIF (["$SELF:P_mybutton2: on"] or [[$SELF:P_mybegin2,"00:00"] and ["$SELF:P_mybutton2: auto"]])\
(set lamp_Labor002 on)\
DOELSEIF (["$SELF:P_mybutton2: off"] or [[$SELF:P_myend2,"00:01"]])\
(set lamp_Labor002 off)
leider ist es dem DOIF vollkommen egal ob AUTO aktiv ist oder nicht .....
Wo mache ich da den Fehler ?
Wenn ich in die readings schaue ,wird Auto in P_mybutton2 gesetzt
READINGS:
2020-11-29 10:31:33 P_mybegin2 10:35
2020-11-29 10:59:53 P_mybutton2 auto
2020-11-29 10:31:43 P_myend2 10:36
2020-11-29 10:59:51 cmd 2
2020-11-29 10:59:51 cmd_event time_switch_Labor2
2020-11-29 10:59:51 cmd_nr 2
2020-11-29 10:37:27 mode enabled
2020-11-29 10:59:51 state off
2020-11-29 10:37:27 timer_01_c01 30.11.2020 10:35:00
2020-11-29 10:37:27 timer_02_c02 30.11.2020 10:36:00
Vielleicht ist dieses Codeschnipsel für dich interessant: https://forum.fhem.de/index.php/topic,116246.0.html
Dort kannst du verschiedene Lichtszenarien definieren, diese über GUI ein und ausschalten und manuell übersteuern.
Danke ! schaue ich mir direkt mal an :-)
Also , ist es nach meiner Denkweise nicht möglich ? Hatte gehofft es verstanden zu haben *snief
Zustand prüfen:
statt:
["$SELF:P_mybutton2: auto"]
[$SELF:P_mybutton2] eq "auto"
erstmal vielen Dank , aber leider funzt das so nicht :
(["$SELF:P_mybutton2: on"] or [[$SELF:P_mybutton2] eq "auto" and [$SELF:P_mybegin2,"00:00"]])
(set lamp_Labor002 on)
Zitat von: Aladin222 am 29 November 2020, 12:37:33
erstmal vielen Dank , aber leider funzt das so nicht :
(["$SELF:P_mybutton2: on"] or [[$SELF:P_mybutton2] eq "auto" and [$SELF:P_mybegin2,"00:00"]])
(set lamp_Labor002 on)
dann eher:
(["$SELF:P_mybutton2: on"] or [$SELF:P_mybutton2] eq "auto" and [$SELF:P_mybegin2,"00:00"])
Dankeschön .... probiere ich auf jeden Fall noch aus ( um es zu verstehen )
Nutzen tue ich nun aber deinen Codeschnipsel :-) Danke dafür !