Hi,
folgende Situation: Ich steuere meine Rolläden je nach Status der Anwesenheit im Haus über ein DOIF. Also Also wenn wir beispielsweise zu Hause sind und es ist zwischen 8 und 18 Uhr sind die Rolläden auf. Um 18 Uhr gehen sie alle zu. Wenn sich zwischen dieser Zeit der Status auf Abwesend ändert, gehen nur die Rolläden auf der Terasse zu und wenn wir nach Hause kommen gehen sie wieder auf.
Die Rolläden sind in einzelne Strukturen zusammengefasst. Für den Status "unterwegs" also nur die Rolläden der Terasse.
Jetzt suche ich nach folgenden Möglichkeiten und weiß nicht wie ich es am besten realisieren kann:
1. Ich frage derzeit den aktuellen Status der Rolläden nicht ab. Dies hat folgenden Nachteil: Wenn ich den Status vor 8 Uhr auf Abwesend stelle, dann gehen überhaupt keine Rolläden hoch, da ja nur die Struktur "RL_Unterwegs Runter" aufgerufen wird. Die Rolläden sind ja aber noch runter. Eigentlich will ich aber, dass alle Rolläden, ausser die auf der Terasse hoch gehen. Wie fange ich das am besten ab?
2. Am Wochenende gehen die Rolläden um 10 Uhr hoch. Gibt es eine Möglichkeit, wie ich bestimmte Rolläden in Ausnahmesituationen aus dieser Regelung raus hole? Wenn man beispielsweise abends lang weg war, möchte ich dass die Rolläden alle hoch gehen, aber der im Schlafzimmer nicht. Der soll dann manuell später geöffnet werden.
Zur verdeutlichung habe ich mal mein aktuelles DOIF angehängt.
([homestatus] eq "home" and ([[Sonnenstand:sr_civil]-[Sonnenstand:ss_civil]|12345] or [10:00:00-[Sonnenstand:ss_civil]|60])) (set RL_Alle Hoch, set pushmsg msg 'Homestatus' 'Alle Rolläden geöffnet')
DOELSEIF ([homestatus] =~ "home|nachtdienst|unterwegs|ferien" and ([[Sonnenstand:ss_civil]|0123456])) (set RL_Alle Runter, set pushmsg msg 'Homestatus' 'Alle Rolläden geschlossen')
DOELSEIF ([homestatus] eq "nachtdienst" and ([06:30:10-[Sonnenstand:ss_civil]|12345] or [10:00:10-[Sonnenstand:ss_civil]|60])) (set RL_Nachtdienst Hoch, set RL_Unterwegs Runter, set pushmsg msg 'Homestatus' 'Rolläden Nachtdienst geschlossen')
DOELSEIF ([homestatus] eq "unterwegs" and ([[Sonnenstand:sr_civil]-[Sonnenstand:ss_civil]|12345] or [10:00:10-[Sonnenstand:ss_civil]|60])) (set RL_Unterwegs Runter, set pushmsg msg 'Homestatus' 'Rolläden unterwegs geschlossen')
DOELSEIF ([homestatus] eq "ferien" and ([08:05:00-[Sonnenstand:ss_civil]|12345] or [09:00:10-[Sonnenstand:ss_civil]|60])) (set RL_Ferien Hoch, set pushmsg msg 'Homestatus' 'Rolläden Ferien geöffnet')
Danke
Gruss
Dennis
Zu 1., da würde ich einen weiteren Bedingungszweig einbauen, der bei Abwesenheit die gewünschten Rolläden fährt, und den anderen Zweig um die Prüfung auf Anwesenheit ergänzen.
Zu 2., grundsätzlich geht es immer so:
alt:
<Bedingung>
neu:
<Bedingung> and <zusätzliche Bedingung>
DOELSEIF <Bedingung> and !<zusätzliche Bedingung>
Hi,
Danke für Deine Antwort. Habe es leider erst jetzt gesehen, da ich unterwegs war.
Zu 1: Dann müsste ich aber eine neue Struktur für den neuen Bedingungszweig einbauen bzw. die Rolläden einzeln anfahren, richtig?
Zu 2: Auch hier müsste ich dann mit einer weiteren Struktur bzw. den entsprechenden Rolläden arbeiten, richtig?
Danke
Gruss
Dennis
Wie man das mit structure löst, kann ich nicht sagen, ich schalte meine Rolläden einzeln und verwende structure nicht. Ohne structure zu kennen, würde ich eine structure nur so groß machen, dass sie keine andere structure behindert.
Hi,
ja, vielleicht gehe ich doch wieder weg von einer Struktur und spreche die Rolläden einzeln an.
Danke DIr.
Gruss
Dennis