Universal Solar Inverter over Modbus RS485 / TCP custom_component (Growatt, Sofar, SolaX, Solis)

Thanks for the translation.

When you are on the integrations page have you tried Ctrl + F5 to refresh the browser. When you go on “Add Integration” is it listed then when you search for SolaX?

Hi Will,

OK, I’ll do that shortly. The only settings at the baud rate and the rs485 address. This was set to 4 but I could not get a solid link and so set to 1 as per infradom’s setting. This got a. Stable link

At the moment the integration will only work if unit is set to 1. So if it was set to 4 on the Inverter it wouldn’t work. Hopefully setting the baud to 115200 on the adaptor will make it start working with 0.4.11

Thank you, I wasn’t aware that those were cached after a restart too :expressionless:
I now have the Integration set up, the state for all sensors is “Unknown” but for me this is a problem for another day. I’m already happy I got that far since finding out how to set everything up and searching for a way to actually get data from the SolaX device was really painful :smiley:

Do you know what version Inverter you have and what’s your connection method?

If you look in the Wiki on my GitHub there is a page showing the different Inverter types. You can also match up the first 4 characters of your Serial Number (called seriesnumber in the integration) the get an ever better idea which Inverter you have.

It’s a X3 Gen3 connected via the LAN port, but I might have found the problem: I was still connected to the device with a tool to read the modbus data. I have data readings now!

Glad you are sorted.

When you get a moment can you read this discussion if your Inverter starts with a different 4 character Serial Number or your Battery Charge / Discharge Max Current is different could you let me know please?

Gen3 X3-Hybrid (Three Phase)
Serial: H3UE
Battery Charge / Discharge Max Current: 25Amps

That’s what I have too.

Ok thanks, I just wanted to check it wasn’t an unknown one, as eventually I want to move away from all these tick boxes on setup and configure it based off the Serial Number.

Hi Will,

Sadly no joy, still all I get is the serial number. Everything else is ‘unknown’
I removed all, rebooted, reinstalled in HACS, rebooted, reinstalled the integration, and rebooted

Mark

Just a thought, I had assumed I have a Gen4 as I have pocket LAN and the connections layout is the same as your wiki.
I’d taken the serial number to mean it is the 3.6kw version.
Anyway, I’m confident I have a modbus connection, it takes a few seconds for the serial number to appear while it is establishing the link.
If you want to tell me what I need to mod, to search for the outputs, I can have a go and feed back any successes? However you like really.

It should just work, people have used my packaged version in the past homeassistant-config/solax_x1ac_group_read.yaml at f4f113cf4ad54914970845c2ae7066fbfb634ca5 · wills106/homeassistant-config · GitHub before I created the integration.

The X1-AC should share the same registers as the Gen3 Hybrid, just with the PV bits removed.
It’s as if something has been setup to block any of the input registers from being read.

Silly question: are you sure your inverter does not listen to tcp over modbus on port 502 ?
If this is the case, you dont need the waveshare adapter and can configure the IP address of your inverter instead.

The X1-AC doesn’t have built in ethernet.

Seems only the Gen2 & Gen3 Hybrid and the X1-Retro Fit has built in Ethernet.

Do you have access to an RS485 to USB adaptor?

Might be worth trying one in case there is an issue with your Waveshare or still a config option wrong with it?

@HVG I have a trouble shooting favour to ask.

I have two open issues on my GitHub.

Could you please confirm what version of my Integration you have installed?
Did you install 0.4.11 or 0.4.13?

Can you change select.solax_charger_use_mode without it reverting back to the previous option?
For example if you are in Self Use Mode and change to Force Time Use. Does it stay in Force Time Use or revert back to Self Use Mode after a short period of time?

Hi Will.
I’ve tried disconnecting the RS485 from the inverter, and it doesn’t obtain a stable link. With it connected it does.
When I get a stable link it shows the serial number on that sensor. I have enabled all the sensors and this is the only one that displays data.
All the lights are doing what they should. I can’t see a reason to suspect the device has an fault.

In desperation, I tried your package for the X1AC_group_read and that works. So all good I guess!

Maybe we are upsetting the X1-AC by trying to read too many registers that don’t exist on it?
I started to convert X1AC_group_read into a cut down Integration yesterday. I’ll try and finish it off tomorrow.

Hopefully that should work the same as X1AC_group_read

1 Like

Thanks Will.
All I need to do now is work out how to get it running! I want to try and stop the overnight force charge early if I know I’ll be generating a lot of solar power the next day. Going to be fun!

I have done a very cutdown X1-AC-Test-5

What I noticed just going from 0.4.13 to X1-AC-Test-5 was that was it didn’t fully replace 0.4.13

So I removed the Integration from the Integration page. Deleted SolaX out of hacs. Mde sure there wasn’t a solax_modbus folder in custom_components and then downloaded X1-AC-Test-5 through HACS rebooted then added the Integration through the Integration page.

Don’t forget you also need to rename solax_x1ac_group_read.yaml to solax_x1ac_group_read.yaml.old or something to disable it.