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

OK, removed all. Reinstalled test 4, reinstalled integration, and serial number is showing, but the rest blank. And restarted HA at each point

Just been back through the packages I have created previously…

The X1-AC should be the same as the Gen3 just with less registers / sensors.

When you tried 0.4.x previously what exactly did you have selected on the config page?

If you go back to 0.4.11 you should only need the following set. As you are using a RS485 - Ethernet adaptor you don’t’ need any of the RS485 / Serial port setting other than the default.

I don’t know if previously setting it to Gen4 X1 has thrown it by trying to read a register that doesn’t exist at all?

If going back to 0.4.11 and selecting Gen3 X1 doesn’t work I’ll have to do what I suggested and scan 10 registers every 50 of so till we see data. Assuming all of the RS485 stuff is connected and setup correctly.

Hi Will,

Gone back to0.4.11 and set gen3x1 as described and still only the serial number.

Try changing the baudrate to: 115200 on your adaptor and giving 0.4.11 another go with Gen3 X1
When people have used my solax_x1ac_group_read.yaml previously that’s the baud rate they have set.

Also on your Inverter, when you goto settings and RS485/Modbus what’s in there?

Hello,
I’m fairly new to HA so this might be a redundant question, but I haven’t found anything on the topic or the github documentation: I have downloaded the latest stable version and put the solax_modbus folder from the zip under /config/custom_components and restarted HA, but I still can’t find anything under Integrations to add - do I need HACS to use this or am I doing something wrong here?

By the way: you might want to use this for your translations as de.json…

{
  "config": {
    "step": {
      "user": {
        "title": "Definiert die SolaX Power Wechselrichter Modbus-Verbindung",
        "data": {
          "host": "Die IP Adresse des SolaX Power Wechselrichter Modbus Geräts;fßr serielle Verbindung: localhost",
          "name": "Das Präfix, das fßr die SolaX Power Wechselrichter Sensoren verwendet werden soll",
          "port": "Der TCP Port Ăźber den die Verbindung zum SolaX Power Wechselrichter hergestellt wird;fĂźr serielle Verbindung ignorieren",
          "read_serial" : "Serieller RS485 Port (Hostname auf localhost setzen)",
          "read_serial_port": "Name des seriellen Ports",
          "read_gen2_x1": "SolaX Gen2 X1",
          "read_gen3_x1": "SolaX Gen3 X1",
          "read_gen3_x3": "SolaX Gen3 X3",
          "read_gen4_x1": "SolaX Gen4 X1",
          "read_gen4_x3": "SolaX Gen4 X3",
          "read_x1_eps": "X1 EPS",
          "read_x3_eps": "X3 EPS",
          "scan_interval": "Die Abfragefrequenz der Modbus Register in Sekunden"
        }
      }
    },
    "error": {
      "already_configured": "Gerät ist bereits konfiguriert"
    },
    "abort": {
      "already_configured": "Gerät ist bereits konfiguriert"
    }
  }
}

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.