Funktionen zu bestimmten Zeiten ausführen
Verfasst: Sonntag 6. April 2014, 18:02
Hallo liebe Gemeinde,
ich benötige eure Hilfe in Bezug auf ein Konzept. Und zwar möchte ich mit einem Script verschiedene Steuerungen schalten.
1) Es gibt 366 Zeitpaare - je Kalendertag die Zeit für Sonnenaufgang und Sonnenuntergang. Anhand dieser Zeiten soll eine Lichtschaltung ein- und ausgeschaltet werden.
2a) An bestimmten Zeiten am Tag sollen zudem mehrere Motoren für kurze Zeit (0,5-2 Sekunden) gestartet werden. D.h. diese Motoren werden immer zu gleichen Zeiten ein oder mehrmals am Tag aktiviert.
2b) Manche Motoren sind in Abhängigkeit von Punkt 1 zu sehen. D.h. z.B. 30 Minuten vor Sonnenaufgang wird Motor 1 kurz aktiviert; Motor 2 30 Minuten nach Sonnenuntergang...
Derzeit habe ich es so gelöst, dass in einem Array die Zeitpaare in vergangenen Sekunden des Tages gespeichert sind.
Ich finde das insgesamt irgendwie nicht so wirklich elegant gelöst (Punkt 2 ist noch gar nicht implemetiert). Entsprechend wird das Licht natürlich auch wieder ausgeschaltet.
Vor allem habe ich das Problem, was passiert, wenn die Stromzufuhr mal unterbrochen wird und das Script neu gestartet wird - z.B. wenn dies während des Dimmvorgangs passiert.
Naja, ich freue mich auf jede Anregung, wie ihr das am Besten umsetzen würdet.
ich benötige eure Hilfe in Bezug auf ein Konzept. Und zwar möchte ich mit einem Script verschiedene Steuerungen schalten.
1) Es gibt 366 Zeitpaare - je Kalendertag die Zeit für Sonnenaufgang und Sonnenuntergang. Anhand dieser Zeiten soll eine Lichtschaltung ein- und ausgeschaltet werden.
2a) An bestimmten Zeiten am Tag sollen zudem mehrere Motoren für kurze Zeit (0,5-2 Sekunden) gestartet werden. D.h. diese Motoren werden immer zu gleichen Zeiten ein oder mehrmals am Tag aktiviert.
2b) Manche Motoren sind in Abhängigkeit von Punkt 1 zu sehen. D.h. z.B. 30 Minuten vor Sonnenaufgang wird Motor 1 kurz aktiviert; Motor 2 30 Minuten nach Sonnenuntergang...
Derzeit habe ich es so gelöst, dass in einem Array die Zeitpaare in vergangenen Sekunden des Tages gespeichert sind.
Code: Alles auswählen
beleuchtungszeiten = [ (25836, 74095), (25875, 74113), (25914, 74128), usw... ]
while True:
aktuelle_zeit = (localtime().tm_hour*3600)+(localtime().tm_min*60)+localtime().tm_sec
(beginn, ende) = beleuchtungszeiten[localtime().tm_yday-1] # Hier wird aus dem Array anhand des Kalendertages die Zeiten für Sonnenaufgang und -untergang ausgelesen
if beginn < aktuelle_zeit < ende:
# Licht wird eingeschaltet (dabei wird ein Dimmvorgang über 15 Minuten vorgenommen)
sleep(60)
Vor allem habe ich das Problem, was passiert, wenn die Stromzufuhr mal unterbrochen wird und das Script neu gestartet wird - z.B. wenn dies während des Dimmvorgangs passiert.
Naja, ich freue mich auf jede Anregung, wie ihr das am Besten umsetzen würdet.