Probleme mit DOIF und Zeitschaltuhr

Begonnen von Aladin222, 29 November 2020, 10:56:44

Vorheriges Thema - Nächstes Thema

Aladin222

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

Damian

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.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Aladin222

Danke ! schaue ich mir direkt mal an :-)

Also , ist es nach meiner Denkweise nicht möglich ? Hatte gehofft es verstanden zu haben *snief

Damian

Zustand prüfen:

statt:

["$SELF:P_mybutton2: auto"]

[$SELF:P_mybutton2] eq "auto"
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Aladin222

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)

Damian

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"])
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Aladin222

Dankeschön .... probiere ich auf jeden Fall noch aus ( um es zu verstehen )
Nutzen tue ich nun aber deinen Codeschnipsel :-) Danke dafür !