Hallo, ich komme einfach nicht weiter, vielleicht hat ja jemand eine Lösung für mich.
ich möchte mit mit/in einem DOIF, einen Schalter für AN/AUTOMATIK/AUS und 3 einstellbare Schaltzeiten haben. Optisch klappt dies alles. Mit dem Schalter "AN" und "AUS" zuschalten geht, auch "Automatik" mit der eingestellten Zeit geht.
Nur wenn der Schalter auf "AUS" steht und die Zeit-Bedingung stimmt geht mein Ventil trotzdem an. :o
define Zeitschaltuhr DOIF (["$SELF:Schalter: AN"])
(set Ventil on)
DOELSEIF ([$SELF:Schalter, "AUTOMATIK"] and [[$SELF:Zeit1,"00:00"]])
(set Ventil on-for-timer 900)
DOELSEIF ([$SELF:Schalter, "AUTOMATIK"] and [[$SELF:Zeit2,"00:00"]])
(set Ventil on-for-timer 900)
DOELSEIF ([$SELF:Schalter, "AUTOMATIK"] and [[$SELF:Zeit3,"00:00"]])
(set Ventil on-for-timer 900)
DOELSEIF (["$SELF:Schalter: AUS"])
(set Timer_Ventil_1 off)
attr Zeitschaltuhr cmdState AN|AUTOMATIK_ZEIT1|AUTOMATIK_ZEIT2|AUTOMATIK_ZEIT3|AUS
attr Zeitschaltuhr readingList Schalter Zeit1 Zeit2 Zeit3
attr Zeitschaltuhr setList Schalter:AN,AUTOMATIK,AUS Zeit1:time Zeit2:time Zeit3:time
attr Zeitschaltuhr webCmd Schalter:Zeit1:Zeit2:Zeit3
define Ventil RPI_GPIO 25
attr Ventil direction output
Was stimmt mit meinem Code nicht?
Auf jeden Fall ist DOELSE ohne Bedingung!!
Weil es heißt:
DOIF: mache wenn
DOELSIF: wenn aber dann mache
DOELSE: ansonsten mache einfach
Da ich DOIF nicht nutze kann ich nicht sagen, ob das sonst passt...
Und: schön wäre gewesen, du hättest "code-Tags" verwendet (das '#' im "Menü")...
Gruß, Joachim
Ja danke dir
habe es geändert
das mit dem DOELSE war ein Schreibfehler von mir, muss natürlich DOELSEIF heißen
wie gesagt das mit dem AUS klappt leider nicht
Wenn du noch sagst was genau nicht klappt...
...bzw. besser ein vollständiges list im Fehlerfall posten...
Gruß, Joachim
ZitatNur wenn der Schalter auf "AUS" steht und die Zeit-Bedingung stimmt geht mein Ventil trotzdem an.
Das geht nicht bzw. geht immer mit der Zeitbedingung egal ob AN/AUS
2021-11-27 01:28:00 DOIF Zeitschaltuhr cmd_nr: 2
2021-11-27 01:28:00 DOIF Zeitschaltuhr cmd: 2
2021-11-27 01:28:00 DOIF Zeitschaltuhr cmd_event: timer_1
2021-11-27 01:28:00 DOIF Zeitschaltuhr AUTOMATIK_ZEIT1
Und wo ist nun das VOLLSTÄNDIGE list in Code-Tags, in dem Fall wo nicht geschalten wurde wie du denkst, dass sollte?
Gruß, Joachim
([$SELF:Schalter, "AUTOMATIK"] and [[$SELF:Zeit1,"00:00"]]
Das sind zwei Ereignistrigger, die niemals gleichzeitig wahr sein können.
Du musst viel mehr den Status deines Schalters abfragen. In der Commandref zu DOIF gibt es dazu viele Beispiele.