hatte mal wieder ein produktives Wochenende (letztendlich auch dank des „tollen“ Wetters) und habe meine „Dämmerungs“ Script mit der GD Library etwas gepimpt.
Funktion ist im wesentlichen altbekannt: es werden nach täglich nach Mitternacht diverse Dämmerungszeiten berechnet und auch gleich eine tagesaktuelle Grafik generiert. Es gibt auch noch die Möglichkeit zur Angabe von Limits und auch diese werden grafisch aufbereitet.
Auf die berechneten Werte kann man dann wiederum mit anderen Modulen verlinken…
Beschreibung und Installationsanweisungen habe ich wieder ins WIKI gestellt.
[Update 2011-11-21] - Anpassung 2.5
[Update 2012-03-17] - Eingliederung in die IPSLibrary
SUPER!
Ich habe mir das jetzt mal installiert. Das sieht toll aus und erfüllt augenscheinlich meinen Zweck (bin beeindruckt).
Wie kann ich nun auf die ermittelten Zeiten ein Ereignis auslösen?
Ereignis kannst Du auslösen, indem Du nach der Berechnung der Zeiten, jeweils einen neuen Timer auf diese Zeit definierts:
Einfach Stunde und Minute aus dem String extrahieren und einen Timer anlegen. Wie man den Timer anlegt, kannst Du Dir zB in der Funktion „CreateTimer_OnceADay“ im IPSInstaller Package ansehen.
hier meine Anfänger-Lösung, sicher nicht sehr elegant, aber funktioniert
(die Profis mögen mir verzeihen)
Beispiel Schalterskript (einschalten): (45906 ist hier die ID des Geräts)
<?
HM_WriteValueBoolean(45906, "STATE", true);
?>
Im Skripteditor rechts ein Ereignis hinzufügen (zyklisch, Datum täglich, Zeit einmalig, keine Zeit eingeben) wichtig ist dabei die Ereignis-ID, die anschliessend im Objektbaum unterhalb des Schalterskripts erscheint.
dann brauchst Du aus dem Objektbaum die ID´s der Dämmerungszeit (weather.IPSTwilight.Data) sunriseEnd , hier: 36020
und die Ereignis ID von oben, hier 37569.
das folgende Skript liest und formatiert die sunrise-Zeit und trägt sie beim Schalter-event täglich neu ein.
hier: Skript sunset mit einem Ereignis zyklisch, täglich z.B. um 12.00 Uhr .
OK, das ist schon mal was, aber gibt es nicht eine elegante Lösung beim Erzeugen der Variablen auch gleich für jede der Zeiten einen Timer zu setzen, dann könnte man die sofort benutzen.
Ich musste auch nochmal den neuesten Installer laden und dann klappte es wie am Schnürchen! Wirklich gute und saubere Arbeit, Andreas (krieg ich selbst so nicht hin)! … echt… !
Grüße, Benjamin
IPSTwilight ist nun auch in die IPSLibrary integriert und liegt auf meinem Developer Branch zum Testen bereit (Installation siehe auch WIKI)
Als Neuerung gibt es jetzt auch Callback Methoden, die jeden Tag zu den diversen Dämmerungszeiten aufgerufen werden.
Dort kann man seinen eigenen Code platzieren, der dann autom. zur jeweiligen Dämmerungszeit ausgeführt wird.