Addressing a solar panel inverter to get the data via RS485

In order to use our solar panels economically and lessen the stress on the electrical grid we use our electric boiler and some other 220V users, via a switchable socket. The socket will switch “on” at the time that the solar panels deliver enough power. The switch in the socket is controlled by a relay which is fed by a wire (for the boiler) or a remote 433 MHz signal (for the 1kW or less users). Both, the power for the boiler's relay and the 433MHz signal to switch other relays, are provided by an Arduino Uno type microprocessor.

To know when to switch, the voltage of a small solar panel, mounted next to the main solar panels, is monitored via the analog input.

A full description is on my site:

This (non commercial) site was started to share some boat rudder knowledge but also has some Arduino projects related to boats (solar power control and nmea data use)

My question for the switchable sockets: To have a better accuracy, I would prefer to use the real power value delivered by the inverter. Our Solax X1-20-S-D(L) Inverter has a RS 485 communication interface but I'm not familiar with the protocol and working with hex figures.

If somebody has been able to get the delivered power from a Solax inverter and can can tell me the correct procedure, I would appreciate this very much. I'm also interested in a program example how to address/ register with an inverter to get the data.

There's no hurry as the system works also “as is” and the sun isn't very serious at the moment at our latitude anyhow.

Thanks, Jeroen

If you can post a link to the user manual to the inverter, then there's a good chance that you will get help from the forum. Make sure that the manual details the serial comms interface.

Thanks. I wil get to It later. Jeroen

Most chinese PV inverters like Solax, Sofar, Solis, Growat, Goodwe... use standard modbus communication and it's quite straightforward to read the registers. But some versions of Solax use proprietary protocol, little bit more complicated for the code part.
For hardware you only need RS485-TTL converter module.
What firmware version your inverter has?

The user manual of the inverter is here and the connection part is around page 35:

There's no spontanious data stream from A/B pin 4/5 and I assume you have to address the inverter and ask for it but I don't know how.
I found a Solax protocol but I am not sure if it's the right version:

If someone can point me in the right direction how to proceed and/or to a tutorial on the subject I would appreciate it.

Thanks, Jeroen

That's how it works, you make request and inverter gives response.
You didn't answer the question of firmware version.
Also is your inverter G3 or G4?

Hi Mark, thanks for your prompt reactions, Sorry to miss your earlier questions. I'm operating at a different skill level concerning the forum and it's content and was somewhat overwhelmed. As I'm

from home for a while I can't provide the version info but the inverter was installed 2 years back,

I will work through the content of the supplied links provided by all of you enthusiastic people but as a “once in a while” hobby programmer this will take me some time.

Thanks to all and enjoy your day, Jeroen

Hi mark, I found a solution to get to the data in our Solar panel inverter. I have been away from home for a while so I had to postpone the testing until a few days ago. I postet the solution on my website:

www.bootprojecten.nl/solar-energy/getting data from a solar-panel inverter Thanks again Jeroen
Getting data from a solar panel inverter / Solar energy | Bootprojecten

2 Likes

I implemented that type of system for our hot water.
See HotWater from Excess Solar How to store excess generation in the hot water tank
I my case I avoided issues with accessing the inverter directly by adding my own monitoring CTs
I have recently revised the system to use JSY-MK energy modules (still writing this project up).
BUT I found that the JSK-MK energy module was grossly in-accurate.
See How to Accuarately Calculate Your Household Electicity Cost Using a Jiansiyan Bidirectional Energy Meter Module
Fortunately there is a simple software fix for that.

Thanks,as mentioned in the link above, getting the data from the Inverter itselve works OK now so theré's no need for extra monitoring. Only when you want to keep the system ON overnight you have to re-assigne the address as the inverter doesn't store it. Using a small solar panel to monitor if it's light enought and re-assigne works also OK. However as we don't use hot water while we are away and mostly don't leave before the inverter kicks in, we switch the Atduino ON in the morning. It saves some minor power and keeps the system simpler. Thanks again and enjoy your day, Jeroen

I updated my boiler power socket switching system.

It will use the data from the Solax inverter via RS485 and I start the inverter monitorring in the morning using a real time clock module. The data is recorded (every 10 minutes) on a SDCard.

The temperature is displayed with a Voltmeter and a fan will start when the inverert temperature reaches 33 degrees.

It works well. The complete setup is discribed here:

Thanks for your help and inspiration, Jeroen

End of site/link end in April 2026...

As I don't like to facilitate a 37% price rise in hosting cost, bootprojecten.nl will end. Freely sharing or publishing the pdf's is allowed.

bootprojecten@gmail.com remains monitored

Happy new year, Jeroen Droogh