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?
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?
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?
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?
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.
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.
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?
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.
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.