Solis Inverter Modbus integration

Currently trying to intergrate two inverters into my home assistant server, my system comprises a 4g 3kw inverter installed in 2019, originally with a DS-LAN stick. I recently had installed a Solis RAI-3K-48ES-5G with the S2-WL-ST stick running firmware 10010119.

The S2-WL-ST and RAI work using the SOLAX modbus and Solis Modbus, but i could not get my 4g inverter to work using the original LAN stick. So i purchased a second S2-WL-ST stick and this does not work with my 4g there appears to be no MODBUS connection, the second S2 logging stick is running firmware 10010109. Could this be the firmware.

Anyone else facing the issue that the hybrid inverter won’t sent any data via modbus for some values (dc-power, produced kwh, dc current and voltage…) unless the battery is between empty and full?

I have a similar implementation of reading the values via modbus and then broadcasting the data on mqtt…

I had issues using a baud rate above 9600 in the server / client rj485.

I used the waveshare 4 channel rs485 and it worked a charm. .!

Only question is…I can’t work out which entities I should be using for the energy configuration?

I use entities that specify today’s values. Those values will increment and will be registered by HA every hour to produce the energy dashboard graphs.

Thanks.

Is there any way to make it more frequently give me live usage data.?

I am using 9600 baud rate, so not entirely sure why this happens. It somehow seems that with no BMS communication it goes half asleep.

I am requesting new data all couple of seconds which seems to work just fine. It is also sending and updating the current grid meter values which enables to control other devices with the inverter data.

I have modified the SolarMon to work directly with a Solis RAI-3K-48ES-5G. If your Solis inverter is like this one than I am happy to share the code. If enough people are interested I could publish it as a HACS package.

To be clear, the Solis RAI-3K-48ES-5G has onboard Wifi - it DOES NOT need a WiFi stick. Only what is required is that the inverter is visible on your LAN.

1 Like

Interesting, would be great to get some more details on how to set this up.

What is the update rate of the values? I think the official stick only requests data from the inverter every 5 Minutes which is not great if you try to control other devices with the available data.

Sorry for the slow response but I have been on holiday.

Update is every 30 seconds.

I’ll commit the code to git hub and add some instructions. Really need to create a HACS package but don’t have the time right now.

Interesting, have you got any source how to configure the “onboard wifi”?

I ran the Solis TechView apk in an Android emulator and monitored the network traffic with Wireshark.

Basically reads/writes registers in a similar way to modbus. I don’t really know modbus but the registers appear to be the same as in this document.

The code and discussion can be found here. It’s the zip file to download. Not the best use of github but it works.

I have not tested or tried setting at registers. This may or may not work.

The APK will ONLY WORK is directly connect to the WiFi access point. The default password for the direct connect is admin, admin.

On the web interface setup up the Network Setting->Network Connection 2 Setting to:
Protocol: TCP Server
Local Port: 8000 ← this is what is used by the integration.

Passwords for APK:
advanced user: solis123456
installer: solis123

2 Likes

My source code would include the reading of most of the relevant values because I have used that document to write my source code.

I don’t really understand how to turn on the wifi though.

I’m also not entirely sure if my inverter is 100% the same…

@Schorseg I would validate that you can connect with the APK first. If this works then your inverter, Solis RAI-3K-48ES-5G, supports WiFi without an WiFi addon.

I also assume, you can locally log into your inverter.

Does anyone know what combination of settings might give me the following 2 behaviours?

Charge from solar: charge the battery from any excess solar but don’t discharge it to cover loads

Discharge for loads only: cover loads with the battery but don’t charge it from any excess solar

Thanks

Usual Self Use mode:
Solar → load, battery, grid
Load ← solar, battery, grid

The Backup Mode (hybrid inverter) with Grid Charge off, and Backup SOC > battery SOC will do some of this, but all solar will go to the battery and all load will come from the grid.

Load will only be supported by the battery if not enough solar and battery SOC > Backup SOC thus charging the battery has priority.

Solar → battery, load, grid
Load ← grid, solar, battery

I think Solis docs say this is
Load ← solar, grid, battery

but my experience is otherwise.

Feed In Mode, with a charged battery should do this. Note that in Feed In mode, the battery is only charged when solar exceeds both the load and grid export capacity, hence you will need to charge it in another mode first.

Solar → load, grid, battery
Load ← battery, solar, grid

I’ve been trying to integrate Solis Modbus on HA. When adding the integration, I’m asked for the IP and TCP port for my inverter. I’ve tried adding the IP address for my Solis datalogger (attached to my Solis RAI-3K-48ES-5G) with no luck. I used the default TCP port 502. Is there something I’m missing? Sorry, just getting into this so likely a stupid question.

If you are using a data logger I cannot help as I don’t use a data logger.

If you are connecting directly I would recommend using the app first to ensure no network issues.

Hi, I need some help identifying the Solis inverter model name. I’m targeting register 33000 (Model No) and have obtained the hexadecimal value, but I need to map it to the corresponding Solis inverter model. For example, hex 0x0143 might represent the Solis RAI-3K-48ES-5G model. I searched online but couldn’t find a document with this mapping. I would be grateful if you could guide me in this regard. Thanks.

you might need to go near the inverter and scan for the network solis-xxxxxxxx(xxx being the serial n7mber). i only noticed that ours had when the app said to reboot and i noticed a wifi dongle port next to the data logger installed by the installers. got an antenna for it and is now able to connect directly to the inverter.