Integration Solar inverter huawei 2000L

It’s me again. I’m really struggling with this integration. Been a long time user of HA and have a fairly complex setup, but trying to integrate my Huawei solar system is driving me nuts. I have a couple of questions:

  1. Is it still necessary to access the inverter via its own access point? I have the dongle connected with an ethernet cable. As far as I understood from reading almost the entire thread, it should be possible to connect directly to the dongle via my home network, right? (The Modbus TCP interface is enabled).
  2. I already managed to get the integration going somewhat over my home network, but I only get the data from my second inverter. Regardless of what number I put after "slave: ", I only get numbers from the second inverter, not the main one.
  3. Would it be a better way to get the data via the Modbus: integration? If yes, how can I figure out the addresses of all the data I need?

Any help would be highly appreciated. I spent the last two days trying to get this working, but I just can’t.

Thank you very much for your answer, although I cannot understand what you are saying. why do you use a value of 2000? I have the smart power meter, although perhaps I am wrong in the meaning of the smart power meter values since I thought that value was what I was consuming from my company’s electrical network …

If you are using Emilv2 integration then
sensor.sun2000…. - solar energy production in Watts, just check history graph and you will see that after sunset it’s always 0.
end in attributes of this entity you will also have:
power_meter_active_power: current energy flow between home and grid, if it is negative then you are consuming energy from grid, if it’s positive, then you are sending energy to grid.
grid_exported_energy: total exported energy to grid
grid_accumulated_energy: total imported energy from grid

1 Like

Has anyone already tried version SPC126 on the dongle?

Quick info for those with multiple inverters: I was successful connecting to my main inverter by setting “slave: 16”. The inverters don’t get sequential numbers. You can check the id by logging into the main inverter and looking up the id under communication options. See here:

The remaining problem however is that the integration cannot setup multiple sensors for multiple inverters. But maybe @Emilv2 can help here?

1 Like

i’ve finally managed to get Emilve2’s integration working, it only took a couple of days of head scratching.

This morning I upgraded the firmware on the inverter and the dongle from 132 -->140 and 115 → 126 respectively, this was critical! It allowed me to enable modbus unrestricted in Fusion Solar and configure HA to connect to the dongle IP address, instead of the internal AP IP address. I spent most of yesterday setting up a TP-Link router with DD-WRT to bridge the 2 networks and while I was able to ping the internal AP’s IP address on port 502 from HA, the integration and Python3 commands wouldnt connect. This ended up being a waste of time and effort.

Once the integration was setup to connect to the dongle IP address it only created one sensor, so I used ligeza’s template config to extract the separate data values into individual entities.

This is probably one forum post where I wouldnt read from the beginning to get this working. The last 6 months of posts should be enough.

Thanks to Emilv2 and ligeza for doing the hard work.

I did exactly the same. Messed with an old TP-Link router and OpenWRT but couldn’t get it working. Now I’m also using the integration with directly connecting to the dongle. Problems that remain are that the integration can only read data from 1 inverter and also the sensors every once in a while become unavailable which messes up the graphs von the energy dashboard.

It may be useful to someone, but I use a wifi repeater to connect the SpDongle to my network. Since I have a poor WiFi coverage at the inverter, I placed the repater where the network signal is good and connected it to the inverter with a Lan cable. Works without any problems for 4 months.
I used the cheapest repeater for 8 EUR.

The HUWAWEI SUN2000 17KTL M0 pisses me off.
I think I’ve tried everything but I can’t get port 502 available.

I have:

  • SUN2000-17KTL-M0 with V100R001C00SPC140.
  • SDongleA-05 with V100R001C00SPC124.
  • Mobile phone operating system: Android 4.0
  • SUN2000 APP 3.2.00.015

I have tried to enable the MODBUS TCP.

But I don’t get this option available (step 6-7).

So the 502 gate is still closed.
I just downgraded back to SPC123 because I read here that it would work?
But I won’t be able to see if this is the solution until tomorrow (it’s dark now).
Does SPC123 only work via the LAN, or also via WIFI?
Can someone help me to solve this problem?

SPC123 has opened port 502 for LAN and for WiFi. So with this version it should work without changing anything in inverter settings.

The SUN2000 in this connection is fussy regarding answering to hosts even from the same network. Some tricks are needed for this :slight_smile:

I was testing both connections (internal SUN2000 AP and dongle/ethernet) and I have to say that ethernet is much more slower (talking about modbus response times of some register set) comparing to internal AP.

2 Likes

Thanks for your response, I’m curious if it will work tomorrow.
From the description it seems the inverter determines if port 502 is available :

● After the inverter is replaced, reconfigure the inverter;

● After the Dongle is replaced, you do not need to reconfigure the inverter.

Or is it the right combination of dongle and inverter firmware version?

I understand that with Home assistant you can also connect to the inverter via the internal WIFI?
How do you configure this (I just saw the answer above.)?

And can you still use the dongle WIFI/FE to connect to fusion Solar web?

Yeah I saw your above post. I have to say that it’s very strange that you don’t have the modbus config. For what its worth I am currently using this:
V100R001C00SPC139 (inverter)
V100R001C00SPC124 (dongle)
And newest Android APP at the time when I was configuring it.

The dongle version was irrelevant to configure the modbus. It is the inverter setting.
I was able to enable modbus with inverter SPC139 and dongle SPC123, then upgrade the dongle to SPC124 (modbus port was enabled so it was just working after dongle upgrade without touching this setting).

It doesn’t matter if you connect to homeassistant via internal wifi or dongle’s ethernet. It is just a matter of configuring slave ID in homeassistant configuration.

Yes - dongle is mainly used for FusionSolar cloud and the modbus is just additional feature added since SPC119 if I remember correctly (keep in mind that only single connection to port 502 is allowed at a time)

I don’t own an Android phone myself and had to ask a friend to change the setting.
Maybe the error was here (wrong android version and/or APP).
Finds it disturbing that there are so many dependents to make it work properly.
Getting it to work via the internal WIFI is also not exactly a user-friendly method.

The helpdesk made me believe that soon (coming weeks) this setting can be made via the fusionSolar web.

So I’m curious if this will actually be possible soon.
Next night there will be another update of the fusionsolar server I saw…

I know. I also tried to follow your article, but my router doesn‘t have a DD-WRT firmware available so I had to use OpenWRT. But it just doesn’t work. Even if I configure iptables manually as in your example. Will try to setup a direct connection to the internal AP with a Pi Zero. For now I will stick to the Ethernet connection via the dongle. But I have regular drop outs which is annoying.

Yes, I saw it after he posted, thank you.

As mentioned, it’s not really user-friendly to get it all together.

But we’ll keep going until it’s done.

Hi all!

I upgraded my SUN2000L-3.68KTL-L1 to the latest firmware 117 via the fusionsolar portal.
After reading through the last posts I also managed to add my recently bought dongle and upgrade it to firmware 126.

The problem i’m now having is that i’m unable to reach the settings page of my inverter to enable MODBUS TCP via the fusionsolar or sun2000 app.

If I dowgrade my inverter to firmware 115 I can reach the settings page in the app, but it then gives me the pop-up I should upgrade my inverter. Upgrading it to 117 makes it impossible again to reach the settings page. It seems to recognise the inverter, but I can’t connect to it.

Does anybody have a workaround for reaching the settings in firmware 117?

I do not know if it happened all of them, but after updating the inverter from 135 to 140, the name of the sensor changed from sensor.sun2000_3ktl_m1_hvxxxxxxxxxxx to sensor.sun2000_3ktl_m1_sun2000_4ktl_m_hvxxxxxxxxxxx. Because of this, it did not read the entities to me. Lan connection with SDongle v.123 still works.

Just to be sure, I updated my system to a similar situation.
SPC139 and SPC124.
But unfortunately no success.

Then when logging in to the internal WiFi, an upgrade to SPC140 was also forced on me.
I’m done with it in the meantime and have reported the problem to the helpdesk again.
It’s also frustrating that you need an android to run the MODBUS in TCP Enabable.
I only have an Iphone!
This should be possible via an android, iPhone or the web interface.

There is no other choice for me to wait for help from the helpdesk.

Hi, I successfully set up the inverter and dongle (last FW, modbus enabled), so the integration works in HA. I use total_yield_xxxxx value in solar energy production. Is it the right way to do it, or shall I create a template sensor from an attribute value?

it looks like i’m one step further, but now i get the following message.


This error originated from a custom integration.

Logger: custom_components.huawei_solar.sensor
Source: custom_components/huawei_solar/sensor.py:190
Integration: Huawei Solar (documentation)
First occurred: 4:40:52 PM (1 occurrences)
Last logged: 4:40:52 PM

could not get register ‘model_id’: could not read register value, is an other device already connected?


Logger: huawei_solar.huawei_solar
Source: /usr/local/lib/python3.9/site-packages/huawei_solar/huawei_solar.py:437
First occurred: 4:40:52 PM (1 occurrences)
Last logged: 4:40:52 PM

could not read register value, is an other device already connected?


Logger: homeassistant.components.websocket_api.http.connection
Source: components/websocket_api/connection.py:89
Integration: Home Assistant WebSocket API (documentation, issues)
First occurred: 4:40:48 PM (4 occurrences)
Last logged: 4:40:48 PM

[140286695092864] Received invalid command: energy/info

What else should I look for?