ioBroker / ioBroker.javascript

Script engine for JavaScript and Blockly
MIT License
320 stars 119 forks source link

Cannot calculate night for /Cannot calculate "nightEnd" #1580

Closed sansonifabio closed 1 month ago

sansonifabio commented 1 month ago

I'm sure that

Script type

Blockly

The problem

Warnung wird ausgegeben siehe Log

iobroker.current.log (in debug mode!)

javascript.0 2024-05-27 00:00:01.004 warn script.js.common.pushsafer.pufferschpeicher_55_66_grad: Cannot calculate "night" for xxxxxxxxxxxxxxx
javascript.0 2024-05-27 00:00:01.001 warn script.js.common.Eaton_USV_dachgeschoss.status_eaton__usv: Cannot calculate "nightEnd" for xxxxxxxxxxxxxxxx

Version of nodejs

20.13.1

Version of ioBroker js-controller

5.0.19

Version of adapter

8.4.0

mcm1957 commented 1 month ago

looks related to https://github.com/ioBroker/ioBroker.javascript/issues/1575

sansonifabio commented 1 month ago

@mcm1957 yes it's probably fixed but it doesn't work for me. Greetings Fabio

@mcm1957 ja ist wohl auch gefixt aber bei mir geht es nicht. Grüße Fabio

klein0r commented 1 month ago

@sansonifabio Der Fix ist, dass der Adapter damit klar kommt, dass keine Werte kommen. Die Tage sind aktuell so lang, dass die Sonne nie den Punkt unterschreitet, welcher für "Nacht" steht. Das war aber schon immer so.

Was ist denn das gewünschte Verhalten?

sansonifabio commented 1 month ago

@klein0r ich hatte vorher nie Warnungen, das sollte dann auch wieder so sein. Grüße und vielen Dank Fabio

paul53 commented 1 month ago

Wer "night" und/oder "nightEnd" im Skript verwendet, macht mit großer Wahrscheinlichkeit etwas falsch: Sonnenhöhe -18 °.

klein0r commented 1 month ago

@klein0r ich hatte vorher nie Warnungen, das sollte dann auch wieder so sein.

Wann? Letztes Jahr um diese Zeit ging das also noch ohne Warnungen? Unwahrscheinlich

sansonifabio commented 1 month ago

@klein0r also wenn du das sagts wird es wohl so sein. Ich hatte noch nie solche Fehlermeldungen erst als ich die letzte Stable Version geladen hatte ging es los. Warum sollte ich hier "blödsinn" erzählen ich hab weiss Gott besseres zu tun.

mcm1957 commented 1 month ago

@sansonifabio Komm mal ein wenig runter und trink nen Kaffee :-)

Niemand sagt dass du Blödsinn redest. @klein0r hat nur gefragt wann das Problem aktuell wurde. Und dass auch letztes Jahr um diese Zeit keine gültigen Werte für night bzw nightEnd berechnet werden konnten. Die gibt es nämlich (ja nach geografischer Position) schlicht und einfach nicht.

@klein0r Ist die Warning neu? Wäre es ev. eine Option die Warning schlicht und einfach wegzulassen und nur 'null' als value für einen nicht existierenden Wert zu liefen? Und DANKE dass du viel Zeit in den java-scrip Adapter steckst.

sansonifabio commented 1 month ago

@mcm1957 Unwahrscheinlich hat er gerschrieben oder nicht?

mcm1957 commented 1 month ago

@mcm1957 Unwahrscheinlich hat er gerschrieben oder nicht?

Ja und? Unwahrscheinlich heißt ja nur dass es nicht wahrscheinlich ist dass es letztes Jahr Werte für nicht / nightend gegeben hat. Zumindest keine gültigen. Die astronomischen Gegebenheiten haben sich gsD nicht allzusher verändert soweit ich weiß :-).

klein0r commented 1 month ago

Unwahrscheinlich hat er gerschrieben

Weil ich nicht wusste, wann die Warnung dazu gekommen ist. Dass die Zeitpunkte auch damals nicht errechnet werden konnte, geht ja nicht anders.

https://github.com/ioBroker/ioBroker.javascript/blame/25e54ddac5da8afcc8bb5e144c8ee3b6a197df5a/lib/sandbox.js#L1680C23-L1680C23

Die Meldung wurde in 38fc058c300128f319daef5641826db7733c04ce und cd1464a740614b91f4da7f605f7a288968b186e8 bisher nur angepasst. Existiert aber schon seit Version 4.3.4 -> e73e2433ec4a93a2429b599c240c364920e0710e

Also über 6 Jahre.

sansonifabio commented 1 month ago

@klein0r Matthias alles gut, ich will dir nichts, du weißt ich bin ein Fan von dir, unterstüzte dich auch etc. Ich bin ein 62 Jahre alter User der sagt das es so ist. Es gibt keinen Grund für mich dir irgendwas zu erzählen. Denn deine Zeit ist kostbar. Es ist wie es ist, ich hatte vorher nie solche Meldungen seit ich ioBroker habe.

Grüße Fabio

macpo commented 1 week ago

Wenn es keine "Nacht" gibt, handelt es sich nicht um einen Fehler, dass "night" und "nightEnd" nicht berechnet werden können. Ich würde hier eher erwarten, dass z.B. im Protokoll die Info kommt:

There is currently no night from an astronomical point of view. Therefore, "Currently no night" is entered in the two fields "night" and "nightEnd".

und in den beiden Felder der Wert "Currently no night" eingetragen wird.

klein0r commented 1 week ago

Ich würde hier eher erwarten, dass z.B. im Protokoll die Info kommt:

In der nächsten Version erscheint gar keine Meldung mehr im Log (da beschweren sich die Leute eh nur). Und der State wird dann nicht gefüllt und entsprechend das q-Flag gesetzt, damit die Trigger nicht auslösen.

macpo commented 1 week ago

Ist für mich persönlich in Ordnung. Ich glaube, dass eine Info über die fehlende Nacht dennoch die eine oder andere Rückfrage reduzieren wird. Mir ist die Meldung aufgefallen, da sie als Fehler ohne Begründung ausgegeben wird.

mcm1957 commented 1 week ago

m.E. ne gut Lösung. Es wird der passende Wert eingetragen - und der ist eben in dem Fall "nichts / kein Wert"

klein0r commented 1 week ago

Mir ist die Meldung aufgefallen, da sie als Fehler ohne Begründung ausgegeben wird.

Die Frage ist ja, ob die Fehlermeldungen das Problem genau erklären müssen. Das Thema ist ja nicht neu und existiert seit Jahren.

macpo commented 1 week ago

Die Frage ist ja, ob die Fehlermeldungen das Problem genau erklären müssen.

Technisch gesehen handelt es sich um einen Fehler. Fachlich ist es vollkommen korrekt, dass es keine Werte für die Nacht gibt. Je nach Sichtweise ist das eine oder das andere besser.

Wenn später die Nacht nicht getriggert wird, suchen die Leute nach dem Grund. Wenn sie ihn nicht finden, werden wieder Tickets erstellt. Eine entsprechende Info im Protokoll könnte hilfreich sein (wenn man denn dort nachschaut).

mcm1957 commented 1 week ago

Technisch gesehen handelt es sich um einen Fehler. Fachlich ist es vollkommen korrekt, dass es keine Werte für die Nacht gibt. Je nach Sichtweise ist das eine oder das andere besser.

Ein Fehler - zumindest ein Fehler des Adapters ist es weder logisch noch technisch. Es ist m.E. sogar richtig hier den Wert null / nichts zu setzen da es den Zeitpunkt eben nicht gibt.

Wenn später die Nacht nicht getriggert wird, suchen die Leute nach dem Grund. Wenn sie ihn nicht finden, werden wieder Tickets erstellt. Eine entsprechende Info im Protokoll könnte hilfreich sein (wenn man denn dort nachschaut).

Tickets werden so und so erstellt werden. Und auch das Verhalten dass der Trigger nicht kommt ist ja richtig. Wenn ich auf den 31ten des Monats triggere brauche ich mich im Februar auch nicht zu wundern dass der Trigger nicht zieht. Ich finde den Ansatz das Log zu schonen schon mal besser. Wenn die Nacht nicht getriggert wird sollte der vernünftige User sehen dass da kein Wert existiert. Wenn ein Issue erstellt wird, dann kann man das ggF rasch schließen. Nicht ein User hat sich übrigends hier beschwert dass der Wert nicht gesetzt wurde - es wurde immer über das Auftreten der Logmeldungen geschrieben. Und die sind nun mal weg :-). Außerdem löst das das Problem dass ein User den State benutzt aber durchaus damit rechnet dass er nicht gesetzt ist. Da kamen unnötige Meldungen die den Log füllten.

M.E. sollten wir es jetzt mal so lassen. Mathias hat wohl besseres zu tun als Stunden in Fehlermeldung oder Nicht Fehlermeldung oder deren Formulierung zu stecken. Gibt für alle Varianten gewisse Argumente - aber irgendwer muss dann entscheiden und dass hat Mathias nun mal getan.

klein0r commented 1 week ago

Wenn später die Nacht nicht getriggert wird, suchen die Leute nach dem Grund.

Das ist in den letzten ~7 Jahren wo ich dabei bin aber nicht vorgekommen soweit ich weiß.

macpo commented 1 week ago

Ein Fehler - zumindest ein Fehler des Adapters ist es weder logisch noch technisch. Es ist m.E. sogar richtig hier den Wert null / nichts zu setzen da es den Zeitpunkt eben nicht gibt.

Absolut. Sehe ich auch so.

...Wenn die Nacht nicht getriggert wird sollte der vernünftige User sehen dass da kein Wert existiert. Nicht ein User hat sich übrigens hier beschwert dass der Wert nicht gesetzt wurde - es wurde immer über das Auftreten der Logmeldungen geschrieben. Und die sind nun mal weg :-). Gibt für alle Varianten gewisse Argumente - aber irgendwer muss dann entscheiden und dass hat Mathias nun mal getan.

OK, ich gebe mich geschlagen. ;-)

PS: Danke für das Engagement!