Solis Inverter Modbus integration

Just wanted to thank @alienatedsec.

My installer requires I leave the datalogger connected for support / warranty purposes and simply piggybacking my HW-0519/ESP32 combo on the modbus lines kinda worked, it was not very reliable or Solis Cloud kept stopping I’m guess due to collisions.

As I needed something stable and solid for my, my father and my brother-in-laws inverters I gave his method a try and other than a small issue in getting into the devices at first boot (RTFM - they are set to the same static IP not DHCP) it just works. Not the cheapest, but i certainly get what I pay for now.

Fitted them in a 4 way metal DIN rail enclosure next to my inverter and once I put the conduit in for the cat6 cable - I have a POE switch in a rack the other end of my loft - then it will look like it should have always been there.


3 Likes

That is a really nice installation (thinking of your box for the datalogger and so on) nice work!

For testing purposes I only have my setup hanging in a cable right now, need to sort a more serious enclosure soon.

2 Likes

Nice work :slight_smile: @PistolPete

Please check the latest release as there are some changes to the config and firmware updates to Waveshare device. Release License change and Data Spiking mitigation · alienatedsec/solis-ha-modbus-cloud · GitHub

Are there many people in this thread who live in the United States who would be interested in buying one of these connectors? As mentioned, earlier in this thread, there’s a guy in the UK that sells them, but it would be about 30USD just for a single one. Meanwhile, Alibaba has them for a little over $1, but you have to buy a minimum quantity of 50. I’m debating just buying 50 from them and then making an eBay listing for the extras… but I would like to see if there’s much need for them here in the states, first.

I don’t think they are available, I’ve gone through all the obvious registers that resemble power and none of them tie in with PV generation that I can see. I would however love to be proven wrong! I have a Solax PV inverter and ended up using a spare PZEM module I had to measure it which has proven pretty accurate.

Hi all,

I have recently installen a hybrid inverter and put my entire house on the backup connection as my house doesn’t draw that much power. Added Pylontech Force L1 batteries and am reading the RS485 data straight from the com (gutted the wifi stick and used the contacts). Most reading however do not move. Backup power (modbus address 33148) sometimes gets close to my actual house consumption but mostly undercuts it by a lot - 110W real vs 40W reported. Also meter power and grid meter power both report 0W, which would be ideal in a self use scenario but small fluctuations seem inevitable to me. Also the battery data and battery bms data have conflicting data whereby one only gives voltage and the other one only gives current. And both Battery and AC current both are locked at 2,2A.

Does anybody have an idea how this weird behavior can be mended? Or perhaps the latest modbus registers. The ones I used are from march 2021 but I cannot image the addresses would change.

It might be worth sharing how your are trying to read the sensors that don’t return correctly.
As you can read the registers a number of different way. Signed / Unsigned 16 or 32bit registers.
The Inverter uses a mixture depending on which register you are trying to read.

It it helps…

I too have a Solis Hybrid inverter, and am pulling almost all of the inverter readings via modbus, as well as snooping the CANbus, and reading the Pylontech battery comms directly.

My experience with the Solis is that the power readings can be out by around 100-300W for several reasons.

In general, since energy can be neither created nor destroyed,
Solar PV + Battery Discharge + Grid Import = Load (main & backup) + Battery Charge + Grid Export.

Load for me being the house, not the backup. I have the backup circuit wired in, but not used. The inverter UI screen shows backup power of +5 - 7 W from time to time (just noise in the monitoring circuit). During strong solar PV this summer, I occasionally saw up to 70W reported (on an open circuit - so presumably a lot of noise).

Of note is that, whilst the solar, grid power, and battery power is monitored, directly connect load is not, so the inverter must calculate this from everything else. Timing issues (the grid power is read via the meter which samples at 1 second intervals) mean grid power in/out and hence load is not always correct.

Also, the inverter takes power for itself, around 40 W, or 60W when the UI screen is ‘on’. During solar PV generation this seems to be deducted prior to reporting solar power. Otherwise it is consumed from the battery/grid, and effectively added to the load, but not always. In talking with Solis last year the technician I spoke with insisted that all inverters power themselves from the DC side, hence non-hybrid shut down at night, and hybrid power from the battery. I have tested this fully, to the point of cutting off the battery, and hey presto, my hybrid inverter carries on running off the AC side. Either that or it has its own battery/generator. As the ‘load’ calculation seems to vary between adding in or not adding in the inverter self-consumed power, the load will be out by 40-60 W just from that.

My biggest issue has been with the battery BMS. I have two generations of battery, one with a tendency to continue to discharge when at the over-discharge SOC. At this point the battery BMS reports an outflow of 0.25 amp at 48 v (12 W by three units =36W) which I can corroborate against the battery SOC discharge rate overnight. The CANbus reports this (current * voltage) correctly, but the inverter insists on recording this as being around 120 W, which it dutifully tracks during the night. This inverter BMS power figure increases as the solar PV begins to fire up in the morning, so clearly there is either cross-talk between the various monitoring circuits, or the software is getting in a muddle.

For myself

  • I have not used the backup circuit for real, but I would expect noisy readings. This is a circuit effectively floating free depending on what, exactly, gets tied back down to ‘earth’.
  • I allow for the load calculation imbalance and write this off to noise/timing/inverter self consumption (see picture below)
  • I do not trust the inverter recorded BMS readings (particularly the BMS current) and use the CANbus readings directly

You can see that this morning I have around 150 W going somewhere other than load/battery/grid. I put this down to measurement error (~30W), the inverter self-power (~60W), losses in the battery discharge (~50W) and timing/rounding errors (~10W).

You will see that I am drawing zero from the grid.

For accuracy I have cross referenced my smart meter (I am in the UK and we have ‘smart’ meters that track the electricity meter every 15 seconds) with the Modbus power meter (using CT clamp on the grid connection) with the inverter readings. Yup, they mostly agree, most of the time. It is also worth noting that most of these monitoring actions require a CT clamp or large resistor somewhere, all of which work nicely when measuring a large voltage / current / power flow, but become inaccurate for very small readings. With zero grid flow (which happens a lot for Solar PV / battery support) the power readings could be +/- 10 W just from noise. I have to take my smart meter reading as the ‘true’ value, regardless of what my inverter reports, and I find that the inverter grid figures (both import and export) are a good 10% out over a full year.

Your other points regarding the exact registers will depend on your inverter model. Several of the registers are used for settings and not readings, so they will remain mostly constant.

Has anyone been able to control the import & export of the Solis Hybrid inveter with battery?

Want to force discharge/charge based on FiT.

@JoshC1994 There are plenty of ways to control it, you need a way to communicate with your inverter, the right integration, and automation around it. All of it is in the sources and earlier comments above.

Inverter control and FiT timed charge/discharge works well for me using this integration: GitHub - Pho3niX90/solis_modbus: Home Assistant HACS integration for Solis inverters

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.

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.