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

Do you know if this model is a Gen4 or Gen3? The most recent Generation4 firmwares have additional parameters that report the Current and Voltages from the power meter device (Eastron or CT).
The Gen4 is optically one block, to horizontal split between the upper part and the lower part.
The first digits of the serial number may also give us an indication which generation we are talking about.

1 Like

Yes, sure - this is the serial number of the master inverter [H3DE10F7232031]

@stosunyan : OK, this is indeed a Gen3. Our integration also reports the grid current on all 3 phases for a Gen3, so maybe your automation can connect to these entities instead of directly the Eastron.
It all depends on what your automation needs to read.

Thanks for the information. So basically you suggest physical connection from the EASTRON meter to the SOLAX inverter and reading the sensors (my major value would be TOTAL SYSTEM POWER NOW) from your integration. Does your integration have this entity?

Many thanks again for your support

@stosunyan : I did not check the Eastron documentation, but I guess this would correspond to our ā€œGrid importā€ and ā€œGrid exportā€ entities (current iimport / export in Watt). We also have more detailed parameters, kWh on daily basis, or kWh since start, ā€¦)
Depends a bit where your Eastron is located in the chain, I am assuming on the grid connection ā€¦

@infradom Yes correct EASTRON is on the grid and this version(SDM 630 MOdbus V3) has already calculated value of the TOTAL POWER NOW.

image

I reconnected today the SOLAX X3 inverter with the Eastron SDM 630 Modbus METER but failed to get the result as the inverter keeps saying ā€œMETER FAULTā€.

Has anyone faced the same problem?

Did you configure the correct modbus address in the Eastron (and Solax)? Is the baudrate set to the correct speed? Did you connect to the right RJ45 cable connector and correct wire pair ?

Correction: for the GEN3 X3, the meter connection is on wire1 and 2 of the connector labeled Meter. Attention polarity matters (do not swap A and B wire)
In the Solax menu, there should be settings to enable the meter and set the modbus address (by default 0001 and 0002 if there is a second meter connected to the bus). Your Eastron must also be configured with this address.
It is unclear which baudrate the Eastron must be set to. I have a Gen4 inverter, so this may be different. I will check anyway. My Eastron SDM630 is a V2, yours seems to be a V3, but I dont think the latter matters
Edit: my Eastron seems to be set to 9.6 kbaud rate. There is no setting on my Gen4 solax to modify this.

Correction: for the GEN3 X3, the meter connection is on wire1 and 2 of the connector labeled Meter. Attention polarity matters (do not swap A and B wire)
The polarity is correct - I checked it
In the Solax menu, there should be settings to enable the meter and set the modbus address (by default 0001 and 0002 if there is a second meter connected to the bus). Your Eastron must also be configured with this address.
I configured 001 in Eastron and 1 and 2 respectively in the Solax Inverter
It is unclear which baudrate the Eastron must be set to. I have a Gen4 inverter, so this may be different.
I entered 9600 baud in the EASTRON and also tried the highest LEVEL of 38400 - this didnā€™t help
I will check anyway. My Eastron SDM630 is a V2, yours seems to be a V3, but I dont think the latter matters

So for now itā€™s weard but not working

Have you read my edit of previous post: baudrate must be 9600 (on my X3 gen4)

Yes - I tried 9600 but it didnā€™t help.

maybe you need to restart your inverter after a baudrate change on the Eastron. I dont believe there is such a thing as baudrate autodetection, so this must really match exactly.

Found a troubleshooting document that states that it must be 9600
So a reboot of your inverter may help once the baudrate is set to 9600
If baudrates do not match, the communication is completely messed up, and the solax probably stops trying until it is rebooted

Unfortunately it didnā€™t bring me closer - the same result ā€œMETER FAULTā€

Strange, this video shows how the system reacts when the meter is reconnected (and gives some other hints), not for the same solax model, but it may help ā€¦ SolaX Solar Inverter Meter Fault - YouTube
I still dont understand how your system could operate without any meter or ct. As far as I can see in the manual, the meter connection is mandatory ā€¦

Was your Eastron SDM630 supplied with the SolaX equipment or is it a Generic Eastron SDM630?

I believe the SolaX supplied ones have a slight different firmware and communication protocols.

I have figured out that the distributor of SolaX sold me (separately) the Generic Eastron))) At least I know now what is wrong)))

I hope someone can help me with a problem. I installed the custom component via HACS, added and configured the integration and all is working well pulling sensor data from my Solax X3 inverter. However, when I try to send a write command it immediately reverts back to the existing value. I can see in the HA log that I make a change and then about 30s later another log entry shows the value being changed back by the system.

I read somewhere about an ā€œunlock inverterā€ button which I couldnā€™t find but I did find an entity called button.solax_unlock_inverter and one called button.solax_unlock_inverter_advanced but these didnā€™t seem to do anything.

I am connected to the inverter via the LAN port and I have disconnected the pocket wifi dongle in case it is interfering. Did I misunderstand and you canā€™t send commands via the LAN port?

Hi all, Iā€™m back.

Iā€™ve managed to get a Pocket Wifi adapter, itā€™s set up with the inverter and is online. I can see the inverter in the Solax Cloud App and Iā€™m getting readings. Where Iā€™m now having an issue is in connecting HA to it. Iā€™m getting the following error message from the logs:

This error originated from a custom integration.

Logger: homeassistant.config_entries
Source: custom_components/solax_modbus/__init__.py:261 
Integration: SolaX Inverter Modbus (documentation, issues) 
First occurred: 17:50:29 (1 occurrences) 
Last logged: 17:50:29

Error setting up entry SolaX for solax_modbus
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 335, in async_setup
    result = await component.async_setup_entry(hass, self)
  File "/config/custom_components/solax_modbus/__init__.py", line 89, in async_setup_entry
    inverter_data = hub.read_holding_registers(unit=hub._modbus_addr, address=0x0, count=7)
  File "/config/custom_components/solax_modbus/__init__.py", line 261, in read_holding_registers
    return self._client.read_holding_registers(address, count, **kwargs)
  File "/usr/local/lib/python3.9/site-packages/pymodbus/client/common.py", line 114, in read_holding_registers
    return self.execute(request)
  File "/usr/local/lib/python3.9/site-packages/pymodbus/client/sync.py", line 108, in execute
    raise ConnectionException("Failed to connect[%s]" % (self.__str__()))
pymodbus.exceptions.ConnectionException: Modbus Error: [Connection] Failed to connect[ModbusTcpClient(192.168.2.203:502)]

Iā€™m not sure why it wonā€™t connect. Iā€™ve managed to get a picture of the label on the side of the inverter:

It seems to suggest that this is an X-1 Hybrid - 5.0-D model?