NEWS
Zeit Epoch in Iobroker
-
Hallo,
dies ist mein erster Post hier und ich hoffe, ich bin hier richtig.
Ich lese die Daten meiner PV Anlage über Node Red aus und schreibe die Daten als Objekte in den Iobroker. Jetzt liefert meine PV Anlage das Datum/Uhrzeit in Epoch-Seconds. Soweit kein Problem, ich habe allerdings den Verdacht, dass der Iobroker nicht richtig mit Epoch-Seconds umgehen kann, aber wahrscheinlich ist da irgendwo bei mir ein Denkfehler drinnen.
Wenn ich die Epoch-Sekunden mittels Blockly-Funktion "Convert date/time ..." auslese und mit 1000 multipliziere (weil das Datumsformat anscheinend Epoch-Millisekunden will) dann ist das Ergebnis jedes mal um eine Stunde falsch. Genauso, wenn ich zwei Epoch-Werte voneinander subtrahiere, dann ist der Wert ebenfalls um eine Stunde falsch.
Jetzt habe ich durch manuelles Eingeben der Werte herausgefunden, dass beim Iobroker eine Sekunde den Wert 500 hat und irgendwie verstehe ich das nicht. Grundsätzlich kann ich das in meinem Script leicht korrigieren, aber verstehen tue ich das nicht wirklich.
Vielleicht hat hier schon jemand die Lösung gefunden. Würde mich freuen, wenn mir das jemand erklären könnte, wie der Iobroker mit Datumswerten, Stundenwerten, etc. umgeht.
Vielen Dank und LG
Harry -
@hbouse sagte: mit 1000 multipliziere (weil das Datumsformat anscheinend Epoch-Millisekunden will) dann ist das Ergebnis jedes mal um eine Stunde falsch.
Ist im OS, unter dem ioBroker läuft, die richtige Zeitzone eingestellt? Was ergibt folgendes Testskript rechts im Log?
Für Zeitdifferenzen ist die Formatierungsfunktion nicht geeignet, da sie die Zeitzone berücksichtigt.
-
@paul53 die Zeit ist genau meine Ortszeit. Wie würdest Du es besser lösen?
Danke und LG
Harry -
@hbouse sagte: die Zeit ist genau meine Ortszeit.
Dann stimmt die Zeitzone und diese Konvertierung muss das richtige Ergebnis liefern:
Diese JS-Funktion mit Ergebnis verarbeitet Zeitdifferenzen für Werte, die vor dem 01.01.2000 liegen.
-
@paul53 said in Zeit Epoch in Iobroker:
@hbouse sagte: die Zeit ist genau meine Ortszeit.
Dann stimmt die Zeitzone und diese Konvertierung muss das richtige Ergebnis liefern:
Leider nicht, aber ich glaube, ich habe einen Teil des Problems gefunden.
Die Epochzeit 1684528093 ergibt May 19 2023 20:28:13 UTC/GMT. Genau hier liegt allerdings das Problem. Ich wohne nicht in Greenwich, sondern in der Nähe von Wien und hier ist nun mal GMT+2. Offensichtlich (wie Du ja vollkommen richtig geschrieben hast) bezieht Iobroker den lokalen Offset mit ein.
Ich nehme mal an, hier handelt es sich um einen "Bug" im Wechselrichter, der die lokale Epoch-Zeit fälschlicherweise in UTC angibt.
Die Zeitberechnung über Epoch im Iobroker verstehe ich immer noch nicht ganz, aber das ist eigentlich kein Thema für das Forum
@paul53 DANKE VIELMALS
LG
Harry -
@hbouse sagte: Die Epochzeit 1684528093 ergibt May 19 2023 20:28:13 UTC/GMT. Genau hier liegt allerdings das Problem.
Dann gibt die Formatierung mit ms die lokale Zeit (CEST) aus: 19.05.2023 22:28:13.
@hbouse sagte in Zeit Epoch in Iobroker:
"Bug" im Wechselrichter, der die lokale Epoch-Zeit fälschlicherweise in UTC angibt.
Das ist kein Bug: Die Epoch-Zeit ist immer UTC wie alle internen Linux-Zeiten (Zeitstempel).