Für meine Außenbeleuchtung brauche ich 3 Betriebsmodi:
1: Abends (von Sonnenuntergang & Luxwert <= 15 LUX bis 23 Uhr)
2: Nachts (von 23 Uhr bis Sonnenaufgang & Luxwert >= 15 LUX)
3: Tagsüber (von Sonnenaufgang & Luxwert >=15 LUX bis Sonnenuntergang & <= 15 LUX)
Das habe ich auch erfolgreich umgesetzt und seit Jahren im Einsatz mit der Logik (Screenshot) die ich als Bild angehängt habe.
Allerdings hat diese Logik auch so seine Schwachpunkte.
Nämlich immer dann, wenn ich nach 23 Uhr den Miniserver neustarte (durch Update oder Speichern eines neuen Programms oder Stromausfall etc.)
Nach dem Neustart ist dann immer der Betriebsmodus „Abends“ aktiv obwohl es eigentlich „Nachts“ sein sollte.
Das Problem ist wahrscheinlich, dass diese Logik darauf basiert, dass der vorherige Betriebsmodus beim Wechsel zum anderen Betriebsmodus diesen aktiviert und ich mit Zeit-Impulsen arbeite.
Da ein falscher Betriebsmodus zur falschen Zeit erhebliche Probleme in anderen Teilen meines Programms verursacht brauche ich unbedingt eine Logik, auf die ich mich verlassen kann und die immer den richtigen Betriebsmodus aktiviert.
Es geht also darum, dass das Programm ständig überprüft, ob es im richtigen Betriebsmodus läuft und auch dass nur ein Betriebsmodus gleichzeitig aktiviert ist.
Ich habe dazu jetzt auch schon mit einem Status-Baustein mit Entscheidungslogik experimentiert.
Allerdings scheitere ich an dem Punkt, wo ich überprüfen will ob es nach 23 Uhr und vor Sonnenaufgang & >= 15 LUX ist. Keine Zeitfunktion scheint mir geeignet dazu.
Haben die schlauen Köpfe hier im Forum vielleicht eine Idee wie ich das umsetzen kann?
Wahrscheinlich gibt es dazu eine ganz simple Lösung, auf die ich gerade einfach nicht komme.
Kommentar