Programmatically read data from your Solar Inverter (Voltronic, Axpert, Mppsolar PIP, Voltacon, Effekta etc) and interface with Home Assistant via MQTT - Works with RS232 & USB!

my docker is healthy, mqqtt server running… all values are unknown

imran@raspberrypi:/opt/ha-inverter-mqtt-agent $ sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d79a803a20e2 bushrangers/ha-voltronic-mqtt “/bin/bash /opt/inve…” About an hour ago Up 33 seconds (healthy) voltronic-mqtt
imran@raspberrypi:/opt/ha-inverter-mqtt-agent $ sudo docker exec -it voltronic-mqtt bash -c ‘/opt/inverter-cli/bin/inverter_poller -d -1’
Tue May 16 05:59:00 2023 INVERTER: Debug set
Tue May 16 05:59:00 2023 DEBUG: Current CRC: 49 C1
Tue May 16 05:59:00 2023 DEBUG: Send buffer hex bytes: ( 51 4d 4f 44 49 c1 0d )
Tue May 16 05:59:00 2023 DEBUG: 7 bytes written, 7 bytes sent, 0 bytes remaining
Tue May 16 05:59:00 2023 DEBUG: 8 bytes read, 8 total bytes: 28 4e 41 4b 73 73 0d 00
Tue May 16 05:59:00 2023 DEBUG: Found reply at byte: 7
Tue May 16 05:59:00 2023 DEBUG: QMOD: 8 bytes read: (NAK
Tue May 16 05:59:00 2023 DEBUG: QMOD query finished
Tue May 16 05:59:00 2023 DEBUG: Current CRC: B7 A9
Tue May 16 05:59:00 2023 DEBUG: Send buffer hex bytes: ( 51 50 49 47 53 b7 a9 0d )
Tue May 16 05:59:00 2023 DEBUG: 8 bytes written, 8 bytes sent, 0 bytes remaining
Tue May 16 05:59:00 2023 DEBUG: 8 bytes read, 8 total bytes: 28 4e 41 4b 73 73 0d 00
Tue May 16 05:59:00 2023 DEBUG: Found reply at byte: 7
Tue May 16 05:59:00 2023 DEBUG: QPIGS: 8 bytes read: (NAK
Tue May 16 05:59:00 2023 DEBUG: QPIGS query finished
Tue May 16 05:59:00 2023 DEBUG: Current CRC: F8 54
Tue May 16 05:59:00 2023 DEBUG: Send buffer hex bytes: ( 51 50 49 52 49 f8 54 0d )
Tue May 16 05:59:00 2023 DEBUG: 8 bytes written, 8 bytes sent, 0 bytes remaining
Tue May 16 05:59:00 2023 DEBUG: 8 bytes read, 8 total bytes: 28 4e 41 4b 73 73 0d 00
Tue May 16 05:59:00 2023 DEBUG: Found reply at byte: 7
Tue May 16 05:59:00 2023 DEBUG: QPIRI: 8 bytes read: (NAK
Tue May 16 05:59:00 2023 DEBUG: QPIRI query finished
Tue May 16 05:59:00 2023 DEBUG: Current CRC: B4 DA
Tue May 16 05:59:00 2023 DEBUG: Send buffer hex bytes: ( 51 50 49 57 53 b4 da 0d )
Tue May 16 05:59:00 2023 DEBUG: 8 bytes written, 8 bytes sent, 0 bytes remaining
Tue May 16 05:59:00 2023 DEBUG: 8 bytes read, 8 total bytes: 28 4e 41 4b 73 73 0d 00
Tue May 16 05:59:00 2023 DEBUG: Found reply at byte: 7
Tue May 16 05:59:00 2023 DEBUG: QPIWS: 8 bytes read: (NAK
Tue May 16 05:59:00 2023 DEBUG: QPIWS query finished
Tue May 16 05:59:00 2023 DEBUG: Start loop
Tue May 16 05:59:01 2023 DEBUG: Start loop
Tue May 16 05:59:02 2023 DEBUG: Start loop
Tue May 16 05:59:03 2023 DEBUG: Start loop
Tue May 16 05:59:04 2023 DEBUG: Start loop
Tue May 16 05:59:05 2023 DEBUG: Start loop
Tue May 16 05:59:06 2023 DEBUG: Start loop
Tue May 16 05:59:07 2023 DEBUG: Start loop
Tue May 16 05:59:08 2023 DEBUG: Start loop
^Cimran@raspberrypi:/opt/ha-inverter-mqtt-agent $

Heyhey @catalinbordan,

I´m using your dockerized solution - thanks for all your effort! Unfortunately I´m unable to read data out of my MPI 15 KW Inverters. After a lot googling, I found out, the device seems to be called “PI18”. Do I need to reconfigure these values set in “mqtt.json”:

"model": "PIP3024MSXE",
"serial": "96162210100324",
"ver": "20.13",

Thanks and regards

Jakob

Hello Jakob,

Your problem doesn’t come from that. These are some fancy description which it will be send to HA through mqtt protocol. At that point was a requirement that this details to be sent to HA, to not have error on mqtt. But doesn’t care about you put here.
What say the test commands?
look on documentation and find the command to search for protocol code. Probably your invertor use another protocol/updated protocol?

Heyhey @catalinbordan,

thanks for the fast reply :-). In Fact it seems, that i dont get any data back from the inverter

Fri May 19 13:04:33 2023 INVERTER: Current CRC: B4 DA
Fri May 19 13:04:33 2023 INVERTER: QPIWS reply size (0 bytes)

Read, that sometimes the inverter USB Interface seems to stop responding. Because of that, i reset the inverter via power cycling. Unfortunately I got no luck still :frowning:

Would you recommend me using serial over usb for being more stable?

Hi, sorry to hear that.
I keen to hear from you if it is more suitable to you an esp32 + serial adapter converter (with esphome). look on esphome for mpp integration.
it is more cheap that a rasp pi and probably more support from guys who know to program with this new inverters.
in my case already got working so why fix it! :stuck_out_tongue:

@catalinbordan are you from romania? :slight_smile:

I am from Romania :grin:

Hi guys. Trying to connect my server to Axpert IV 5.6 inverter. (Main CPU Firmware 61.01, Secondary CPU Firmware 130.06)
My server config:

Debian 11
HA docker-compose install
MQTT Broker docker-compose install
Docker-voltronic-homeassistant docker-compose install

My server is directly connected to inverter USB-microUSB.
I managed to get events into HA but with no values. I assume, that I put a wrong device name into inverter.conf as my server has 6 USB ports and I randomly pluged-in my cable. Is there a way to find out to what USB port my inverter is connected? Current config: device=/dev/hidraw0
Maybe I’m doing something wrong.
Will appreciate any help or suggestions.

I’ve managed to get data into HA. Just for future for anyone who get problems with Axpert VM IV 5,6 kWt. So after installation with docker it was not working, most probably, that was due to my server has a lot of USB ports and 2 of them were used by mouse and keyboard. I plugged-in my cable from inverter to server into working server and most probably it was assigned as not /dev/hidraw0. I restarted server and checked with sudo dmesg | grep hidraw what devices were assigned to what hidraw’s. In that case it was /dev/hidraw0 and i tried to run voltronic-mqqt in debug mode. This time i got incorrect start/stop bytes. Have found buffer config

qpiri=99
qpiws=36
qmod=5
qpigs=110

restarted container and got values in HA but get no values for

“PV_in_watts”:0.0,
“PV_in_watthour”:0.0000,

Does somebody know how this could be fixed?

The story does not end ((( After working one day on some point inverter stops responding and even after inverter restart data cannot be retrieved. Has someone get this problem fixed?

Did you restart raspberry also?
Try to change a setting in Inverter.

I’m running all on one server. Any setting will do the trick? And I wonna thank you for your work on the improving ned-kelly’s repo. I switched to use your repo)

All in one? Also HA here?
Yes, in my Invertor, I change from appliance to ups or vice versa

As I posted earlier, i have connected my server via usb to the inverter so I ran voltronic-mqtt container also in the server. I even managed to get values in ha (except PV input watts, but this is not critical, as it can be easily calculated). Unfortunatelly, at some point inverter stops responding. I tried to change time in settings, but no result. Changed as you’ve said and have no luck. ( It’s so annoying when it was working and with no reason just stops…

It might be that your inverter is using a different protocoll. I also tried catalinbordan’s version, and
i was receiving exactly the same message “(NAKss” … after i started sniffing the communication between the SolarPower app and the inveter, i found out the protocol is different. Currently working to implement it. I have an EASUN Igrid SV4, which seems to be same as the Voltronic Infinisolar V
You could also try that to see what the messages look like.
or you could try
docker exec -it voltronic-mqtt bash -c /opt/inverter-cli/bin/inverter_poller -d -r ^P005PI

I’m also looking to connect an EG4 but I’m using a 6000EX-48HV. Have you have any luck? I’d imagine the setup would be simalar.

So my problem is not a new one ) There is a different baud rate of serial port between default linux config and inverter. As I understood, inverter supports ‘2400 raw’ baud rate (whatever it means). So there is a solution that worked for me

1 Like

Can you point out where somebody managed to change the baud rate on startup? I am having no luck.

Thanks

Where do you run your inverter-poller? Is this raspberry of smth else?

Yes, Rpi4, with debian 11 host.

If I open a minicomm session with 9600 baud rate, inverter communications works fine, but that baud rate does not stay after reboot and I’ve been unable to get it to stay using setserial etc.