[Gelöst] Doif mit Schalter und Zeit

Begonnen von Schlafsack, 27 November 2021, 00:55:57

Vorheriges Thema - Nächstes Thema

Schlafsack

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?

MadMax-FHEM

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
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Schlafsack

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

MadMax-FHEM

Wenn du noch sagst was genau nicht klappt...
...bzw. besser ein vollständiges list im Fehlerfall posten...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Schlafsack

#4
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

MadMax-FHEM

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

FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Damian

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