Hauptmenü

Überlappende Zeitintervalle

Begonnen von Johnnyflash, 11 Dezember 2017, 08:59:57

Vorheriges Thema - Nächstes Thema

Johnnyflash

Hallo,
ich möchte ein DOIF einsetzen, um bei Sonnenaufgang bei einem Raffstore zunächst die Lamellen zu öffnen, später soll es vollständig geöffnet werden. Meine Idee sah so aus:

([{max("16:00",min("[T:ss_indoor]","21:30"))}-{max("08:00",min("[T:sr_indoor]","10:00"))}])
(set EG.Eingang.Raffstore closes)
DOELSEIF
([[T:ss]-11:00])
(set EG.Eingang.Raffstore 100 0)
DOELSE
(set EG.Eingang.Raffstore opens)


Oder etwas einfacher zu lesen mit den berechneten Zeiten:


([16:51:27-8:00:00])
(set EG.Eingang.Raffstore closes)
DOELSEIF
([16:12:33-11:00])
(set EG.Eingang.Raffstore 100 0)
DOELSE
(set EG.Eingang.Raffstore opens)


Das funktioniert leider nicht, da die Triggerzeit bei verlassen des ersten DOIF-Zweigs schon um ist. Was ist die einfachste Möglichkeit das umzusetzen?

Grüße
Philipp

Per

Hast du es mal mit der unteren Definition probiert?

Damian

Warum arbeitest du hier mit Zeitintervallen?

Du kannst für die drei verschiedenen Zustände einfach drei Zeitpunkte definieren.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Johnnyflash

Stimmt, in diesem Fall ist es mit Zeitpunkten kein Problem. So sollte es funktionieren:
([[T:ss]] or [{max("08:00",min("[T:sr_indoor]","10:00"))}])
(set EG.Eingang.Raffstore 100 0)
DOELSEIF
([{max("16:00",min("[T:ss_indoor]","21:30"))}])
(set EG.Eingang.Raffstore closes)
DOELSEIF
([11:00])
(set EG.Eingang.Raffstore opens)


Ich habe allerdings in einem anderen Raum das Problem, dass ich dort demnächst wahrscheinlich noch Fensterkontakte für die Schiebetür montiere. Wie würdest du das am elegantesten lösen?

Damian

Es kommt drauf an, was du vorhast, wenn du nur per Fensterkontakt die Bewegung deines Raffstore verhindern willst, dann brauchst du nur die Abfrage des Kontaktes überall mit and zu verknüpfen.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF