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

Will;
I now have a CHiNT meter installed and as anticipated I now have Exported Energy and Grid Consumption reported in the Solax Portal (these not being available if only a CT is used). Looking at the reports available in the portal it seems that there is no reporting of solar energy on its own (and therefore not available to HA either). I only have ‘Today’s Energy’, which is Yield from PV and battery, and, as mentioned before, ‘Total Energy’ which is the same combination but totalled up since system commissioning.
In the HA Integration Total Energy is picked up by entity Solax Total Solar Energy. ‘Today’s Energy’ is not found by an entity… Today’s Solar Energy reports a strange value of around 0.04kWh each day, which relates to nothing. I guess this Gen2 setup is somewhat different to the Gen3 and later inverters…!
Solar Energy|690x224
Total Solar Energy

One remark: modbus-power-control cannot control the export-control-user-limit, only import limits.
So I do successfully use the export-control-user-limit to block export when prices are negative.

Which Gen2 are you using?
Are you able to share the first 5 digits of your Serial? Do you own a ‘U50EC’ as that Inverter is missing a register compared to the ‘U50ED’ It’s missing “Today’s Yield”

Hi,

yes, I have just tried, when I modify with web interface, the behaviour is the same.
I have now tested other parameters and unfortunately also yes - all of them returned to the original state after several seconds.

I am simply trying to prevent inverter from exporting to grid when the prices are below some threshold. Lowering export to zero seemed like a good idea. As I responded to infradom above, looks like I am generally unable to modify other parameters either.

Your inverter still seems to be in a “locked” state where it does not accept write commands.
Maybe the detailed logs reveal something. I also believe @wills106 has more experience with probable causes

I am happy to provide logs of course - just please tell me where exactly to find them. I was searching for them as well and couldnt find them. Still a beginner here with HA.

The select “Device Lock” is different to sensor “Lock State”

You need to manually enable “Lock State”, it’s disabled by default.

If “Lock State” is set to ‘Locked’ you can’t write registers to the Inverter.

To unlock the Inverter, you need to either use the Button “Unlock Inverter” or “Unlock Inverter - Advanced”
Then you should be able to control the Inverter, such as the select options.

Ah, thanks for the explanation.
Unfortunately:
unlock
Looks like its really unlocked. Pressed also both buttons Unlock inverter and Unlock inverter advanced - still every changed reverts back to original state after several seconds.

How are you connecting to your Inverter? USB-RS485 device or a Waveshare type device?

Have you made sure the baud rate matches? The default is 19200.

I have got a waveshare RS485 to RJ45 converter. Baud rate in configuration shows 19200.

Does a simple write such as changing the Select for “Charger Use Mode” work?

If it doesn’t does it generate any errors in your log?

Edit for more detailed logging you might need to add the following to your ‘configuration.yaml’

logger:
  default: info

@zakarumit Which waveshare model are you using ?
You can access the logs through Settings > System > logs (or whatever it may be called in your language)

Good point! @zakarumit you don’t own the passive only Waveshare do you?

Not to be confused with the Waveshare RS485 TO ETH (B)

Serial 59E70

Confirming I have got the correct one according to the pictures and description - DIN rail mount with “RS485 TO ETH (B)”.

No, simple write doesnt work, its the same behaviour. When I change “Charger use mode”, it default to the original state within several seconds as well.

When you were trying to write to your Inverter, was the Inverter asleep due to lack of PV and you either don’t have any batteries, or the batteries were at minimum SOC?

1 Like

According to solax_run_mode, it was idle. There wasnt PV output and battery was at 29 % SoC according to sensor (I have 30 % set as a minimum discharge in self use mode). So it was basically covering all power from grid connection.
EDIT: Yesterday an automation triggered in normal mode and the result was the same.

If the Inverter is idle / asleep you can’t write to it. It ignores your commands.

If you want to charge from the grid at night because it’s cheaper you’ll need to set a timer first and put it into the relevant work mode before it goes idle.

We are struggling with directly controlling the Inverter when it’s idle / asleep.
People have had feedback from SolaX to try the power control which we have done, but that doesn’t seem to awaken the Inverter either.