NEWS
Errormeldung bei Javascript Adapter Start (Astro States)
-
Hallo,
wenn ich meinen Javascript Adapter neu starte, dann erwscheinen diese Meldungen.
javascript.0 2024-05-30 09:27:57.937 debug [sunTimeSchedules] Next: 2024-05-30T22:00:01.000Z javascript.0 2024-05-30 09:27:57.910 error [sunTimeSchedules] Unable to set state for astro time "night" javascript.0 2024-05-30 09:27:57.908 error [sunTimeSchedules] Unable to set state for astro time "nightEnd"
Was kann ich tun?
@haus-automatisierung glaube Du hattest das Implementiert, oder?
Was kann das sein? -
@ben1983 du wohnst in einer Zone, in der es im Moment keine astronomische Nacht gibt
Diese scheinbare Fehlermeldung wird in einer neueren Version ausgeblendet werden.Dazu gibt es bereits einige Threads
-
@ben1983 sagte in Errormeldung bei Javascript Adapter Start (Astro States):
Was kann das sein?
Eine Fehlermeldung, welche nur zu dieser Jahreszeit kommt (Nacht zu kurz). Ist egal. Nichts tun. Ist in der aktuellen Beta schon behoben
-
@haus-automatisierung Gibt es dazu schon eine Planung, wann das Problem behoben wird? Es scheint ja öfter aufzutauchen laut Forumssuche.
u.a. 2016 https://forum.iobroker.net/topic/2521/astro-funktion-night-gibt-keinen-wert-zurück
2015 https://forum.iobroker.net/topic/559/problem-astro-wird-nicht-ausgelöst
Dort ist auch ein älterer Beitrag verlinkt, der aber nicht mehr existiert.Das scheint sich schon eine Weile zu ziehen bzw. verursacht immer wieder Arbeit. Am Standort Berlin gibt es aktuell wohl keine. Allerdings ist es dann schwer, darauf aufbauend Skripte zu basteln. Und wenn es eine Lösung in der Beta gibt, wäre natürlich gut die korrekte Umsetzung noch testen zu können, bevor diese Situation vorbei ist.
-
@bjoern-1 sagte in Errormeldung bei Javascript Adapter Start (Astro States):
Gibt es dazu schon eine Planung, wann das Problem behoben wird?
Ist schon behoben. Die Meldung wird nicht mehr ausgegeben und der Wert leer gesetzt.
Was ist das erwartete Verhalten bzw. das "korrekte Verhalten"?Das aktuelle Verhalten ist ja korrekt. Nur die Fehlermeldung im Log nicht. Und die ist in der Beta schon raus.
-
@bjoern-1 sagte in Errormeldung bei Javascript Adapter Start (Astro States):
Und wenn es eine Lösung in der Beta gibt,
welche echte Lösung soll das sein?
@bjoern-1 sagte in Errormeldung bei Javascript Adapter Start (Astro States):
verursacht immer wieder Arbeit. Am Standort Berlin gibt es aktuell wohl keine. Allerdings ist es dann schwer, darauf aufbauend Skripte zu basteln.
Du kannst in allen Gegenden nicht sauber mit der astronomischen Nacht arbeiten, wenn es keine gibt.
Dann musst du eben für diese Zeiten einen fallback programmieren, der auf eine existierende (Astro)Zeit zugreift. -
@haus-automatisierung @Homoran
Eine Option, die ich mir gut vorstellen kann: Die Auswahl in einer Einstellung zwischen dem jetzt auftretenden Datenpunkteintrag NaN:NaN und z.B. einem manuellen 23:59 für diese Fälle, um bei aufbauenden Skripten mit Garantie eine auswertbare Zeit zu haben.
Bei IOBroker als ziemlich "deutschlastige" Software (wenn ich mich an ältere Übersichten zu den weltweiten Installationen erinnere), wäre das eventuell eine nette eingebaute Notlösung. Ich find Berlin jetzt nicht besonders weit im Norden und dennoch taucht das da auf. Wäre es Flensburg oder irgendwo in Skandinavien, wäre das durchaus nachvollziehbar, wenn auch nicht optimal. -
@bjoern-1
Macht m.E. keinen Sinn.Wenn ein Wert nicht existiert dann ist null / nan richtig. Warum da einen Phantasiewert einsetzen?
-
@mcm1957 Um nicht stattfindende, dadurch auszulösende Ereignisse mit Sicherheit stattfinden zu lassen. Wie gesagt, als auszuwählende Option.
Schaut man sich die verlinkten Threads an (ich habe nicht weitergesucht, es dürften noch mehr von existieren), scheint es da durchaus immer wieder Probleme zu geben, die man damit leicht beseitigt. -
@bjoern-1 Das kann man ja alles mit weiteren Triggern selber realisieren.
Einfach etwas am (erwarteten) Verhalten zu ändern würde auch viele Scripts in der Logik ändern. Den Adapter nutzen tausende Leute. Wie sollte man so eine Änderung argumentieren?
Das ist so, als ob deine Logik nur bei unter 15 Grad ausgelöst wird. Jetzt wird die Temperatur im Sommer nachts nicht unterschritten. Also bauen wir im Wetter-Adapter eine Logik ein, welche nicht mehr die Realität abbildet und immer eine Temperatur unter 15 Grad anbietet, oder?
-
@bjoern-1 sagte in Errormeldung bei Javascript Adapter Start (Astro States):
Ich find Berlin jetzt nicht besonders weit im Norden
deutlich weiter als Frankfurt, oder Kassel, was die Mitte von D repräsentiert.
und natürlich deitlich weiter nördlich als der nördliche Wendekreis oder der Äquator.Du erwartest eine
@bjoern-1 sagte in Errormeldung bei Javascript Adapter Start (Astro States):
korrekte Umsetzung
indem du jetzt eine falsche Uhrzeit für eine in der Natur nicht existierende Tatsache erwartest!??
Die astronomische Nacht ist nun mal keine willkürliche Bezeichnung, sondern international einheitlich.Nimm andere astronomische Ereignisse oder wenn dir das nicht reicht, kannst du willkürliche Zeitpunkte als feste Uhrzeit verwenden oder die frei konfigurierbare Variable
isDayTime
-
@bjoern-1 said in Errormeldung bei Javascript Adapter Start (Astro States):
@mcm1957 Um nicht stattfindende, dadurch auszulösende Ereignisse mit Sicherheit stattfinden zu lassen.
Sorry aber meinst du das ernst?Wenn ein Skript etwas bei Eintritt der Nacht tun soll, und keine Nacht eintritt dann DARF es nicht getriggert werden. Oder soll ein Skript dass auf einen Sturm reagiert auch mal kurz getriggert werden nur weil kein Sturm eintritt?
Ev. solltest du überlegen ob du nicht besser auf Dämmerung (zB. für Licht) oder fixe Zeiten (wenn 1x Tag) reagieren solltest.
-
@mcm1957 prinzipiell hast du Recht, aber die meisten werden das nicht verstehen! Es ist für den normalen Menschen auch nicht logisch, denn jeder weiß dass es immer eine Nacht gibt. Bei der Programmierung verlässt man sich auf Zeiten und die Bezeichnungen sind eigentlich nur Platzhalter für bestimmte Zeiten. Kein Mensch würde erwarten, dass eins dieser Platzhalter null wird. Ich würde dafür plädieren, dass immer wenn sowas null ist, die Zeit davor oder danach (müssen uns einigen) genommen wird. Die Zeiten dürfen einfach nicht null werden!
-
@ldittmar Das halte ich für eine unsaubere Lösung.
Wenn man astronomische Trigger benutzt, sollte man sich auch mit den astronomischen Gegebenheiten beschäftigen.
Wenn diese nicht das gewüschte liefern, muss man sich eben etwas anderes aussuchen.ich habe ja vorhin einige Beispiele genannt.
Warum muss es ein Azimut < -18° sein, wenn der nicht erreicht wird?
laut sonnenverlauf.de erreicht der Azimut in Berlin in der Nacht vom 21. Juni zum Nadir nur etwa -14,3
Dann triggert man dann eben darauf, oder auf den Nadir, oder, oder , oder....PS Berlin als nicht nördlich genug zu postulieren ist im astronomischen Sinne schon seltsam.
Die Grenze, bei der die astronomische Nacht zur Sommwrsonnenwende nicht erreicht wird, liegt etwa auf Höhe von Stuttgart...Ingolstadt. -
@ldittmar said in Errormeldung bei Javascript Adapter Start (Astro States):
@mcm1957 prinzipiell hast du Recht, aber die meisten werden das nicht verstehen! Es ist für den normalen Menschen auch nicht logisch, denn jeder weiß dass es immer eine Nacht gibt. Bei der Programmierung verlässt man sich auf Zeiten und die Bezeichnungen sind eigentlich nur Platzhalter für bestimmte Zeiten. Kein Mensch würde erwarten, dass eins dieser Platzhalter null wird. Ich würde dafür plädieren, dass immer wenn sowas null ist, die Zeit davor oder danach (müssen uns einigen) genommen wird. Die Zeiten dürfen einfach nicht null werden!
Ist m.E. falsch. Wenn es den Zeitpunkt nicht gibt kann man keinen Fantasiezeitpunkt einsetzen. Wir setzen auch keine temparsturwerte nach Gutdünken ein wenn ein Wettersensor keine liefert.
Mich würde interessieren welche Aktionen mit dem Kriterium Nachtbeginn laufen müssen und dass auch ohne Nacht sollen...
Wenn wer bei Dämmerung das Licht einschalten will will das in der Polarnacht ja wohl nicht auch tun. Und ich will gar nicht wissen wievuele Skripte erst seltsam reagieren wenn Nachtbeginn und Ende mit identischem Wert belegt sein würden.
Meiner Ansicht ist der Ist-Stand technisch OK
-
Und wenn wer heuistiktimes will steht es jedem frei einen eigenen State anzulegen und zu befüllen. Entweder Zeiten selbst berechnen oder die Astrozeiten nehmen und wenn sie einem nicht genehm sind eigene Werte bach Gutdünken einsetzen. An dem State kann man dann seinexSkriots (ind wenns sein muss sich selbst) aufhängen.
-
@homoran said in Errormeldung bei Javascript Adapter Start (Astro States):
@bjoern-1 sagte in Errormeldung bei Javascript Adapter Start (Astro States):
korrekte Umsetzung
Ich bin mir nicht sicher warum du das nun wiederholt zitierst, aber wie dem Text leicht zu entnehmen ist, bezog sich das auf die Aussage, es wäre in der Beta. In der stabilen Version rattert die Fehlermeldungen immer wieder rein, mindestens sobald man den Adapter neu startet. Im Herbst macht die Umsetzung dann allerdings nicht mehr viel her.
@homoran said
PS Berlin als nicht nördlich genug zu postulieren ist im astronomischen Sinne schon seltsam.
Die Grenze, bei der die astronomische Nacht zur Sommwrsonnenwende nicht erreicht wird,
liegt etwa auf Höhe von Stuttgart...Ingolstadt.
Auch hier verstehe ich den Tonfall nicht. Wie leicht nachlesbar ist, bezog es sich auf die "Kundschaft" des Tools und wenn dann die Höhe Stuttgart der Maßstab ist, dann ist das eine merkwürdige Einstellung.Insgesamt bin ich etwas irritiert, wie mit einem einfach Vorschlag bzw. einer einfachen Idee umgegangen wird. Einerseits der Hinweis "bastel einen Workaround" und beim Vorschlag wie es möglich wäre ohne das sich jeder einzeln einen bastelt, werden Formulierungen aus dem Kontext gezogen und ohne Bezug zum Inhalt nun mehrfach hier "zitiert". Und das, wo dieses Problem (inkl. korrekter Zitation/Verlinkung) nun schon seit Jahren immer wieder aufploppt.
Tschuldigung, kommt nicht mehr vor... -
@bjoern-1 ich habe den Eindruck du hast die gesamte Diskussion nicht verstanden.
es geht eben nicht darum einen "Workaround zu basteln", sondern sauber zu programmieren, weil das nicht existieren der astronomischen Nacht eine Tatsache ist.
und natürlich ploppt das immer wieder auf, weil immer wieder die Sonne im Sommer in großen Teilen Deutschlands die Elevation von -18° nicht erreicht
-
@bjoern-1 Das einzige „Problem“, welches in der stable-Version noch existiert, ist, dass es eben beim Berechnen einmal täglich eine Meldung im Log gibt. In der Beta kommt diese Meldung nicht, es wird aber ebensowenig eine passende Uhrzeit berechnet, weil es eben derzeit keine korrekte Zeit gibt. Also auch mit der Beta müsstest Du Dir mit einem Script helfen, denn auch dort lässt sich natürlich nicht auf Zeiten triggern, die man momentan einfach nicht berechnen kann.
Also ja, anstatt irgendeine „falsche“ Uhrzeit auszugeben erfolgt in stable und beta das einzig Korrekte: Es wird keine Uhrzeit berechnet, die sich nicht berechnen lässt. Einziger Unterschied ist die Meldung im Log. Aber was Skripte angeht ändert sich da absolut nichts.Gruss, Jürgen
-
@homoran said
Dann musst du eben für diese Zeiten einen fallback programmieren, der auf eine existierende (Astro)Zeit zugreift.
Mein Vorschlag war allein, dies 1x zentral zu regeln statt x Fallbacks und somit eine einheitliche Lösung zu finden, die das wiederholte Füllen der Logs mit Fehlern bei den Nutzern und das wiederholte auftauchen von Meldungen hier im Forum ein für allemal zu lösen. Sowohl für die, die der ganze Astro-Spaß nicht interessiert und die nur die Fehlermeldung sehen, als auch für die, die sich wundern warum ihr Rollo nicht runterfährt, weil sie sich nicht erst durch x Seiten im Netz lesen, um irgendwann die -18° zu finden und dann irgendwann auch eine Seite finden, die das für ihren Standort anzeigt. 2-Zeiler und ein Button um das freiwillig anzuschalten oder von mir aus eine beliebige Zeit eingeben zu können, wäre ja recht einfach zu implementieren gewesen, oder?
Wenn die "Lösung" ist, die Meldung auszublenden, dann löst das zwar das Problem im Log bei den Nicht-Interessierten, wer ein Skript im Spätsommer schreibt und sich dann plötzlich fast 1 Jahr später wundert warum das von heute auf morgen nicht mehr funktioniert, hat dann deutlich erhöhte Schwierigkeiten die Ursache zu finden - es gibt ja keinen Eintrag im Log mehr.
Aber wie gesagt, macht.