Integration Solar inverter huawei 2000L

My above sensor to calculate the house power is following the calculation logic of the card:

house_consumption_power = (inv_input_power - bat_charge_discharge_power - pm_active_power)

Yes you are right this sensor is optional …

But after thinking three times while relaxing by a cigarillo and a cup of coffee:
The house consumption is much more reliable by calculating in the following way:

house_consumption_power = (inv_active_power - pm_active_power)
      # Real house load
      #
      - name: house_consumption_power
        unique_id: house_consumption_power
        #friendly_name: "Power meter House power"
        state_class: measurement
        device_class: power
        unit_of_measurement: "W"
        icon: mdi:solar-power
        state: >-
          {% set inv_active_power = states('sensor.inverter_active_power')|float(0) %}
          {% set pm_active_power = states('sensor.power_meter_active_power')|float(0) %}
          {{ (inv_active_power - pm_active_power)|float(0)|round(0) }}
        availability: >-
          {{ (states('sensor.inverter_active_power')|is_number)
              and (states('sensor.power_meter_active_power')|is_number) }}

leading into the following when the battery is being loaded:

Assumptions:

  • When the Battery loading or discharging is finished, for me the inverter Input power is equal to the inverter active power, meaning both are reliable values.
  • The import/export values of Huawei Power-Meter are fitting more or less to the figures of the official figures of my energy provider’s meter => Huawei Power-Meter values seems to be reliable too …
  • Real House Load as stated above

Conclusion:

  • The bat_charge_discharge_power must be fine tuned to avoid this confusion
      #
      # Correction for Battery Charge/Discharge power (with efficiency loss)
      #
      - name: battery_charge_discharge_power_with_efficiency_loss
        unique_id: battery_charge_discharge_power_with_efficiency_loss
        #friendly_name: "Battery Charge/Discharge power"
        state_class: measurement
        device_class: power
        unit_of_measurement: "W"
        icon: mdi:solar-power
        state: >-
          {% set inv_input_power = states('sensor.inverter_input_power')|float(0) %}
          {% set inv_active_power = states('sensor.inverter_active_power')|float(0) %}
          {{ (inv_input_power - inv_active_power)|float(0)|round(0) }}
        availability: >-
          {{ (states('sensor.inverter_input_power')|is_number)
              and (states('sensor.inverter_active_power')|is_number) }}

Please let me know if I’ve missed something or in case I’m wrong.

2 Likes

It seems the way that the plant is configured in fusionsolar that the master device is the transmitter. Fitting an SDongle does require deleting the devices from the plant, and doing a recommission.
This lost my minute by minute history in fusionsolar, but it seems the daily history (and lifetime total) are ok. But I’m up and running!

I selected elevate permissions on installation, but it did not ask for the installer password (which is non default) - and my test of changing settings gives “Failed to write … SlaveFailure”.
Where can I check my configuration? (I’m new to homeassistant, but not to linux/editing config files etc)
I’m connecting via Sdongle

Thank you for your investigative work, much appreciated!

Where does the following graph come from?
image

I looked at the official data sheet of the inverter that you describe, but it doesn’t show this curve.

It is distinctly different from the efficiency curve of the datasheet of SUN2000-(2-8KTL)-L1 series on which I based my calculations. If the efficiency curve for your model is different, then it will of course make sense to adjust the calculations.

We should update the Wiki-post to make it clear that there are different efficiency curves for diffferent models of the

For those following along, my battery went into an off-line state at the same time as this was happening (I am not sure why - but it was at or near 0% power).
This morning, it is back online and these changes seem to be working. So onwards to my mission - which is to automate the overnight charging based on tomorrow’s solar prediction.
If anyone has any links to scripts they have made I’m still on my home assistant learning curve (though have been a professional programmer so once I find the right places to plug into I’m sure I’ll be ok and able to contribute back).
One of my colleagues believes that re-enforcement learning would be the best way to choose how long to charge the battery overnight, but I think some simple rules will be a good first step!

The efficiency graph is coming from “FusionSolar Residential Datasheet EU 230403”:

https://digitalpower.huawei.com/power-marketing/#/en/material/fusionsolar/detail/2839/1-496-506-591

Processing: FusionSolar Residential Datasheet EU 230403.pdf…

With the Wiki update we should wait for a couple of days.
I have the strong feeling that even the correction factor of 1.02 is to high.

            {# inv_input_power >= 1800 W - For above rated power of 6000 W #}
            {{ (inv_input_power * 1.02)|float(0) }}

But for sure:
input_power >= 1200 W for rated power of 6000 W will result at least in 100% Eficiency …

I will monitor and report.

1 Like

What is the best approach to calibrate the “inverter_input_power_with_efficiency_loss” sensor?

My actual try:

  # For Calibration of sensor.solar_energy_riemann Correction
  #
  solar_energy_riemann_quarter_hourly:
    unique_id: "solar_energy_riemann_quarter_hourly"
    name: "solar_energy_riemann_quarter_hourly"
    # friendly_name: 'solar_energy_riemann - Energy quarter-hourly'
    source: sensor.solar_energy_riemann
    cycle: quarter-hourly

  inverter_yield_quarter_hourly:
    unique_id: inverter_yield_quarter_hourly
    name: "inverter_yield_quarter_hourly"
    # friendly_name: ' inverter_yield - Energy quarter-hourly'
    source: sensor.inverter_total_yield
    cycle: quarter-hourly

Please advice.

Is it possible to increase the accuracy of “sensor.inverter_daily_yield” to at least 3 digits?

1 Like

I have no advice, as I have never bothered to try to get more accurate numbers. I don’t believe you can calculate very precise derivatives from the numbers reported by the inverter. However, when somebody in the community comes up with an improvement over the current “state of the art” I will document it.

All sensors report at the precision returned by the inverter, eg. no sub-Watt peecision is available for any sensor.

You have misunderstood the graph, the percentage of 100% is at the top of the graph, there are a total of six (6) horizontal lines and values 90-92-94-96-98-100. So efficiency is similar to the single phase inverter, about 98,5% for 600V and 98% for lower and higher voltages. You can’t have above 100% efficiency.

For my SUN2000-5KTL-L1, it seems the inverter has around 45 to 50W idle consumption. This is why energy discharged from battery is less compared to battery charged. If you use backup mode and inverter has reached the minimum SOC value to keep for backup, you can see that SOC drops at about 50-60Wh per hour. This includes the inverter idle consumption and the BMS consumption which is also around 10W. This is represented in fusion solar statistics.

I’m unable to find “Local O&M” in Settings → Communication configuration → Router connection settings

Inverter Model: SUN2000-10KTL-M1
Firmware: V100R001C00SPC153

i’ve this:

and not this:

what’s the problem? thanks

1 Like

The mentioned graph is really on an bad quality and is producing some irritations …

But as previously mentioned I’ve identified an Energy gain and not a loss for the new High Crurrent versions:

image

I’ve adapted with the following - needs to be verified again but seems to be working well:

      # ########## Start: Solar Yield (Power) with Efficiency Loss ##########
      #
      # For Riemann Integration:
      #     Solar Yield (Energy) with Inverter Efficiency loss
      #
      - name: inverter_input_power_with_efficiency_loss
        unique_id: inverter_input_power_with_efficiency_loss
        #friendly_name: "Inverter input power"
        state_class: measurement
        device_class: power
        unit_of_measurement: "W"
        icon: mdi:solar-power
        state: >-
          {# For SUN2000-3-10KTL-M1 (High Current Version) #}
          {# Check the Input Voltage of connected MPPTs #}
          {# Assuming an Input Voltage above 600 V #}

          {# Adjust this value to the rated power of your inverter #}
          {% set inv_rating = 6000 %}

          {% set inv_input_power = states('sensor.inverter_input_power')|float(0) %}

          {% if inv_input_power < (inv_rating*0.05) %}
            {# inv_input_power < 300 W - For above rated power of 6000 W #}
            {{ (inv_input_power * 1.00)|float(0) }}
          {% elif inv_input_power < (inv_rating*0.1) %}
            {# inv_input_power < 600 W - For above rated power of 6000 W #}
            {{ (inv_input_power * 1.00)|float(0) }}
          {% elif inv_input_power < (inv_rating*0.15) %}
            {# inv_input_power < 900 W - For above rated power of 6000 W #}
            {{ (inv_input_power * 1.00)|float(0) }}
          {% elif inv_input_power < (inv_rating*0.2) %}
            {# inv_input_power < 1200 W - For above rated power of 6000 W #}
            {{ (inv_input_power * 1.00)|float(0) }}
          {% elif inv_input_power < (inv_rating*0.25) %}
            {# inv_input_power < 1500 W - For above rated power of 6000 W #}
            {{ (inv_input_power * 1.00)|float(0) }}
          {% elif inv_input_power < (inv_rating*0.3) %}
            {# inv_input_power < 1800 W - For above rated power of 6000 W #}
            {{ (inv_input_power * 1.0038)|float(0) }}
          {% else %}
            {# inv_input_power >= 1800 W - For above rated power of 6000 W #}
            {{ (inv_input_power * 1.0064)|float(0) }}
          {% endif %}
        availability: >-
          {{ (states('sensor.inverter_input_power')|is_number) }}
      #
      # ########## End: Solar Yield (Power) with Efficiency Loss ##########

For sunny condition and NO charging/discharging at this hour:

“… You can’t have above 100% efficiency. …”

The above figures tell an completely other story and the util-meter comparison is clearly verifying that the efficiency correction factor of 1.0065 is valid.

Update for verification:


By definition, efficiency cannot be above 100%. Inverter cannot produce energy out of nothing. If it can convert incoming DC power from panels or batteries to AC without losses, then it can have 100% efficiency.
I don’t say what you count is incorrect, but it is obviously rounding errors or under-reporting of certain values that result in efficiency of above 100%, which is by definition impossible.

The inverter CAN go in overproduction, up to 200%. My inverter (10kw) have points up to 12kw (I have installed 12kwp panels).

overproduction is different from efficiency. Efficiency is: energy in DC => energy out AC. energy out AC / enegy in DC * 100 = efficiency percentage. It can’t be above 100% by definition.

Ah sorry, you’re right, I read too fast :sweat_smile:

I have 6.97kW in panels and a 5kW inverter.
While I am charging the batteries I managed to push the inverter all the way to 6.7kW.
I’ve managed to tweak my system to limit the charge power (while the Sun is full one) to extend the charging time, and so I can generate and export more. As soon as my batteries are full, the generation drops to 4.7 - 4.8kW and stays like that.

I assume the 5kW inverter is limited to 5kW DC to AC, but while charging the batteries (DC to DC) and exporting/using AC it manages to hike over the 5kW limit.

Jepp, the same situation for my setup:

7.8kWp in panels which can produce under good conditions more then 9kW
My 6kW inverter is charging with ~5kW the battery and the remaining 4kW will be exported.

In which way you have limited the charging power?
Really interesting approach, because dropping of energy by the inverter is producing heat (sometimes above 65°C).

This is correct, when it is DC-DC charging the battery it can take fully what the panels can produce however once the battery is full, with conversion to AC then the max is 5.5kw, that is the max you can set it the inverter
image

If you see less maybe you can raise this but do understand it would increase the heat output and on a hot day it might not reach this levels.

I am controlling the charge rate altering number.battery_maximum_charging_power
Regarding heating, I am using 2x 14mm PC case fans to cool my 5kW inverter. I placed the fans on top of the inverter, turning them on/off using an ESP32. The fans go on when the temperature reaches 45C and off when below 40C.
A friend of mine who has a 10kW three-phase inverter uses 3 or 4 14mm fans and manages to keep the temp under control most of the time.

2 Likes

Hello Joem, would you mind sharing more details on your fan installation. I would be quit interested in that but I’m new to HA.

Thanks in advance.