Ich möchte eine Lampe über die CCU steuern. Sie soll morgens (06:30 bis Sonnenaufgang+40 ) und abends (Sonnenuntergang bis Sonnenuntergang + 180) leuchten, dazwischen aber nicht.
Dazu habe ich noch zwei Systemvariablen angelegt: Astro40 und Astro180, die beide zum Sonnenaufgang bzw -untergang mit der jeweiligen Verzögerung auf entweder morgens (=wahr) oder abends (=falsch) gesetzt werden.
Mein Programm sieht nun folgendermaßen aus:
Code: Alles auswählen
Wenn [Zeitstrg] Astro nacht [zu Zeitp auslösen]
ODER [Zeitstrg] 06:30 [zu Zeitp auslösen]
Dann: [Gerät] Licht [sofort] [Ein]
Sonst, Wenn [Systemzust] Astro180 bei [abends] [bei Änderg auslösen]
ODER [Systemzust] Astro40 bei [morgens] [bei Änderg auslösen]
Dann: [Gerät] Licht [sofort] [Aus]
Abends geht sie zur richtigen Zeit an, wird aber um Astro40 abends erneut eingeschaltet, ebenso um Astro 180 abends.
Mir ist bewusst, daß ich durch Aufsplitten des Programms in mehrere Teile das Problem gelöst bekomme - mich interessiert aber die Logik dahinter. Ich habe schon einige Themen und Seiten dazu durchgelesen, durchgestiegen bin ich aber noch nicht.
Für mich stellt sich das so dar, als wenn die CCU bei
- Sonnenauf- und Sonnenuntergang und
- jeder Änderung der beteiligten Variablen und
- den festen Zeitschaltpunkten
das Programm abarbeitet.
Sobald dann eine der Bedingungen zutrifft wird der entsprechende Dann-Teil ausgeführt.
D.h. das Programm wird immer dann angefasst, wenn irgendetwas mit einer der beteiligten Variablen passiert.
Umgekehrt: Das Programm wird öfters durchlaufen als man vermutet - nicht nur dann, wenn sich eine Variable auf einen bestimmten Wert ändert.
--> Ist das so korrekt?
Viele Grüße,
Andreas