NEWS
Wann wird die Astrozeit wirklich getriggert?
-
Hintergrund der Frage ist, dass in dem thread Sonnenauf- und -untergang vom Vortag gesagt wird, dass die Astrozeiten um 00.31 Uhr getriggert werden sollen, da die Funktion einen Bug hat.
Ich triggere immer um 01:00 Uhr die Frage nach dem Datum von Sonnenaufgang und bekomme zu dieser Zeit immer das Datum vom Vortag. Triggere ich jetzt, dann bekomme ich das richtige Datum. Angegebene Längen- und Breitengrade sind korrekt eingetragen. Ist das ein ähnliches Problem mit der Sommerzeit, wie in der Konvertierungsfunktion, die wir hier besprochen haben und ich müsste für das korrekte Datum während der Sommerzeit um 01:31 Uhr triggern?
Ich könnte das jetzt debuggen, hab aber gerade Zeit und wollte etwas programmieren, da ist mir das mit dem Datum wieder aufgefallen, was ich schon länger klären wollte... -
Ich hatte heute Morgen auch ein Problem mit den Astrotriggern. Es wurden 3 Skripte, welche auf Sonnenaufgang triggern nicht ausgeführt. Log-Einträge gab es keine. Ich habe die JS-Engine heute nacht zwischen 0 Uhr und 0:30 neu gestartet. Kann da ein Zusammenhang mit dem Bug bestehen? Oder hätten die Skripte trotzdem (zu falschen Astrozeiten) laufen müssen?
-
Ich habe mal ein Miniscript laufen lassen, was die Astrozeit, jede Minute, ins Log schreibt.
Von 00:01 bis 01:35console.log('****AstroTest: '+ formatDate(new Date(), "YYYY.MM.DD") + ' ->> '+ getAstroDate("sunset", undefined, 0));
Hier der wichtigste Auszug:
2019-04-14 01:25:00.004 - info: javascript.0 script.js.Test.AstroTest2-1: ****AstroTest: 2019.04.14 ->> Sat Apr 13 2019 20:22:58 GMT+0200 (Mitteleuropäische Sommerzeit) 2019-04-14 01:26:00.021 - info: javascript.0 script.js.Test.AstroTest2-1: ****AstroTest: 2019.04.14 ->> Sat Apr 13 2019 20:22:58 GMT+0200 (Mitteleuropäische Sommerzeit) 2019-04-14 01:27:00.007 - info: javascript.0 script.js.Test.AstroTest2-1: ****AstroTest: 2019.04.14 ->> Sat Apr 13 2019 20:22:58 GMT+0200 (Mitteleuropäische Sommerzeit) 2019-04-14 01:28:00.009 - info: javascript.0 script.js.Test.AstroTest2-1: ****AstroTest: 2019.04.14 ->> Sat Apr 13 2019 20:22:58 GMT+0200 (Mitteleuropäische Sommerzeit) 2019-04-14 01:29:00.011 - info: javascript.0 script.js.Test.AstroTest2-1: ****AstroTest: 2019.04.14 ->> Sat Apr 13 2019 20:22:58 GMT+0200 (Mitteleuropäische Sommerzeit) 2019-04-14 01:30:00.013 - info: javascript.0 script.js.Test.AstroTest2-1: ****AstroTest: 2019.04.14 ->> Sat Apr 13 2019 20:22:58 GMT+0200 (Mitteleuropäische Sommerzeit) 2019-04-14 01:31:00.015 - info: javascript.0 script.js.Test.AstroTest2-1: ****AstroTest: 2019.04.14 ->> Sat Apr 13 2019 20:22:58 GMT+0200 (Mitteleuropäische Sommerzeit) 2019-04-14 01:32:00.019 - info: javascript.0 script.js.Test.AstroTest2-1: ****AstroTest: 2019.04.14 ->> Sun Apr 14 2019 20:24:38 GMT+0200 (Mitteleuropäische Sommerzeit) 2019-04-14 01:33:00.018 - info: javascript.0 script.js.Test.AstroTest2-1: ****AstroTest: 2019.04.14 ->> Sun Apr 14 2019 20:24:38 GMT+0200 (Mitteleuropäische Sommerzeit) 2019-04-14 01:34:00.003 - info: javascript.0 script.js.Test.AstroTest2-1: ****AstroTest: 2019.04.14 ->> Sun Apr 14 2019 20:24:38 GMT+0200 (Mitteleuropäische Sommerzeit)
In der Nacht vom 13.04.19 auf den 14.04.19 wurden die Astrozeiten für den 14. erst um 01:32 richtig gesetzt!
Der Fehler ist mir schon vor langer Zeit aufgefallen. Kann sein, das da Winterzeit war. Der Zeitpunkt lag da bei ~00:30 Uhr.In dem Zusammenhang ist mir damals noch ein wesendlich gravierender Fehler aufgefallen. Als ich den gemeldet hatte, wurde der recht merkwürdig abgeschmettert.
Ich lasse das alte Script nochmal laufen und schau mal ob der Fehler noch da ist. (Wovon ich ausgehe)
-
Vielleicht wird als Tageswechsel der astronomische Tageswechsel "nadir" verwendet ?
-
@paul53 sagte in Wann wird die Astrozeit wirklich getriggert?:
Vielleicht wird als Tageswechsel der astronomische Tageswechsel "nadir" verwendet ?
Glaubst Du wirklich?
"Als Nadir wird der, senkrecht unter dem Beobachter liegende Punkt bezeichnet, welcher zur Erdoberfläche einen Winkel von 90 Grad aufweist. Als Gegenspieler vom Nadir fungiert der Zenit. "
Hier gefundenUnd liegt der immer bei 0:32 bzw. 1:32 Uhr? Und gilt dann "nadir" vom Vortag?
-
@rantanplan sagte:
Und liegt der immer bei 0:32 bzw. 1:32 Uhr?
Nein, Nadir schwankt stärker und ist vom Längengrad abhängig.
-
@paul53
Na, dann fällt Nadir wohl aus.
Wenn man den Versatz kennt, kann man ja damit leben. Außer der Bug ist noch aktiv. Habe das alte Script mal wieder aktiviert und kann morgen berichten. -
@rantanplan
Die zeit könnte bei dir gut passen, dumwohnst noch ein wenig weiter östlich.
Bei paul wäre der nadir deutlich früherIch habe mich gerade geärgert!
Ich war sicher, dass ich ihn geloggt hatte dann hätte ich den wert verfolgen können.Sooo stark wie SU oder SA schwankt der nadir aber lange nicht
-
@Homoran sagte:
Bei paul wäre der nadir deutlich früher
Ja, aktuell um 1:07 Uhr. Die Schwankungsbreite beträgt ohne Berücksichtung von Sommer-/Winterzeit ca. 30 Minuten.
@Homoran sagte in Wann wird die Astrozeit wirklich getriggert?:
Sooo stark wie SU oder SA schwankt der nadir aber lange nicht
SU und SA sind auch zusätzlich vom Breitengrad abhängig.
-
Habe nun den Test nochmal gemacht. Fehler ist immer noch vorhanden.
So sieht das Blockly aus.
Habe "Nadir" mal mit ausgeben lassen. Und irgendwie hat es involviert.
Interessant an "Nadir" finde ich, das es immer die Nadir-Zeit vom nächsten Tag anzeigt.
Somit könnte man dies benutzen um den letzten Tag im Monat zu erkennen.
Wenn Nadir-Tag = 1 dann ist heute der letzte Tag von Monat x. Muss ich mal ausprobieren.
Aber das war Thema in einem andern Fred.Nun zu dem Bug. Der Trigger löst bei Sonnenuntergang aus.
2019-04-15 20:27:00.005 - info: javascript.0 script.js.Test.AstroFehler: ****Testscript wurde ausgelöst 2019-04-15 20:27:00.021 - info: javascript.0 script.js.Test.AstroFehler: ****Nadir = Tue Apr 16 2019 01:31:44 GMT+0200 (Mitteleuropäische Sommerzeit) 2019-04-15 20:27:00.021 - info: javascript.0 script.js.Test.AstroFehler: ****AstroTest: 2019.04.15 ->> Mon Apr 15 2019 20:26:17 GMT+0200 (Mitteleuropäische Sommerzeit) 2019-04-15 20:28:00.006 - info: javascript.0 script.js.Test.AstroFehler: ****Testscript wurde ausgelöst 2019-04-15 20:28:00.006 - info: javascript.0 script.js.Test.AstroFehler: ****Nadir = Tue Apr 16 2019 01:31:44 GMT+0200 (Mitteleuropäische Sommerzeit) 2019-04-15 20:28:00.006 - info: javascript.0 script.js.Test.AstroFehler: ****AstroTest: 2019.04.15 ->> Mon Apr 15 2019 20:26:17 GMT+0200 (Mitteleuropäische Sommerzeit)
Und stellt die Arbeit um 21:00 wieder ein. Alles so wie es sein soll.
Jetzt wird es 00:00 und er rennt wieder los!
2019-04-16 00:00:00.016 - info: javascript.0 script.js.Test.AstroFehler: ****Testscript wurde ausgelöst 2019-04-16 00:00:00.032 - info: javascript.0 script.js.Test.AstroFehler: ****Nadir = Tue Apr 16 2019 01:31:44 GMT+0200 (Mitteleuropäische Sommerzeit) 2019-04-16 00:00:00.032 - info: javascript.0 script.js.Test.AstroFehler: ****AstroTest: 2019.04.16 ->> Mon Apr 15 2019 20:26:17 GMT+0200 (Mitteleuropäische Sommerzeit) 2019-04-16 00:01:00.001 - info: javascript.0 script.js.Test.AstroFehler: ****Testscript wurde ausgelöst 2019-04-16 00:01:00.001 - info: javascript.0 script.js.Test.AstroFehler: ****Nadir = Tue Apr 16 2019 01:31:44 GMT+0200 (Mitteleuropäische Sommerzeit) 2019-04-16 00:01:00.001 - info: javascript.0 script.js.Test.AstroFehler: ****AstroTest: 2019.04.16 ->> Mon Apr 15 2019 20:26:17 GMT+0200 (Mitteleuropäische Sommerzeit)
Und wann hört er wieder auf? Richtig, 01:30 Uhr bzw. Tageswechsel oder Nadir -1
2019-04-16 01:30:00.031 - info: javascript.0 script.js.Test.AstroFehler: ****Testscript wurde ausgelöst 2019-04-16 01:30:00.031 - info: javascript.0 script.js.Test.AstroFehler: ****Nadir = Tue Apr 16 2019 01:31:44 GMT+0200 (Mitteleuropäische Sommerzeit) 2019-04-16 01:30:00.031 - info: javascript.0 script.js.Test.AstroFehler: ****AstroTest: 2019.04.16 ->> Mon Apr 15 2019 20:26:17 GMT+0200 (Mitteleuropäische Sommerzeit)
Dies war der letzte Eintrag.
Ich finde es schon sehr bedenklich, dass ein Trigger mitten in der Nacht anfängt, unerlaubt zu arbeiten.
Wenn es "nur" die Weihnachsbeleuchtung ist, könnte man es verschmerzen. Aber ......Wie schon gesagt, gemeldet hatte ich das schon mal. Hier im Forum und auf Git. Scheint aber keinen zu Interessieren.
Grüße
-
@rantanplan sagte:
Jetzt wird es 00:00 und er rennt wieder los!
Ja, weil Sonnenuntergang noch vom Vortag ist, aber die Uhrzeit mit aktuellem Datum.
-
@paul53 sagte in Wann wird die Astrozeit wirklich getriggert?:
@rantanplan sagte:
Jetzt wird es 00:00 und er rennt wieder los!
Ja, weil Sonnenuntergang noch vom Vortag ist, aber die Uhrzeit mit aktuellem Datum.
Ist schon klar. Aber für mich ist das ein heftiger Bug. Bin aber wohl der einzige der das so sieht.
-
@rantanplan sagte:
Bin aber wohl der einzige der das so sieht
Nein, das nicht. Allerdings liegt die Uhrsache wohl im verwendeten NPM-Modul "suncalc2", denn das Ergebnis von getAstroDate() ergibt sich direkt daraus. Die entscheidende Zeile im JS-Adapter ist
let ts = mods.suncalc.getTimes(date, adapter.config.latitude, adapter.config.longitude)[pattern];
-
Es liegt tatsächlich am verwendeten NPM-Modul suncalc2. Ich habe die gleiche Funktion, die der JS-Adapter verwendet, in einem Skript aufgerufen, in dem ich ohnehin schon suncalc verwende und das jede Minute getriggert wird, mit folgendem eindeutigen Ergebnis:
Somit ist meine Vermutung bestätigt, dass der astronomische Tageswechsel (nadir) verwendet wird.
-
Was für eine NPM Version hast Du?
Ich habe, glaub ich, eine relativ alte (v3.10.10) am Laufen. -
-
Na, dann zieht sich das durch und keine Änderung in Sicht.
Habe meinen alten Beitrag wiedergefunden AstroFehler.Der Test lief zur Winterzeit. Da war der Wechsel dann um 00:31 Uhr.
-
@rantanplan Habe PR auf Github erstellt. Der Fehler sollte in der nächsten Version des JS-Adapters behoben sein.
-
Super! Da bin ich echt gespannt. Danke!