Enphase data at 00:00 are from previous day

While comparing my own enphase data with PVOutput data, I found a difference in the energy used data. Root cause is the data at 00:00 from the Enphase API.
This data is about the last interval of the previous day!
It is a timestamp issue for interval data: 00:00 at some date should actually be 24:00 at some date -1.
This is a known problem for timestamps. The concept of 24:00 is not implemented.
I corrected for this problem and thus see a difference for used energy. There is no problem for produced energy, nothing produced at 24:00.

This is not a big problem of course, there is no used energy lost, just moved in time…

I was getting a slightly different problem. The first data of the day at 00:00 is was being attributed to the next day, so I always had a reading in the live output for the end of the day dated the next day… I cured mine in my node red flow that uploads the data by gating the output off for 10 mins before 00:00 and 10 mins after.

Having a more detailed look, I can not match the exact data points received from the Enphase API for energy used. Root cause is that PVOutput data for energy used is averaged.

Energy used data is received every 15 minutes, produced data is received every 5 minutes. My input handler sets missing time points for energy used to None. Subsequent calculations handle these missing time points. Another cause (besides handling 00:00) why my data differs.

I think my data (used, net, export, import) is a little bit more accurate. But again no big deal…

Plotting the data is no problem with dash / plotly, no reason for me to create extra data point. I wonder, why the averaging is needed in PVOutput.

Looking at the excellent interactive plots of PVOutput, I understand now, why extra datapoints are inserted : selecting a time, now gives always data for energy used.

The only thing remaining that puzzles me, why averging of used energy, changes the data points received from the Enpahse API for used energy. These data points seem also to be averaged (kind of moving average).

Why not keep the Enphase API produced data points and only average the missing data times in beteween these data points?

Enphase API consumption data is every 15-minutes, so PVOutput needs to average these out into 3 x 5 minutes data points to align with the 5-minute generation data.

How are you uploading “consumed, imported and exported” data?

That is a question, I have as well. I am preparing a historical update for Enphase data. My plan for now it just to upload the raw Enphase data for consumption and production. Meaning the consumption data in 15 minute interval and production data in 5 minutes interval.