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!

Have this version working with Pv_power_input or Pv_panel_input,no need compile,
install same as the original version.
download here: Docker Hub

from here QPIGS new value shown. · Issue #40 · ned-kelly/docker-voltronic-homeassistant · GitHub

Hi ans-gw,
Did you have time to check my last changes in my fork regarding updated protocol for new firmware?

…now …i still not try…Im reinstalling Ha to sd card with new clean installation.
and also inverter is off i m busy with rebalancing my 16S 200A battery pack after 14 months use.
take long time with 5A charger!..i know my Bms no so good :neutral_face:
ill try into 2-3 days…

Hi guys i have a orange pi pc+ and Voltronic VMII 3KW anyone has list commands i can run in linux to install this ?

Hello Naeem,

I did previously have this running on an OrangePi Zero.

The processes will be much the same, you just need to install a decent Linux build for your board.

Hi All.

Thanks for all the great work.

I got an inverter branded Tech Geeks but it must be te same as the Axpert and Mecer. Looks the same. Its a 3kva 24V system. I tried everything but looks like i need the buffer sizes for this inverter. I used minicom for capture the data from the inverter. See snippet below. I do get communication over port

(230. 13. 2300 50.013.0 00 240024.023.021.0 8. 270 0 3030 0 0 -1 2.00 �+(0000000000000000000(L(23.50.1243.050.1 000 000 00 4492700 00 100041 0000. 0000 0000 10110100 0 100J(230.0 3.0 23.0 5.0 3.0 0002400 4. 23.021.0 8.2 7. 0 3030 0 0 - 1 1 27.0 0�+(00000000000000000000000000�(L(244.0 0.2 24.0 0.2 000 000000 49 7.00 00 00 044 000 000000.0 0000 101110 00 4 0000100�(230.013.0 300 50.0 3.0300 240 24. 230 21. 28.227. 0 0 300 0 01 1 27. 00�+(000000000000000000000000000�(L(230 0.4.0 52 00 0000004 2. 00 0042 00 00.0 .0 00 10110104 00 10\�(230.0 3.0 20. 50.013.0 000 240024.023.0 1.0 8.227.0 30 0 0 - 0 1 027.0 0 �+(00000000000000000000000000��(L(244.0 01 24.0 501 000 000 000 49 2.00 00 100041 000 0000 0.0000 1001101 0 04 000 00k�(23.0 3. 23.0 0.0 130 300 200 2.0 23.0 1.0282 27. 0 0 30 0 0 - 1 1027.00 0+(000000000000000000000000000�(L(243.0 501 2430 5.1 000 000 00 449 7.0 00 100 4110000000.0 0.0 000001001101 0 040000 10J�(23.0 3.0 2300 5.0 13.0 000 200 24023.0 21. 28.22.0 030 0 00 0 - 1 1 0 27.0 0 0�+(00000000000000000000000000��(L(244.050.24. 0.1 000 000 000 49 27.00 000 100 041 0000 000.0 00.00 00000 10011101 00 04 00000 100�U(23.0 3.0 230. 50.0 13.0 3000 2400 24.023.0 21.0 28.2 27.0 0 30 30 0 0 0 -01 1 0 27.0 0 0�+(000000000000000000000000000000�(L(242.0502 2420 5.2 000 000 00449 27.0 00 100040900000000 0.000000 1001101 0 0 00000 00�(2300 130 23.050. 13.0300 2400240 230 21. 282 27. 0 3030 00 0- 01 0 2.0 00�+(00000000000000000000000000�(L(241. 0.1 24.0 5.1 000 000 00 49 27.0 00 100 41 0000 00.0 0.00 0000101110100 040000 10�(230.0 13.0 230.0 50.0 13.0 3000 24024.0 23.0 2. 2.2 2. 030 0- 0 1 27.0 �+(00000000000000000000000000�(L(2420 50.12420 5.1 000 000 00 449 7.0 000 00 010 000 00.0 0000 0000 001101 0 040000 00,�(20.0 1.0 230. 500 13. 300 240024. 23. 21.0 8. 2.0 30 300 00 -01 1 27. 0 0+(00000000000000000000000�(L(243.050. 230 50.0000 000000 49 7.00000100 041

When running executing the voltronic-mqtt docker inverter_puller i get the below.

image

I got two Pi’s each with docker. My mqtt is not on the same Pi at the voltronic_mqtt but it looks like I do get a connection on my mqtt broker. see snippet below. Not sure if there should be more info in the logs.

1653314408: New connection from 172.18.0.1:45662 on port 1883.
1653314408: New client connected from 172.18.0.1:45662 as 5oSf1SG0pas2GiCiaEzFKc (p1, c1, k60, u’pitpaplo’).
1653314408: Client 5oSf1SG0pas2GiCiaEzFKc disconnected.
1653314413: Client 1vwm6zsqOHBEox8N9mVgQ0 closed its connection.
1653314413: New connection from 172.18.0.1:45664 on port 1883.
1653314413: New client connected from 172.18.0.1:45664 as 1MMp4g9Tqm5FkKXu0RkM9w (p2, c1, k60, u’pitpaplo’)

The 172.18.0.1 is the docker image IP of my voltronic_mqtt

Could anyone point me in any direction. I tried so much before I ask here. I do run the voltronic_mqtt on a Pi2 B+

Hi,

You could try my fork. I tried to combine all the changes from everybody(credit for them). In this it not anymore necessary the buffer size to be specified.
@ans-gw already tried and seems ok.

Hello,
I have managed to get all things working on a raspberry pi zero 2, except the part where I should get the data from the inverter (EASUN IGrid SV II 5KW). First I tried the OG version of the project, but the results gave me errors on QPIRI, QPIWS etc., like “read timeout”, “reply too short”. (I tried to change those values from 98 all the way up to 104 for QPIRI, including QPIWS to 40 and nothing has changed).

Then I found the fork from @catalinbordan , but I still can’t get the data in HA, neither in Grafana.
When i try to run sudo docker exec -it voltronic-mqtt bash -c '/opt/inverter-cli/bin/inverter_poller -d -1'
I get a slightly different better output, that looks like is sending something (attached a photo below, sorry for the bad quality)
Also the container looks “unhealty” in Portainer and the log is filled with errors for mqtt-push and mqtt-subscriber with an output of Permision Denied, although I have an working tested MQTT server in HA and the credentials in mqtt.json are correct.

Has anyone managed to make it work on this kind of inverter or has an ideea on what is wrong on my instance of the project?

I didn’t cloned the project directly from git in the “/opt/ha-inverter-mqtt-agent” directory and I copied it through FTP in “home/pi/docker/solarinverter”, could that be a problem ?

PS. The connection from inverter to the pi is made using an USB to USB port (inevitably an OTG USB to micro usb cable on the pi side).

Thank you!

I successfully set my Powmr inverter.
qpiri=98
qpiws=40
qmod=5
qpigs=110

I read data and I can send PCP and POP commands.
Unfortunately, PBDV and PBCV commands don’t work. The inverter has no reply (for PBDV replies “NAK” with PBDV0 or PBDV27 and nothing for other values).

There are alternative commands or maybe these commands are blocked in some way?
Any suggestions?

Hi,
the result with my fork it should be like this:

pi@raspberrypi:~ $ sudo docker exec -it voltronic-mqtt bash -c ‘/opt/inverter-cl i/bin/inverter_poller -d -1’
Fri Jun 3 07:35:14 2022 INVERTER: Debug set
Fri Jun 3 07:35:15 2022 DEBUG: Current CRC: 49 C1
Fri Jun 3 07:35:15 2022 DEBUG: Send buffer hex bytes: ( 51 4d 4f 44 49 c1 0d )
Fri Jun 3 07:35:15 2022 DEBUG: 7 bytes written, 7 bytes sent, 0 bytes remainin g
Fri Jun 3 07:35:15 2022 DEBUG: 8 bytes read, 8 total bytes: 28 42 e7 c9 0d 00 00 00
Fri Jun 3 07:35:15 2022 DEBUG: Found reply at byte: 5
Fri Jun 3 07:35:15 2022 DEBUG: QMOD: 8 bytes read: (B
Fri Jun 3 07:35:15 2022 DEBUG: QMOD query finished
Fri Jun 3 07:35:15 2022 DEBUG: Current CRC: B7 A9
Fri Jun 3 07:35:15 2022 DEBUG: Send buffer hex bytes: ( 51 50 49 47 53 b7 a9 0d )
Fri Jun 3 07:35:15 2022 DEBUG: 8 bytes written, 8 bytes sent, 0 bytes remainin g
Fri Jun 3 07:35:16 2022 DEBUG: 8 bytes read, 8 total bytes: 28 32 33 32 2e 35 20 35
Fri Jun 3 07:35:16 2022 DEBUG: 8 bytes read, 16 total bytes: 30 2e 30 20 32 3 2 39 2e
Fri Jun 3 07:35:16 2022 DEBUG: 8 bytes read, 24 total bytes: 38 20 35 30 2e 3 0 20 30
Fri Jun 3 07:35:16 2022 DEBUG: 8 bytes read, 32 total bytes: 33 36 37 20 30 3 1 37 31
Fri Jun 3 07:35:16 2022 DEBUG: 8 bytes read, 40 total bytes: 20 30 31 32 20 3 3 37 33
Fri Jun 3 07:35:16 2022 DEBUG: 8 bytes read, 48 total bytes: 20 32 37 2e 31 3 0 20 30
Fri Jun 3 07:35:16 2022 DEBUG: 8 bytes read, 56 total bytes: 33 32 20 31 30 3 0 20 30
Fri Jun 3 07:35:16 2022 DEBUG: 8 bytes read, 64 total bytes: 30 33 31 20 30 3 0 33 39
Fri Jun 3 07:35:16 2022 DEBUG: 8 bytes read, 72 total bytes: 20 30 39 31 2e 3 3 20 32
Fri Jun 3 07:35:16 2022 DEBUG: 8 bytes read, 80 total bytes: 37 2e 33 33 20 3 0 30 30
Fri Jun 3 07:35:16 2022 DEBUG: 8 bytes read, 88 total bytes: 30 30 20 30 30 3 1 31 30
Fri Jun 3 07:35:16 2022 DEBUG: 8 bytes read, 96 total bytes: 31 31 30 20 30 3 0 20 30
Fri Jun 3 07:35:16 2022 DEBUG: 8 bytes read, 104 total bytes: 30 20 30 31 30 35 39 20
Fri Jun 3 07:35:16 2022 DEBUG: 8 bytes read, 112 total bytes: 30 31 31 ee 5a 0d 00 00
Fri Jun 3 07:35:16 2022 DEBUG: Found reply at byte: 110
Fri Jun 3 07:35:16 2022 DEBUG: QPIGS: 112 bytes read: (232.5 50.0 229.8 50.0 0 367 0171 012 373 27.10 032 100 0031 0039 091.3 27.33 00000 00110110 00 00 01059 011
Fri Jun 3 07:35:16 2022 DEBUG: QPIGS query finished
Fri Jun 3 07:35:16 2022 DEBUG: Current CRC: F8 54
Fri Jun 3 07:35:16 2022 DEBUG: Send buffer hex bytes: ( 51 50 49 52 49 f8 54 0d )
Fri Jun 3 07:35:16 2022 DEBUG: 8 bytes written, 8 bytes sent, 0 bytes remainin g
Fri Jun 3 07:35:16 2022 DEBUG: 8 bytes read, 8 total bytes: 28 32 33 30 2e 30 20 31
Fri Jun 3 07:35:16 2022 DEBUG: 8 bytes read, 16 total bytes: 33 2e 30 20 32 3 3 30 2e
Fri Jun 3 07:35:16 2022 DEBUG: 8 bytes read, 24 total bytes: 30 20 35 30 2e 3 0 20 31
Fri Jun 3 07:35:16 2022 DEBUG: 8 bytes read, 32 total bytes: 33 2e 30 20 33 3 0 30 30
Fri Jun 3 07:35:16 2022 DEBUG: 8 bytes read, 40 total bytes: 20 33 30 30 30 2 0 32 34
Fri Jun 3 07:35:16 2022 DEBUG: 8 bytes read, 48 total bytes: 2e 30 20 32 32 2 e 30 20
Fri Jun 3 07:35:16 2022 DEBUG: 8 bytes read, 56 total bytes: 32 31 2e 30 20 3 2 38 2e
Fri Jun 3 07:35:16 2022 DEBUG: 8 bytes read, 64 total bytes: 32 20 32 37 2e 3 4 20 32
Fri Jun 3 07:35:17 2022 DEBUG: 8 bytes read, 72 total bytes: 20 30 32 20 30 3 4 30 20
Fri Jun 3 07:35:17 2022 DEBUG: 8 bytes read, 80 total bytes: 31 20 32 20 32 2 0 31 20
Fri Jun 3 07:35:17 2022 DEBUG: 8 bytes read, 88 total bytes: 30 31 20 30 20 3 0 20 32
Fri Jun 3 07:35:17 2022 DEBUG: 8 bytes read, 96 total bytes: 36 2e 30 20 30 2 0 31 33
Fri Jun 3 07:35:17 2022 DEBUG: 8 bytes read, 104 total bytes: 60 0d 00 00 00 00 00 00
Fri Jun 3 07:35:17 2022 DEBUG: Found reply at byte: 98
Fri Jun 3 07:35:17 2022 DEBUG: QPIRI: 104 bytes read: (230.0 13.0 230.0 50.0 1 3.0 3000 3000 24.0 22.0 21.0 28.2 27.4 2 02 040 1 2 2 1 01 0 0 26.0 0 1
Fri Jun 3 07:35:17 2022 DEBUG: QPIRI query finished
Fri Jun 3 07:35:17 2022 DEBUG: Current CRC: B4 DA
Fri Jun 3 07:35:17 2022 DEBUG: Send buffer hex bytes: ( 51 50 49 57 53 b4 da 0d )
Fri Jun 3 07:35:17 2022 DEBUG: 8 bytes written, 8 bytes sent, 0 bytes remainin g
Fri Jun 3 07:35:17 2022 DEBUG: 8 bytes read, 8 total bytes: 28 30 30 30 30 30 30 30
Fri Jun 3 07:35:17 2022 DEBUG: 8 bytes read, 16 total bytes: 30 30 30 30 30 3 0 30 30
Fri Jun 3 07:35:17 2022 DEBUG: 8 bytes read, 24 total bytes: 30 30 30 30 30 3 0 30 30
Fri Jun 3 07:35:17 2022 DEBUG: 8 bytes read, 32 total bytes: 30 30 30 30 30 3 0 30 30
Fri Jun 3 07:35:17 2022 DEBUG: 8 bytes read, 40 total bytes: 30 eb e4 0d 00 0 0 00 00
Fri Jun 3 07:35:17 2022 DEBUG: Found reply at byte: 36
Fri Jun 3 07:35:17 2022 DEBUG: QPIWS: 40 bytes read: (000000000000000000000000 00000000
Fri Jun 3 07:35:17 2022 DEBUG: QPIWS query finished
Fri Jun 3 07:35:17 2022 DEBUG: Start loop
INVERTER: ampfactor from config is 1.00
INVERTER: wattfactor from config is 1.00
{
“Inverter_mode”:4,
“AC_grid_voltage”:232.5,
“AC_grid_frequency”:50.0,
“AC_out_voltage”:229.8,
“AC_out_frequency”:50.0,
“PV_in_voltage”:91.3,
“PV_in_current”:39.0,
“PV_in_watts”:1065.9,
“SCC_voltage”:27.3300,
“Load_pct”:12,
“Load_watt”:171,
“Load_va”:367,
“Bus_voltage”:373,
“Heatsink_temperature”:31,
“Battery_capacity”:100,
“Battery_voltage”:27.10,
“Battery_charge_current”:32,
“Battery_discharge_current”:0,
“Load_status_on”:1,
“SCC_charge_on”:1,
“AC_charge_on”:0,
“Battery_recharge_voltage”:22.0,
“Battery_under_voltage”:21.0,
“Battery_bulk_voltage”:28.2,
“Battery_float_voltage”:27.4,
“Max_grid_charge_current”:2,
“Max_charge_current”:40,
“Out_source_priority”:2,
“Charger_source_priority”:2,
“Battery_redischarge_voltage”:26.0,
“Warnings”:“00000000000000000000000000000000”
}
Fri Jun 3 07:35:17 2022 INVERTER: All queries complete, exiting loop.

If you don’t have like this, you have a problem with usb connection or docker problem.
try to follow exactly the folder name and destination. In the prerequisites it says that you need Docker and Docker-compose installed. Install them with sudo in front (admin commands). Read the all thread for info about your small board. For me also it helps to restart de raspberry pi to be able to connect to inverter.

It is a limitation coming from usb connection which will not transmit more then 5 characters at ones.
@nrm21 made a trick to send them in batch of 5 characters.
I applied this changes in my fork and I can confirm it work like a charm.

thank you.
Do you mean skymax of nrm21?
if not, do you have a link for it?

yes, I think so.

Hello,

After some hours of working well, the data simply stopped from being send from the inverter.
What could cause this issue?

Inverter: Voltronic Axpert MKS IV 5.6kW

Configuration:

  • device=/dev/hidraw0
  • run_interval=120
  • qpiri=103
  • qpiws=40
  • qmod=5
  • qpigs=110

image

Thanks,
AMagro

I changed the qpiws to 56 as someone suggested for my inversor, but after a while I lost data again.

Hi,
You probably have problem with connection between invertor and you pi
Are you using serial to usb convertor?
The container it is healthy?

Hello @catalinbordan,

Thanks for your reply.
I’m using the micro-usb direct connection from the inverter to the RPi.

Actually the container is not healthy:

So what could cause this “unhealthy” issue?
Tks

I don’t know what to say. try to update linux, docker, docker compose, search relevant info over internet.

Yes, I will try to install all again, now with the RPi OS Lite version.
Tks

Hello,
I have rpi4 with raspian os 32bit with installed docker, docker-compose, home assistant and mqtt. I can connect to my rpi mqtt from home assistant. To here all is ok. But when try to do configuration & standing github part after connect inverter and run docker-compose up -d nothing show on home assistant. If someone have same problem or can help I will be very thankful!
My inverter is EASUN 5.5kw Hybrid Inverter MPPT 48V
Screenshot 2022-06-10 104534|690x374