SolarEdge Battery data

SolarEdge Battery data can now be assigned to an Extended Parameter (v7-v12)

Current available data is -

  • Battery Power (watts, positive = charging / negative = discharging)
  • Battery SoC (percentage)
  • Battery Internal Temperature (Celsius)
  • Battery State (number 1-6?)


Example Extended Data config with Standard Overlays -

Resulting graph -

1 Like

Seeking same for Enphase battery data, I’ve created this new Enphase-specific topic.

1 Like

Thanks so much for your work on this, I have configured that extended data as this post explains and I am starting to see data logged.

With “state” data such as ‘battery state’ is it possible to display it as a state chart? Perhaps with a custom map? (A minor thing and probably for a different thread anyway).

I am seeing a battery state of 6, which is not documented in the SolarEdge API docs, do you see any reason to doubt that? Do others see that?

Does the Charge/Discharge power adjust the standard “Power Generated” data? It looks like it isn’t but I only just configured the extended battery data.

State charts aren’t supported, but it would still need map in the context of the rest of the Extended Data. While not visually useful, the state can be used for alerting.

The SolarEdge documentation -

batteryState - number - can be one of the following: 0 (Invalid), 1 (Standby), 2 (Thermal Mgmt.), 3 (Enabled), 4 (Fault)

Actual data coming seems to be -

  • 6 (standby)
  • 3 (charge)
  • 4 (discharge)

So perhaps the documentation needs to be updated.

There’s no adjustments being made, only the raw data is being logged.

Can you confirm that -

  • Generation = Battery Charge + Power Generation
  • Consumption = Battery Discharge + Power Consumption

This will be an opt-in config to enable the adjustment in case other SolarEdge sites are setup differently.

Enphase does appear to have battery API data, best to start a new ‘idea’ thread for this.

Can you provide some advice about the how to do the comparisons?

I downloaded data from pvoutput using the 'download" link from the daily output view.

There is no Column labelled “Power generation” or “Power Consumption”, did you mean to use the pvoutput data or data from solaredge portal?

How do you propose to do determine the battery charge discharge? Using the battery state to separate the data? Or max(battery_data,0) and min(battery_data,0)?

The closest I am getting to PV production from the downloaded CSV from pvoutput is the following

POWER_OUT + MIN(V10 , 0) + MAX(V10 , 0)

There is a little noise during dark evening when battery is discharging but plotting the data it looks OK(ish).

POWER_IN does not seem to need correction so far.


Those very early and late generation values can be zeroed out.

Even with the same timestamps the SolarEdge battery and inverter data don’t exactly align -


“timeStamp”: “2024-02-11 21:54:47”,
“power”: -840.0


“date”: “2024-02-11 21:54:47”,
“totalActivePower”: 825.345

Maybe that is the DC to AC conversion loss?

825.345 / 840 is approx 98.3% which sounds plausible I think (given the various things that can influence efficiency I would expect it to match datasheet figure)

ie Inverter reporting AC output power but battery reporting DC output power?

Seems plausible, but in the next 5 minutes inverter is higher than battery discharge -


“timeStamp”: “2024-02-11 21:59:48”,
“power”: -1258.0


“date”: “2024-02-11 21:59:48”,
“totalActivePower”: 1317.66

SolarEdge would probably have a better explanation for the discrepancy

I’ve put the question to them, let’s see.

So is there a way for PVO to report daily kWh generation now with SolarEdge inverter /battery combo? I set up the extended parameters as described but I’m not getting figures for generation that match the SolarEdge App (by some margin so not rounding / sampling differences)

Actually I don’t think so, from what I can tell there is an issue with the 5min interval data from the different API requests. The different data streams are not aligned, it means you get some anomalous data points if you try and combine the data sets.

If you download data from the extended data view you can see for yourself (or check if it you see what I see).
The nominal PV generation is equal to the POWER_OUT column added to the V10 column, I see the worse anomalous artifacts when the battery stops charging in the morning, But I also see “noise” during the middle of the night when the sun is long gone, a few Watts up to a couple of tens of Watts.

I haven’t heard back from SolarEdge yet, but I think this will be the explanation for the aboe mentioned Batter/Inverter power stats.

Getting this data logged is useful though, for instance I can see the battery temp over the day and given it affects warranty it is good to monitor it.

I suspect the solution to this is Version 2 of the API, but that needs a User API Key as well as a Account API Key, I am not sure if V2 API is available for all end users or even release to production yet. I plan to contact SolarEdge and ask them these questions when I have exhausted all other avenues (mainly because it would require more development work.

[edit] To see the misaligned data intervals you need to look at the raw data returned from the SolarEdge V1 API calls. The downloaded data from PVO rewrites/realigns the timestamps.

PVO Extended Data

Calculated PVGEN

SolarEdge Web Portal

@wooodlandssolaredge Can you download your data from PVO for a day, sum the columns and have a look how it compares (knowing one is 5min and the other 15min intervals)?

Thanks for the explanation.
Ok so I added Power Out to v10 for each 5 minute interval and multiplied by 5/60 (to convert to kWh) then summed the 5 minute figures for the 24 hr day.
On one sample day this gave me a figure 4.7% higher than the SolarEdge reported PV yield.
I can try a few more days to see if the “error” is always the same way and/or more or less significant but I guess <5% variation isn’t actually too bad depending on what one wants to use it for.

Would there be any way to build this calculation into what PVO does as it has all these figures?

Did you visually compare the curves? (A little tricky given the different time intervals)

I saw weird spikes on some days where the battery went in and out of charge and discharge modes. From what I could make out, seemed to do with misaligned time intervals.

Unfortunately I don’t have direct access to this SolarEdge data as this system is one of 4 owned by me and members of my family (I’m the retired nerd father!) and the SolarEdge battery one is our son’s.
I don’t think the minimal bottom line mismatch on a daily generation number is a problem for my purposes though.
It would be great if that could go on the standard PVO reports somehow.

It seems like I was lucky with the first day I chose with a difference of +4.84% on a SolarEdge calculated yield of 7.83kWh.
For the two previous days I have a -18.39% variation on a very low day of 3.39kWh and -9.18% for 8.46kWh.

This seems a bit wayward and unreliable. Admittedly these days in-mid Feb in the UK we have very unsettled weather with probably some rapid changes in instantaneous PV generation during 5 and 15 minute intervals. I guess that might explain the variations.

I’ll try to get some more detailed SolarEdge system sourced data and see what I can see.

Here is one day’s PVO derived generation curve where there was a -9.18% variation from the SolarEdge system number of 8.46kWh.

The peaks look reasonable as they would equate to something like 4kW off the roof in a sunny 5 mins