Batteries on PVO?

When taking advantage of time-based feed-in tariffs, the formula consumption + battery power could result in a negative consumption number. I have no data between 6pm-7:15pm because I was exporting more than I was using.

I am trying to upload data that gives an accurate export/import, so I am pre-adjusting consumption by battery power before uploading. Of course, this can now result in negative consumption, which causes the upload to fail.

Do you have any suggestions?

Thanks.

sid=93768

What are the raw numbers for v4, v2 and b1 under this scenario?

{'d': '20251019', 't': '18:00', 'v2': 0, 'v4': 0, 'v5': 23.8, 'v6': 213.4, 'v7': 39, 'v8': 26, 'b1': -360.0, 'b2': 98.7, 'b4': 3246290, 'b5': 3183100}"
{'d': '20251019', 't': '18:05', 'v2': 0, 'v4': -3000, 'v5': 23.7, 'v6': 214.8, 'v7': 40, 'v8': 26, 'b1': -5880.0, 'b2': 96.2, 'b3': 24180, 'b4': 3246290, 'b5': 3183590}"
{'d': '20251019', 't': '18:10', 'v2': 0, 'v4': -3960, 'v5': 23.7, 'v6': 214.4, 'v7': 42, 'v8': 27, 'b1': -6960.0, 'b2': 93.6, 'b4': 3246290, 'b5': 3184170}"
{'d': '20251019', 't': '18:15', 'v2': 120, 'v4': -4440, 'v5': 23.6, 'v6': 209.8, 'v7': 44, 'v8': 27, 'b1': -6960.0, 'b2': 90.9, 'b4': 3246290, 'b5': 3184750}"
{'d': '20251019', 't': '18:20', 'v2': 120, 'v4': -3360, 'v5': 23.5, 'v6': 212.1, 'v7': 46, 'v8': 27, 'b1': -6960.0, 'b2': 88.2, 'b3': 24180, 'b4': 3246290, 'b5': 3185330}"
{'d': '20251019', 't': '18:25', 'v2': 0, 'v4': -5040, 'v5': 23.4, 'v6': 214.2, 'v7': 48, 'v8': 27, 'b1': -6720.0, 'b2': 85.7, 'b4': 3246290, 'b5': 3185890}"
{'d': '20251019', 't': '18:30', 'v2': 0, 'v4': -4920, 'v5': 23.3, 'v6': 207.9, 'v7': 50, 'v8': 27, 'b1': -6000.0, 'b2': 83.5, 'b4': 3246290, 'b5': 3186390}"
{'d': '20251019', 't': '18:35', 'v2': 0, 'v4': -5040, 'v5': 23.2, 'v6': 216.1, 'v7': 51, 'v8': 28, 'b1': -6000.0, 'b2': 81.2, 'b4': 3246290, 'b5': 3186890}"
{'d': '20251019', 't': '18:40', 'v2': 120, 'v4': -4920, 'v5': 23.2, 'v6': 213.6, 'v7': 52, 'v8': 28, 'b1': -5640.0, 'b2': 79.1, 'b4': 3246290, 'b5': 3187360}"
{'d': '20251019', 't': '18:45', 'v2': 0, 'v4': -5040, 'v5': 23.1, 'v6': 213.9, 'v7': 52, 'v8': 28, 'b1': -5640.0, 'b2': 76.9, 'b4': 3246290, 'b5': 3187830}"
{'d': '20251019', 't': '18:50', 'v2': 0, 'v4': -4920, 'v5': 22.8, 'v6': 214.1, 'v7': 53, 'v8': 28, 'b1': -5640.0, 'b2': 74.8, 'b3': 24180, 'b4': 3246290, 'b5': 3188300}"
{'d': '20251019', 't': '18:55', 'v2': 0, 'v4': -4920, 'v5': 22.4, 'v6': 219.3, 'v7': 53, 'v8': 28, 'b1': -5640.0, 'b2': 72.7, 'b3': 24180, 'b4': 3246290, 'b5': 3188770}"
{'d': '20251019', 't': '19:00', 'v2': 120, 'v4': -5040, 'v5': 22.2, 'v6': 209.5, 'v7': 53, 'v8': 28, 'b1': -5640.0, 'b2': 70.5, 'b3': 24180, 'b4': 3246290, 'b5': 3189240}"
{'d': '20251019', 't': '19:05', 'v2': 0, 'v4': -4920, 'v5': 22.0, 'v6': 214.2, 'v7': 54, 'v8': 28, 'b1': -5640.0, 'b2': 68.4, 'b3': 24180, 'b4': 3246290, 'b5': 3189710}"
{'d': '20251019', 't': '19:10', 'v2': 0, 'v4': -4920, 'v5': 21.9, 'v6': 209.6, 'v7': 54, 'v8': 29, 'b1': -5640.0, 'b2': 66.3, 'b4': 3246290, 'b5': 3190180}"
{'d': '20251019', 't': '19:15', 'v2': 0, 'v4': -3240, 'v5': 21.9, 'v6': 203.2, 'v7': 54, 'v8': 29, 'b1': -3840.0, 'b2': 64.8, 'b4': 3246290, 'b5': 3190500}"
{'d': '20251019', 't': '19:20', 'v2': 0, 'v4': 0, 'v5': 21.9, 'v6': 214.6, 'v7': 53, 'v8': 29, 'b1': -480.0, 'b2': 64.7, 'b4': 3246290, 'b5': 3190540}"
{'d': '20251019', 't': '19:25', 'v2': 0, 'v4': 0, 'v5': 21.9, 'v6': 213.8, 'v7': 51, 'v8': 29, 'b1': -480.0, 'b2': 64.5, 'b4': 3246290, 'b5': 3190580}"
{'d': '20251019', 't': '19:30', 'v2': 0, 'v4': 0, 'v5': 21.8, 'v6': 210.9, 'v7': 50, 'v8': 29, 'b1': -478.4, 'b2': 64.3, 'b3': 24180, 'b4': 3246290, 'b5': 3190620}"
{'d': '20251019', 't': '19:35', 'v2': 0, 'v4': 0, 'v5': 21.8, 'v6': 210.8, 'v7': 49, 'v8': 29, 'b1': -478.4, 'b2': 64.2, 'b3': 24180, 'b4': 3246290, 'b5': 3190660}"
{'d': '20251019', 't': '19:40', 'v2': 0, 'v4': 0, 'v5': 21.7, 'v6': 200.7, 'v7': 47, 'v8': 29, 'b1': -360.0, 'b2': 64.0, 'b3': 24180, 'b4': 3246290, 'b5': 3190690}"
{'d': '20251019', 't': '19:45', 'v2': 0, 'v4': 0, 'v5': 21.6, 'v6': 191.2, 'v7': 46, 'v8': 29, 'b1': -480.0, 'b2': 63.8, 'b4': 3246290, 'b5': 3190730}"
{'d': '20251019', 't': '19:50', 'v2': 0, 'v4': 109, 'v5': 21.6, 'v6': 184.8, 'v7': 45, 'v8': 28, 'b1': -335.4, 'b2': 63.7, 'b3': 24180, 'b4': 3246290, 'b5': 3190760}"
{'d': '20251019', 't': '19:55', 'v2': 0, 'v4': 0, 'v5': 21.5, 'v6': 170.2, 'v7': 44, 'v8': 28, 'b1': -480.0, 'b2': 63.5, 'b4': 3246290, 'b5': 3190800}"

Under this scenario, you’d like gross consumption calculated as

v4 = v4 - b1 ?

v4 = -5040 - (-5640)
v4 = 600

It would be best to handle this with a flag in the addstatus request e.g. &bc=1 so it won’t affect existing requests where this isn’t applicable.

hi, we just got shiny new PV system with battery (goodwe) installed last week and I would like to continue using PVoutput, which served me well for over a decade, to track production and savings.
Great to see that battery monitoring is available now, can anyone confirm if pvoutput can can calculate savings from battery system yet? (I know it can do this well for solar PV).

I’m currently exploring how to do this with Home Assistant but since I’m new to HA, the progress is quite slow

Not currently, but it would be a feature added in the future.

Installed 3 Enphase batteries, and now the PVOutput data doesn’t reflect imported power. Is there a way to correct this?

PVOutput would need to retrieve the battery data from Enphase, this would be separate enhancement in the future.

Aha. Any guesses when that might be? The system as it stands now isn’t useful to me and my ilk. I was really enjoying the daily cost calculation data.

Unfortunately a timeline can’t be provided at the moment.

Enphase is a little complicated given the battery data requires additional requests to Enphase and we are constriant by a total number of monthly requests, for all systems, which is quickly approaching its limits as more Enphase systems are added.

For testing purposes, do you allow PVOutput to make requests on your Enphase account? This is to sample the data and the number of requests will be kept to a minimum (1-2 per day)

I have a google sheet setup to pull my Powerwall data and upload to PVOutput…

Only just came across this thread but been hanging out for some battery support for a long time. So this is awesome news!

Currently my v2 includes battery output, and v4 includes battery input. I’m sure there was a reason I included output… but can’t remember anymore.

Anyway I just started logging the battery data into b1-6, and won’t alter my generation or consumption data yet… as I assume it will be manipulable later with settings. I guess I’d want v2 = v2 + b1, and v4 = v4 + b1… to remove battery outputs from generation and battery inputs from house consumption.

I’ve been logging my battery data since Feb 2023 in v11+v12. Is there a good way to copy that data to b1+b2… and once its all settled down, recalculate.

Thanks.

Been thinking about it overnight.

Power Used: I have been counting battery input and outputs in this figure from my server side. I shouldn’t have been counting inputs. It’s not used power, its stored power. I should still be counting outputs however… so realistically I’ve been double counting any battery power in my power used.

Power Generation: I have been counting battery outputs in this figure. However I think I did this because if I didn’t, then PVO would count the power used as imported, and I figured it was better to have incorrect generation stats than imported stats.

I guess I need to know what the implementation will be going forward, to determine what figures I will be sending into PVO with my battery stats.

If a feature could be added to manipulate large amounts of data (knowing that I could mess all my data up and it can’t be reversed etc) and queues / rate limits can be added to stop your servers getting smashed

  1. Start Date/Time
  2. End Date/Time
  3. Rule (to fix my data I’d use the following)

copy my extended data to battery data
b1 = v11
b2 = v12

remove battery input from power used
if(v11 > 0) v4 = v4 - v11

remove battery output from power generation
if(v11 < 0) v2 = v2 + v11

I’m not sure how the battery stats will eventually (or currently) effect net production calculations, so I’ll wait and see for now. My Generated is currently over reporting by the battery output, consumption over reporting by the battery input… but import and export are correct. Going back 3 or 4 years and fixing data would be great… but having accurate data going forward if probably more useful. I hope that made sense.

The Extended data rules should able to handle these calculations. It not possible to recalculate old data without reuploading which is limited ot the last 90 days.