NEWS
Astro-Trigger mit Versatz funktioniert nicht
-
Hallo zusammen,
ich habe ein Skript, welches meine Gartenbewässerung steuert. Zum Ermitteln des Wasserbedarfs und das Setzen der Startuhrzeiten pro Ventil, soll dieses Skript täglich in Abhängigkeit des Sonnenaufgangs (bzw. Golden hour-Ende) ausgeführt werden.
Die maximale Gesamtlaufzeit aller Ventile beträgt knapp 5 Stunden, deshalb wollte ich folgenden Trigger benutzen:
Leider wird das Skript gar nicht ausgeführt.
Wenn das Skript mittels Cron zu einer festen Uhrzeit gestartet wird, funktioniert es. Die Ventile werden nacheinander geschaltet, und zwar so, dass das letzte Ventil zum Zeitpunkt „Golden hour-Ende“ fertig ist. Die Astrozeiten scheinen also grundsätzlich zu funktionieren.
In einem Testskript werden grundsätzlich die korrekten Zeiten geliefert:
Golden hour-Ende -300 Minuten liefert übrigens immer eine Uhrzeit am selben Tag. Es kann also ausgeschlossen werden, dass das Ergebnis 23:xx Uhr ist. Gibt es vielleicht ein Limit beim Versatz?
Danke für Hinweise bzw. Hilfe im Voraus!
-
@basic80
Bei minus Versatz bin ich mir nicht sicher, ob der Trigger hier so schlau ist und das berücksichtigt. Ich würde eher die Astrozeit davor nehmen und der Zeit aufschlagen. -
@Jan1 gemäß Blockly-Dokumenation sollte das möglich sein:
Die Astrozeit davor, z.B. Sonnenuntergang, hilft mir nicht weiter, weil ich möchte, dass das Skript genau 300 Minuten vor Golden hour-Ende ausgeführt wird und ich nicht weiß, wieviel ich zu Sonnenuntergang hinzuaddieren muss.
Ich habe andere Skripte, die einwandfrei mit Astrotrigger (und einem negativen Offset) arbeiten. Allerdings nicht in der Größenordnung von -300 Minuten. Ob die Zahl tatsächlich limitiert ist, könnte ich herausfinden durch -15, -60, -120, -180, usw. zu versuchen.
Alternativ könnte ich ein Hilfsskript erstellen, dass täglich um 00:00 Uhr ausgeführt wird und die Uhrzeit von Golden hour-Ende -300 Minuten in einen Datenpunkt schreibt. Dann die Aktualisierung dieses DP als Trigger für das Bewässerungsskript verwenden und damit einen Cronjob steuern. Das wäre allerdings etwas hässlich und umständlich.
-
@basic80
Die Fehlermeldung irritiert mich auch ein wenig, da das Script um 7:27Uhr Fehler wirft und das weit nach "golden hour ende" liegt, Du ja aber -300 Minuten hast.
Golden Houer Ende wäre bei mir in der Ecke heute um 6:11Uhr gewesen. -
@Jan1
Das Testskript wurde (unabhängig von Astrozeiten) um 7:27 Uhr von mir manuell ausgelöst. Ich habe dann über Debug output die Zeiten für Golden hour-Ende und Golden hour-Ende minus 300 loggen lassen.Der Output wurde im Skript als Error definiert, nur damit ich die Einträge im Log einfacher finde. Die Uhrzeiten im Log passen aber (Golden hour-Ende: 06:40:01 Uhr, Golden hour-Ende -300 Minute: 01:40:01 Uhr):
-
@basic80
Ok, jetzt habe ich es verstanden wie sich das bei Dir zusammen setzt. Ich hätte die Debug Blöcke auf Info gesetzt, hätte weniger verwirrt.
Dein Problem ist also "nur", dass das Script mit Astro Trigger nicht auslöst? Hm, da muss einer ran, der die Trigger mit minus Versatz wirklich verstanden hat, da das so funktionieren sollte. -
@basic80
Ich meine gelesen zu haben das Minuten hier ein Problem sein könnte. Probier doch mal deine Verschiebung in Sekunden anzugeben -
@FredF
Im Astroblock ist die Einheit (Minuten) fest definiert und kann nicht geändert werden. Wenn das ein optischer Fehler sein sollte und stattdessen Sekunden berücksichtigt werden, hätte das Skript doch zumindest 300 Sekunden vor Golden hour-Ende ausgeführt werden sollen? Das Skript wird jedoch überhaupt nicht gestartet. -
Mithilfe eines Testskripts habe ich inzwischen herausgefunden, dass bis 02:00 Uhr alles funktioniert. Wenn Golden hour-Ende minus x < 02:00 Uhr, wird der Trigger wohl ignoriert.
Um sicherzustellen, dass der Astrotrigger (mit Offset) wirklich nur bis 02:00 Uhr funktioniert und es keine andere Ursache gibt, wäre es schön, wenn jemand das mal testen könnte.
-
@basic80 said in Astro-Trigger mit Versatz funktioniert nicht:
Mithilfe eines Testskripts habe ich inzwischen herausgefunden, dass bis 02:00 Uhr alles funktioniert. Wenn Golden hour-Ende minus x < 02:00 Uhr, wird der Trigger wohl ignoriert.
Um sicherzustellen, dass der Astrotrigger (mit Offset) wirklich nur bis 02:00 Uhr funktioniert und es keine andere Ursache gibt, wäre es schön, wenn jemand das mal testen könnte.
Der Thread hier ist zwar schon uralt, aber ich bin gerade bei meinen eigenen Recherchen zum Astro-Trigger darüber gestolpert. Ich habe für das Verhalten eigentlich nur eine Erklärung: Bei der Berechnung der Datumsgrenze, also der Frage, ob der Triggerzeitpunkt auf dem heutigen oder dem gestrigen Tag liegt, wird intern die lokale Uhrzeit auf UTC umgerechnet. Da dein Beitrag aus dem Sommer stammt, dürften sich deine Zeitangaben also nach UTC+2 richten. Das bedeutet, dass "vor 2:00 Uhr" bei dir "vor 0:00 Uhr" nach UTC heißt. Ich teste jetzt mal selbst ein bisschen mit dem Astro-Trigger, um das zu verifizieren.