Integration Solar inverter huawei 2000L

Carlo, thank you! I had been pulling my hair out trying to guess the correct slave id, but I think this maybe the answer to my problems.

I have two inverters, with a battery attached to the primary, I’ve been able to poll data from the primary inverter with no problems, but whatever value for slave id I try I’ve been unable to get it to work.

I’m connecting via the WLAN on the primary inverter, so I believe this is the cause of my problem - can anyone confirm if they’ve been able to access data from both inverters, using only the WLAN on a single inverter (ie: rather than a dongle?)

This is something which would be useful to add to the docs as it’s not obvious there! :slight_smile:

I didn’t manage to connect to both inverters through the master inventer’s WLAN.
But it works great with dongle.

1 Like

Thanks for this - I may end up installing a dongle if it makes life easier…

all sensors code is there: Working with Huawei FusionSolar · Issue #95 · reptilex/tesla-style-solar-power-card · GitHub

1 Like

I’ve updated the FW and this integration doesn’t work anymore. The Modbus TCP option cannot be enabled with the new FW.

I have created a new sensor for the percentage of energy produced compared to “estimated energy production” for your system based on solar forecast integration. Forecast.Solar - Home Assistant
The code used is as follows, just add it to your configuration.yaml file.

#percentage of enrgy produced 
template:
  - sensor:
      - name: "Percentage of energy produced"
        unit_of_measurement: "°%"
        state: >
          {% set daily_yield = states('sensor.daily_yield') | float(0) %}
          {% set Estimated_production_today = states('sensor.energy_production_today') | float(1) %}

          {{ ((daily_yield /Estimated_production_today ) * 100) | round(1, default=0) }}  
        availability: >
          {{ states('sensor.daily_yield') not in [ unknown, unavailable, none ] and
             states('sensor.energy_production_today') not in [ unknown, unavailable, none ] }}

it will create a percentage of energy produced sensor. Which can used to gauge your system performance for that day.
image

It is not possible to read data from the second inverter if connected via Wifi to the first. In a RS485 network there can only be one master and this is the dongle. Slaves cannot read data from other slaves. Only the master can. So the dongle can read from all inverters, but if you connect to one of the inverters (via Wifi), then this inverter is a slave in the RS485 and cannot read data from the other inverter. You need two Wifi bridges to connect to each of the inverters (that’s how I have setup my connection right now).

Grazie mille Michele

Tomorrow I will try to implement it, we hope to succeed …

1 Like

Sorry for interrupting the discussion, but I encountered two issues.

1.) The Grid Charge Cutoff SOC can not be set in Home Assistant. These settings are double password protected in my Huawei Inverter. Is this maybe the issue behind? I have a regular installer access.

2.) This might be a stupid question but how can I manipuate the Maximum Charging Power under automation? Shall I do it via a template script? Can someone give me a short code snippet?

Many thanks

Nothing, I keep failing … :sob: :sob:

I am using inverter SUN2000-3KTL-L1 connected Energy Storage Battery LUNA2000. I intend to dynamically change your battery settings
I communicate successfully with the inverter over Modbus TCP/IP without dongle. I have using the Software version SPC115. I have successfully reading data from the registers such as Battery day charge, Battery day discharge, Battery total charge, Battery total discharge, Battery state of capacity etc.
However, we cannot write to any registers, we have always these errors
• Exception Response (134, 6, None) when I try to write to one holding register.
• Exception Response (144, 16, IllegalAddress) when I try to write to two holding registers.
Please have you any idea how to modify the battery parameters and write to some holding registers over Modus TCP/IP. I am not sure if maybe we should add the credentials used to connect to the inverter in order to write to registers or there is another problem. Please can you confirm?
Thanks you

I think there’s some mistakes in your sensor configuration:
we can start with first sensor:

first sensor it’s “input power”"
generation_entity: sensor.input_power

sensor.input_power is a Huawei sensor integration.

so, in your second graph on bottom (on left in my dashboard) I’ve this:

where:

type: custom:apexcharts-card
experimental:
  color_threshold: true
header:
  show: true
  show_states: true
  colorize_states: true
  title: PV Power Today
graph_span: 1d
span:
  start: day
apex_config:
  chart:
    type: area
  stroke:
    show: true
  dataLabels:
    enabled: true
  legend:
    show: false
  fill:
    type: gradient
    gradient:
      inverseColors: true
      type: vertical
      shadeIntensity: 0.7
      opacityFrom: 0.7
      opacityTo: 0.3
  grid:
    show: false
all_series_config:
  stroke_width: 1
  group_by:
    func: last
    duration: 15m
  curve: smooth
  type: area
series:
  - entity: sensor.input_power
    color: green
    extend_to: now
    name: PV Pw
    transform: return x / 1000;
    unit: kW
    float_precision: 2

this is what I’ve in my dashboard

1 Like

I need some help from the community (you guys!) to fix an issue with the time-values being reported. In my installation, the inverter reports incorrect values, probably related to DST issues.

Can a few of you take screenshots of the following things:

Home Assistant > History. Select ‘Startup Time’ for the time period ‘Today’. Does the moment when the value changes match with the value itself? In my case there it doesn’t: the startup time changes around 06:22 CEST, which is 04:22 UTC and not 05:22 UTC as reported by the integration.

My inverter is currently set to time zone +01:00 (which is CET), with DST enabled. This should equal to: CET+DST = CEST

Please include the time reported by your smartphone when submitting the screenshot.

This will help me understand the behavior of the inverter, and how I should implement the time zone handling.

Thanks in advance!

FYI: a fix for the incorrect shutdown time has already been submitted to the underlying library

Hi, I hope this is what you need
It seems I’ve same error.
I’ve added my fuse.
.


@wlcrs does your intergration works if connected via ethernet?

@yousaf465 Please read the documentation: Connecting to the inverter · wlcrs/huawei_solar Wiki · GitHub

1 Like

I went through after posting. So next question is there any way to do it with a simple esp32 in replacement to the tplink router running Openwrt? Currently I am using a Asus 68U running tomato to do this job but I do face signal issue with that setup

Hello guys… .

I would like to integrate my inverter, but I’m not able to… where do I start?

thanks

Here: GitHub - wlcrs/huawei_solar: Home Assistant integration for Huawei Solar inverters via Modbus

Hello, I’m following those variables in the historical graph. This gives you a visibility on the progression. Also the forecast is updated through the day.

Screenshot_20220430-113738|253x500