I forgot to comment about this. Note that the generation and consumption power values send by Fronius are a “spot” sample so largely of little value or meaning. E.g. you may turn the microwave oven on for 30 secs at the time the spot value is sampled so the consumption power value sent to PVO is much higher than the average power used over the complete 5 mins. So a “0” value doesn’t necessarily mean no power was generated/consumed over the period. It just means 0 was the value of the spot sample.
Thus the only meaningful power value to send each 5 min period is the AVERAGE power over that 5 mins but because we are sending the energy value that means that the average power can be computed by PVO itself (from the difference between current and preceding energy counts scaled by time) and thus we don’t need to send it(!). So my pusher originally only sent generation and energy counts, plus voltage. However PVO has another bug that it will not display standby values unless you send power values so I actually just compute the average power values from the energy value differences and send them redundantly.