lumapu / ahoy

Various tools, examples, and documentation for communicating with Hoymiles microinverters
https://ahoydtu.de
Other
953 stars 224 forks source link

[Bug] Alarm times one hour off #1099

Closed LeSpocky closed 10 months ago

LeSpocky commented 1 year ago

Platform

ESP8266

Assembly

I did the assebly by myself

nRF24L01+ Module

No response

Antenna

circuit board

Power Stabilization

Elko (~100uF)

Connection picture

Version

0.7.34

Github Hash

ac53925

Build & Flash Method

AhoyDTU Webinstaller

Setup

Two inverters, both start to slightly different times depending on sunlight conditions. Time set through NTP. Longitude/latitude set to Magdeburg/Germany.

Debug Serial Log output

No response

Error description

Alarm overlay entries show the wrong time. Attached are three screenshots which show it. I had a look at the webpage closely today between 6:00 and 7:00 local time, which is CEST currently. The inverter 0 started today at around 6:15 local time, the inverter 1 around 6:37 local time. The webpage however shows the related alarm events an hour later. Maybe there's something wrong in UTC to localtime conversion?

Screenshot_20230817_074711 Screenshot_20230817_074726 Screenshot_20230817_074739

knickohr commented 1 year ago

Die Frage ist, wann und wo wird der Zeitstempel gesetzt ?

Kommt der Stempel aus dem Inverter, dann ist es wohl eine Stunde zu spät. Kommt er aus der DTU (nach einem Reboot), dann ist es eine Stunde zu früh ! 🤔

So zumindest bei mir. Ich denke aber die Zeit gibt der Inverter vor und es wird nur einfach umgerechnet. In diesem Fall gibt also der Inverter schon die korrekte Lokalzeit aus, man dürfte daran nichts mehr ändern. Im Changelog sehe ich aber das an der Zeitberechnung was geändert wurde.

LeSpocky commented 1 year ago

Note: the difference between UTC and CEST is +2 hours. It is not CET with +1 hour here, we currently have DST until end of October.

btw: I was wondering how the DTU determines the localtime anyway? From the longitude/latitude? As far as I can see there's no timezone setting on the AhoyDTU webpage, right? Or does the browser do the correction based on browser settings?

lumapu commented 1 year ago

yes the correction is done by the browser. There is no timezone setting until now.

The inverter transmits a timestamp starting at 0 but I don't know which timezone is the base. You can simply check [IP]/api/inverter/alarm/0. For me it shows 14545. If you now paste this time to https://www.unixtimestamp.com/ then you will see that it will be GMT | Thu Jan 01 1970 04:02:25 GMT+0000. For me adding 2 hours looks correct. (the inverter only receives UTC time)

Edit 1: I've checked my DB for the entries of Power-AC. The timestamp gives me nearly the same time as the inverter start alarm: GMT | Thu Aug 17 2023 04:12:41 GMT+0000

Edit 2: The temperature has a better correlation: GMT | Wed Aug 16 2023 04:04:13 GMT+0000

knickohr commented 1 year ago

Aus der heutigen Release 0.7.36 :

IMG_1091

IMG_1092

IMG_1093

Das letzte Foto zeigt den Status der einzelnen Inverter. Da sieht man sehr schön, das irgendetwas noch nicht stimmt. Um 7:31 wahren sie alle schon wach und haben fleißig produziert. 6:31 stimmt wohl 😉

Der Timestamp 16284 ist wohl auch korrekt, wenn man daraus die Stunden und Minuten errechnet : 4:31 und halt eben unsere +2 Stunden dazu.

Wie kommt die GUI auf 7:31 ? 😲

lumapu commented 1 year ago

hmmm, mal schauen wie das sein kann 😇

lumapu commented 1 year ago

Problem gefunden 😀 Der Inveter liefert seinen Timestamp ja für den 01.01.1970. Wenn man für dieses Datum das Zeitzonenoffset berechnet, verwendet man automatisch Winterzeit, also +1 Stunde. Da wir aber aktuell Sommerzeit haben sollten es +2 Stunden sein. Leider wurden bisher beide Zeiten addiert sodass wir +3 Stunden hatten. Wird gefixt in der nächsten dev 0.7.37

knickohr commented 1 year ago

Ahhh, ich hätte daran denken können !

Ein gleiches Problem hatte ich in Node-Red mit der Uptime der DTU 😅

Hab’s nie hin bekommen. Hier hilft nur, manuell berechnen und sich nicht auf irgendwelche Funktionen verlassen 😱

knickohr commented 1 year ago

Purrrfekt ! 👍

Jetzt müssen wir nur noch die unbekannten Alarmcodes sammeln und heraus finden was sie bedeuten. Hatte eben einen 46 bei einem Inverter 🤔

lumapu commented 1 year ago

das gibt's bei OpenDTU schon eine Diskussion dazu:

https://github.com/tbnobody/OpenDTU/discussions/590

knickohr commented 1 year ago

Ja, die kenne ich schon 👍

Wie kommen die doppelten Einträge zustande ?

IMG_1094

LeSpocky commented 1 year ago

Mit 4d19e2d sehen die Zeiten heute früh erstmal korrekt aus. Für beide "Inverter start" Ereignisse wird jetzt eine plausible Zeit angezeigt.