Cumulative flag and daily energy totals


The reason I thought a c3 flag may exist was because of the name “c1” instead of the expected name “c”. Also the documentation I referenced above describing this flag specifically says it applies to v1 and does not mention v3. Perhaps you can update this?

Any comment about my 2nd paragraph? Is the energy accumulated in the last 5 min period of each day lost by PVO?

Sending t=24:00 records the last 5-minutes.

1 Like

But your documentation for the c1 flag says “The first add status for any given date will be used as the starting energy value and v1 will be reset to 0” so that would mean PVO would lose the energy for the first 00:00->00:05 interval at the 00:05 push. So are you saying that on midnight rollover I should send the values with the previous date + 24:00, wait a few seconds, then also send the exact same values but with a timestamp for the new day + 00:00?

The date parameter determines where the data point belongs -

The last 5-minutes of 20170601

  • d=20170601&t=24:00

The first 5-minutes of 20170602

  • d=20170602&t=0:05

You can send -

  • d=20170602&t=0:00

But it does not affect the data in 20170601

1 Like

But it will affect the data in 21070602 if I don’t immediately send that 20170602-00:00 push with the same values I sent for 20170601-24:00 because that 2nd push will reset the energy counters to zero. Otherwise, according to your docs as I say above, the energy counters will get reset on the next 5 min push at 20170602-00:05 and the days total energy values will be slightly lower. Is it not clear what I am getting at?

Use -

  • d=20170601&t=24:00 - Does not reset energy, records the last 5-minutes of 20170601
  • d=20170602&t=0:00 - Reset the energy for 20170602
  • d=20170602&t=0:05 - Record the first 5-minutes of 20170602

Good, so you are agreeing with me.

In summary, I have to push the same data twice within a few seconds, but with (day-1):24:00 and day:00:00 time stamps. A bit messy but I guess it works around the problem.


I implemented this as discussed here yesterday and it seems to work ok. However, I notice that my alternative system does not have Peak generation or Standby usage values shown presumably because I am only pushing v1 and v3, not v2 and v4 as well for the reasons I described in my opening post here. I can trivially compute and send v2 and v4 as well of course but they will be exactly the same as the averages PVO calculates so it is redundant to send them. Any reason you don’t display Peak and Standby values when v2 and v4 are not sent?

Please provide a link to the page.

Not keen to post the link here so publicly. This is your site isn’t it? Surely it is trivial for you to find my two systems. The Fronius* system is as installed by Positronic (except I set v4=PowerReal_P_Sum on the meter push because using the default PowerApparent_S_Sum makes no sense to me and reads way too high). The Fronius*-Pi system is pushed by my app. I added the redundant v2 and v4 this arvo. Peak and Standby then appeared at that push. If you want to try to debug this then let me know and I will take them off.

Can’t really help you without further information. We require the specific page, and data sent.


Hi bankstownbloke, I believe you can see the issue on my output, for the 5/08/2017:

I was uploading data from my fronius all day, just sending v1 & v3, c1=1. It calculated the average power nicely, but:

  1. The “Peak” and “Standby” labels / values aren’t there. On the 3/08/2017 they are visible, when I was also posting v2 & v4.

  2. This is only visible on the live feed unfortunately

  • the “Power Used” column values keep disappearing, they re-appear if you refresh the page or click the “live” link again.
    I suspect they vanish when the auto refresh kicks in.

To be clear, blackpaw is describing only 1 or the 2 issues I point out in this thread. The other issue is that when you set c1=1 then PVO resets the energy counters to zero on the first push of the day (as the documentation says) but that is flawed. It should subtract the last energy values ever received (which will be from previous day) from the first push values to calculate the starting day energy counts otherwise you lose that first push energy counts from the daily total.

I work around this by explicitly pushing a preceding 00:00 value a few secs before my first push of the day but clearly it is best if this was fixed on the server side.

Note I am saying “first push of the day” and “last push of the day” etc, instead of 23:55, 00:05 because some inverters only push in daylight hours and my logic works for these also.

Peak and standby power is based on the v2 and v4 values sent. They won’t be recorded if it is not sent.

This is a display issue since you’re not sending power, the refresh will update the table with blank. A full page refresh will calculate power values.

1 Like

Ok thanks,

Currently calculating the average values myself and posting them as v2,v4 - that works the best.

Just wanted to be sure I wasn’t missing something.


Sorry, this confuses me… :pensive:

If I have lifetime cumulative metering, does this mean that – for the midnight record – I need to submit one reading with the elapsed day’s date and time of 24:00, and then the same reading but with the next day’s date and a time of 00:00?

In other words:


If so, how long do I need to leave between the 24:00 and 00:00 updates?


1 Like

Yes, that is how I implemented it in my pusher. The time you post is the “end time” for the 5 minute energy count so if you think about it a push at “00:00” is really a push for the energy value for the 23:55 to 00:00 period just before it, i.e. for the previous day’s last period. So I intercept any time of “00:00”, change the time to “24:00”, and the date to (date - 1), and then push that.

The first push of the day is actually another issue. Yes, for 24 hour inverters you will need to push the same values that you pushed at “24:00” again for “00:00”. However, many inverters do not run until they are self powered up so my logic simply records the values for the last push of the day and then resends them just before the first push of the new day which works for the general case. So when I am about to send a push, I check whether this is the first push of the day and if so then I first send a “00:00” push with the starting counter values, wait about 20 secs, and then send the new push. I.e this will happen at 00:05 for 24 hour inverters but may be around 07:00 etc for non-24 hour inverters.


How long do you wait between the 24:00 and 00:00 updates?


I already answered that above. 5 mins after the 24:00 push I go to perform the 00:05 push and at that point I see that it is the first push of the day and so I first send a 00:00 push (with the last counter values recorded for the previous day, i.e. at 24:00 for a 24 hour inverter), wait 20 secs, then send the regular 00:05 push. The point is that 00:05 just happens to be the first push of the day for a 24 hour inverter. The same logic on a “daylight hours only” inverter will still work but that 00:00 push will not happen until 07:00 etc.

There is no wait, you can submit both at the same time if you wish.