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!

I’ve used this for running script at start How to Run Script on Boot Up in Debian 11
I put script in /opt/<any_folder> and it works fine. Just not to forget set the script executable.

#!/bin/bash

sudo stty -F /dev/ttyUSB0 sane
sudo stty -F /dev/ttyUSB0 2400 raw -echo

exit 0

Not sure about ‘-echo’, most probably it’s redundant. This approach grants me connection to inverter after reboot. From the moment I configured this it works like charm.
I hope I understood you correctly that you are using Debian 11 on Rpi4.

1 Like

Heyhey @catalinbordan,

was tempering with mpp-solar python package and found out, that a custom protocol specification

( -P PI17)

is needed. Can this also be configured with your nice dockerized approach?

Thanks and regards

Jakob

I’ll be setting up the same unit as well a JBD BMS for monitoring the battery status. Any luck?

This worked for me, many thanks :slight_smile:

Hi guys,

I bought a new Voltronic inverter VM II Premium 2.5K since I burned the old one (Voltronic AXPERT VM 3000) In my config I am using (usb-rs232(rj45)):

device=/dev/ttyUSB0

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

I tried various configs from the thread but had no success. For this one I’m getting:

Tue Jun 20 14:37:29 2023 INVERTER: Current CRC: B7 A9
Tue Jun 20 14:37:32 2023 INVERTER: QPIGS read timeout
Tue Jun 20 14:37:32 2023 INVERTER: QPIGS reply too short (7 bytes)
Tue Jun 20 14:37:32 2023 INVERTER: Current CRC: F8 54
Tue Jun 20 14:37:35 2023 INVERTER: QPIRI read timeout
Tue Jun 20 14:37:35 2023 INVERTER: QPIRI reply too short (7 bytes)
Tue Jun 20 14:37:35 2023 INVERTER: Current CRC: B4 DA
Tue Jun 20 14:37:38 2023 INVERTER: QPIWS read timeout
Tue Jun 20 14:37:38 2023 INVERTER: QPIWS reply too short (7 bytes)
Tue Jun 20 14:37:43 2023 INVERTER: Current CRC: 49 C1
Tue Jun 20 14:37:43 2023 INVERTER: QMOD reply size (5 bytes)

please help gonna go crazy :smiley:
@ned-kelly god of repository

I think your problem is with serial port baud rate. Try this 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! - #689 by oleksii1
And read further discussion as you probably will want to set the right value on the server startup.
Default WatchPower app on Windows running with baud rate smth around 11k. I tried on Debian more then 2400 and it was not working.

Is there a way to get from the inverter data for the grid consumption? I see the grid voltage, but no grid current in protocol. Did someone manage to get this data? I think, this could be done somehow, as default app has dynamic depiction of energy flow coming from grid, but I just can’t figure this out.

Hi Jacob,
Probably yes, If I succeeded to do some small changes, you can do it with a proper documentation and a lot of time.

Hey @catalinbordan,

that would be great from my perspective as I already have got the commands to shoot against my inverter. So wüit would be perfect, you you’d expose the „inverter protocol“ and „command“ command :stuck_out_tongue_winking_eye:

I use a TP Link Kasa smart plug on the AC in line and track it that way.

Hi,
:slight_smile: I do not have it. Look for it on web. take a look on the esphome integration for mpp, if I remember correctly, on github they have a lot of documentations.

Im also from romania, can you please help me to get it connected to HA? i got whatsapp +40746312690 :smiley:





I have a Waveshare RS485 to ETH on my PowMR inverter. The communication is established, data is being sent and also received, but I’m probably querying the wrong register via modbus. Can someone help me here?

Thank you very much.

Hello,
I`m having some issues with my comuncition to the Voltronic Axpert VMIII.
I had a machinne runing properly with all information from the Axpert, by usb cable direcly (not rs232). I had to change the computer and I reinstalled everything but I had some problems with this connection because the computer do not recognize the usb cable wiht errors -71 and something about xhci_hcd. Anyway I bougth a rs232 cable to usb and changed the way of connection. The problem now is that ussing the same parameters that worked properly do not work out now. The parameters that works properly are:
qpiri=98
qpiws=45
qmod=5
qpigs=110
So now connecting but with the rs232 connection it is not working. Why the parameters change?
How can I get the new parameters?
Thanks in advance!

You should try the original program made for inverter to see if it is working.
Maybe the USB communication board in the inverter is dead. You can order a new one from producer.

Hi, I don’t have your inverter or the time to help you. Sorry.

Most probably problem is with the baud rate of the rs232 port. (check discussion earlier)

Salve ragazzi! Avrei bisogno della configurazione yaml per questo tipo di inverter
voltronic, ho necessità di leggere i dati di Potenza e tensione su home assistant.

@catalinbordan Appreciate your help i have a running setup all is fine and working except the push commands iam trying to manually push one without success

wondering if iam doing the commands in a wrong way.

Best regards,
Chafik

Hi,
here it is one of my automations:

alias: MPP - Solar Trigger Charge Priority Change
trigger:
  - platform: state
    entity_id: input_select.solar_charger_priority
action:
  - service: mqtt.publish
    data_template:
      topic: homeassistant/sensor/mpp_92331908103079/COMMANDS
      payload: >
        {% if is_state("input_select.solar_charger_priority", "PCP00 (Utility
        first)") %}
          PCP00
        {% elif is_state("input_select.solar_charger_priority", "PCP01 (Solar
        first)") %}
          PCP01
        {% elif is_state("input_select.solar_charger_priority", "PCP02 (Solar
        and utility)") %}
          PCP02
        {% elif is_state("input_select.solar_charger_priority", "PCP03 (Solar
        only)") %}
          PCP03
        {% endif %}
1 Like