Solar Inverter Protocol Identification

I like your alternative RS232 converter. This is the correct & testing schematics:

1 Like

Hi.
Something is received.

uart_debug:114]: <<< 00:78:80:80:78:00:78:78:78:80:78:80:78:F8:00

Im pasting the complete logs in pastebin

Following is when I made dummy_receiver = True

Please try the protocol test another time.

1 Like

I will do the testing today. By the way, I did the RS232 wiring the way you showed in the Git page.

Thanks in advance.

Hi,

Just wondering if you got this to work finally.

I am wondeing if this worked, but also why would the PIP proctocole not work if it was a SmartESS compatible device?

I am trying to setup communication with a solar inverter (MPPT - axpert max 8000). Issue is I have no way to do any experimentation, as the inverter is not accesible to me (and when it is accesible i would be unable to buy any additional components). I found 2 possible solutions for this, either use your way with esphome, or use a docker based solution (by ned-kelly) but which would you recommend? (Sorry if this question seems obnoxious, but I really am lost)

I have a Voltronic Inverter with RS232 port. It didn’t work for me. I was not getting any data from the inverter. Not sure if it was because this does not work with Voltronic. I am looking into the docker based solution by ned kelly but it’s a little over my head, because I have no idea about docker portainer. I have an Orange Pi 3 LTS, so I am going to install docker on it and then see how it goes. Right now I am using ICC software with Voltronic and it’s much better than Solar Power. It sends data to PVOutput and then I use the PVOutput Integration to import data into Home Assistant.

1 Like

No I havent been able to work this out. I am still at the point where me @syssi stoped that day.

I havent been able to make this work. But I am sure that if he helps, we will be able to make this work.
I am requesting @syssi

1 Like

You might also want to look at these alternatives below. They will give you the MQTT data you need to integrate it into home assistant. The windows based didn’t work for me. The other two I have yet to try. Currently I am using ICC software to get data from my inverter. It is windows based. It has an MQTT component, but that doesn’t work. But it can send data to PVOutput and home assistant has a PVOutput integration using which I can import the inverter data. But it’s a roundabout way of doing things, and the data I get from PVOutput is limited.

Docker component
https://github.com/ned-kelly/docker-voltronic-homeassistant

Windows based
https://github.com/gadget78/inverter-homeassistant/

Raspberry pi based
https://github.com/njfaria/SolPipLog

I have made a very small progress, as @syssi informed that SmartESS APP using inverter will be
esphome-smg-ii

The baud rate of my inverter is 2400. A very small step but for me its progress :slight_smile:

Which inverter are you trying to connect to?

I am quite sure that this is an OEM in my country. the inverter uses the following application

Please correct me if I am wrong (ignore my ignorance) . I am not proficient at this at all. But I think that my esp32 is faulty. Because no matter if I connect the RS232 or not, I still get the same results as shown in the following link

Any comments ?

I’m from the same country. What’s the brand name of the inverter?
From the logs your esp32 looks ok to me.

Hi syssi,
I am trying pipsolar with HA GitHub - syssi/esphome-pipsolar: ESPHome component to monitor and control a pipsolar inverter via RS232
Inverter DAXTROMN 6.2kW, looks the same like PowMr and many others.
uart debug string shows real values from inverter, pipsolar crc ok, but to HA are sent only zeroes.

[14:39:48][D][pipsolar:839]: Sending polling command : QPIRI with length 5
[14:39:48][D][uart_debug:158]: <<< “QPIRI\xF8T\r”
[14:39:48][D][pipsolar:773]: checking crc on incoming message
[14:39:48][D][pipsolar:776]: CRC OK
[14:39:48][D][pipsolar:430]: Decode QPIRI
[14:39:48][D][text_sensor:064]: ‘inverter0_last_qpiri’: Sending state ‘QPIRI’
[14:39:48][D][sensor:094]: ‘inverter0_grid_rating_voltage’: Sending state 0.00000 V with 1 decimals of accuracy
[14:39:48][D][sensor:094]: ‘inverter0_grid_rating_current’: Sending state 0.00000 A with 1 decimals of accuracy
[14:39:48][D][sensor:094]: ‘inverter0_ac_output_rating_current’: Sending state 0.00000 A with 1 decimals of accuracy
[14:39:48][D][sensor:094]: ‘inverter0_output_source_priority’: Sending state 0.00000 with 1 decimals of accuracy
[14:39:48][D][sensor:094]: ‘inverter0_charger_source_priority’: Sending state 0.00000 with 1 decimals of accuracy
[14:39:48][D][sensor:094]: ‘inverter0_pv_power_balance’: Sending state 0.00000 with 1 decimals of accuracy
[14:39:48][W][component:214]: Component esphome.coroutine took a long time for an operation (0.06 s).
[14:39:48][W][component:215]: Components should block for at most 20-30ms.
[14:39:49][D][uart_debug:158]: <<< “(230.0 26.9 230.0 50.0 26.9 6200 6200 48.0 42.0 42.0 49.2 48.2 2 020 040 1 1 1 1 01 0 0 49.0 0 1\x16\xE8\r”
[14:39:49][D][uart_debug:158]: >>> “QPIGS\xB7\xA9\r”
[14:39:49][D][pipsolar:839]: Sending polling command : QPIGS with length 5
[14:39:49][D][uart_debug:158]: <<< “QPIGS\xB7\xA9\r”
[14:39:49][D][pipsolar:773]: checking crc on incoming message
[14:39:49][D][pipsolar:776]: CRC OK
[14:39:49][D][pipsolar:449]: Decode QPIGS
[14:39:49][D][text_sensor:064]: ‘inverter0_last_qpigs’: Sending state ‘QPIGS’
[14:39:49][D][sensor:094]: ‘inverter0_grid_voltage’: Sending state 0.00000 V with 1 decimals of accuracy
[14:39:49][D][sensor:094]: ‘inverter0_grid_frequency’: Sending state 0.00000 Hz with 1 decimals of accuracy
[14:39:49][D][sensor:094]: ‘inverter0_ac_output_voltage’: Sending state 0.00000 V with 1 decimals of accuracy
[14:39:49][D][sensor:094]: ‘inverter0_ac_output_frequency’: Sending state 0.00000 Hz with 1 decimals of accuracy
[14:39:49][D][sensor:094]: ‘inverter0_ac_output_apparent_power’: Sending state 0.00000 VA with 1 decimals of accuracy
[14:39:49][D][sensor:094]: ‘inverter0_ac_output_active_power’: Sending state 0.00000 W with 1 decimals of accuracy
[14:39:49][D][sensor:094]: ‘inverter0_output_load_percent’: Sending state 0.00000 % with 1 decimals of accuracy
[14:39:49][D][sensor:094]: ‘inverter0_battery_voltage’: Sending state 0.00000 V with 1 decimals of accuracy
[14:39:49][D][sensor:094]: ‘inverter0_battery_charging_current’: Sending state 0.00000 A with 1 decimals of accuracy
[14:39:49][D][sensor:094]: ‘inverter0_battery_capacity_percent’: Sending state 0.00000 % with 1 decimals of accuracy
[14:39:49][D][sensor:094]: ‘inverter0_inverter_heat_sink_temperature’: Sending state 0.00000 °C with 1 decimals of accuracy
[14:39:49][D][sensor:094]: ‘inverter0_pv_input_current_for_battery’: Sending state 0.00000 A with 1 decimals of accuracy
[14:39:49][D][sensor:094]: ‘inverter0_pv_input_voltage’: Sending state 0.00000 V with 1 decimals of accuracy
[14:39:49][D][sensor:094]: ‘inverter0_battery_discharge_current’: Sending state 0.00000 A with 1 decimals of accuracy
[14:39:49][D][sensor:094]: ‘inverter0_pv_charging_power’: Sending state 0.00000 W with 1 decimals of accuracy
[14:39:49][W][component:214]: Component esphome.coroutine took a long time for an operation (0.15 s).
[14:39:50][W][component:215]: Components should block for at most 20-30ms.
[14:39:50][D][uart_debug:158]: <<< “(223.4 49.9 000.0 00.0 0000 0000 000 001 03.40 000 000 0032 00.0 000.0 00.00 00000 00000000 00 00 00000 000b\xD7\r”
[14:39:50][D][uart_debug:158]: >>> “QMODI\xC1\r”
[14:39:50][D][pipsolar:839]: Sending polling command : QMOD with length 4
[14:39:50][D][uart_debug:158]: <<< “QMODI\xC1\r”
[14:39:50][D][pipsolar:773]: checking crc on incoming message
[14:39:50][D][pipsolar:776]: CRC OK
[14:39:50][D][pipsolar:472]: Decode QMOD

Could you create an issue at the mentioned Github project? I will have a look.

I am not familliar with github, but will try.

Follow-up: Daxtromn 6.2kW issue · Issue #98 · syssi/esphome-pipsolar · GitHub

Hello
I have the same inverter. Can you describe how you established communication with the inverter?I try with ESPhome but it doesn’t read the data

Hello, I used your code but it cannot connect to homeassistant successfully. Can you make an example for me?