syssi / esphome-pipsolar

ESPHome component to monitor and control a pipsolar inverter via RS232
Apache License 2.0
78 stars 35 forks source link

PIP 2424MSE1 support #3

Open lucasimons opened 2 years ago

lucasimons commented 2 years ago

Hi, I tried with a 24v inverter from easun which however is identical to the 2424MSE1 of MPP solar looking at the esphome log I see that it sends something but receives nothing I also checked the wiring and I had reversed the red and white cable on the rj45 side, now I believe they are right IMG_20210901_163157

syssi commented 2 years ago

Could you make a better photo of the rj45 connector? I want to make sure you have connected the correct pins. Ignore the color of the wires.

syssi commented 2 years ago

@avion23 Is the rs232 converter wired correctly?

avion23 commented 2 years ago

I'll check again this weekend and upload photos

lucasimons commented 2 years ago

IMG_20210901_181331.jpg I use the original cable that came with the inverter and it have only 4 cable

lucasimons commented 2 years ago

I also have this converter but I search on internet how to connect them but I find different connections IMG_20210901_190543.jpg

syssi commented 2 years ago

You have to connect RX, TX and GND of the RJ45 cable to the Sub-D connector / pins. This circuit could/should help:

max3232-circuit

At the pin header you've to connect RX, TX, VCC3.3 and GND.

syssi commented 2 years ago

Don't connect the blue wire. In my opinion this is 12V VCC of the inverter. We don't need this voltage. ;-)

lucasimons commented 2 years ago

After checking I think I have connected in the correct way but I am waiting for confirmation because it does not work even now IMG_20210901_190543.jpg

rem72 commented 2 years ago

The blue wire is 12v, don't connect it. 12v can drive a buck converter to power the ESP. Thus no need of external power. Try this pinout orange-white -> pin 2 solid orange -> pin 3 solid brown -> pin 5

image

lucasimons commented 2 years ago

Which converter do you use?

rem72 commented 2 years ago

Which converter do you use?

I recently buyed a Voltronic Axpert VMIII 3kw/24v but I'm still having some issues with pipsolar.
I think that is similar to yours. It communicates but seems that protocol is not good.

lucasimons commented 2 years ago

I also have a 2.4kw 24v easun rebranded voltronic, but looking at the logs I don't get any response from the inverter ... Do you have any signs of life from the inverter?

syssi commented 2 years ago

Did you try the increase the log level of the UART component to VERY_VERBOSE? This would dump every transmitted/received byte to the log. This log would help to debug protocol issues.

lucasimons commented 2 years ago

Yes but i see that the esp send the command but the inverter not responding

[08:50:45][D][pipsolar:757]: timeout command to poll: QMOD
[08:50:45][VV][uart_esp8266:111]:     Wrote 0b01010001 (0x51)
[08:50:45][VV][uart_esp8266:111]:     Wrote 0b01000110 (0x46)
[08:50:45][VV][uart_esp8266:111]:     Wrote 0b01001100 (0x4C)
[08:50:45][VV][uart_esp8266:111]:     Wrote 0b01000001 (0x41)
[08:50:45][VV][uart_esp8266:111]:     Wrote 0b01000111 (0x47)
[08:50:45][VV][uart_esp8266:101]:     Wrote 0b10011000 (0x98)
[08:50:45][VV][uart_esp8266:101]:     Wrote 0b01110100 (0x74)
[08:50:45][VV][uart_esp8266:101]:     Wrote 0b00001101 (0x0D)
[08:50:45][D][pipsolar:840]: Sending polling command : QFLAG with length 5
[08:50:45][C][captive_portal:148]: Captive Portal:
[08:50:45][C][api:095]: API Server:
[08:50:45][C][api:096]:   Address: sensor2.local:6053
[08:50:45][VV][scheduler:152]: Running interval 'update' with interval=1000 last_execution=15936 (now=16938)
[08:50:46][VV][scheduler:152]: Running interval 'update' with interval=1000 last_execution=16936 (now=17936)
[08:50:47][VV][scheduler:152]: Running interval 'update' with interval=1000 last_execution=17936 (now=18936)
[08:50:48][VV][scheduler:152]: Running interval 'update' with interval=1000 last_execution=18936 (now=19942)
[08:50:49][VV][scheduler:152]: Running interval 'update' with interval=1000 last_execution=19936 (now=20938)
[08:50:50][D][pipsolar:757]: timeout command to poll: QFLAG
[08:50:50][VV][uart_esp8266:111]:     Wrote 0b01010001 (0x51)
[08:50:50][VV][uart_esp8266:111]:     Wrote 0b01010000 (0x50)
[08:50:50][VV][uart_esp8266:111]:     Wrote 0b01001001 (0x49)
[08:50:50][VV][uart_esp8266:111]:     Wrote 0b01010010 (0x52)
[08:50:50][VV][uart_esp8266:111]:     Wrote 0b01001001 (0x49)
[08:50:50][VV][uart_esp8266:101]:     Wrote 0b11111000 (0xF8)
[08:50:50][VV][uart_esp8266:101]:     Wrote 0b01010100 (0x54)
[08:50:50][VV][uart_esp8266:101]:     Wrote 0b00001101 (0x0D)
[08:50:50][D][pipsolar:840]: Sending polling command : QPIRI with length 5
[08:50:50][VV][scheduler:152]: Running interval 'update' with interval=1000 last_execution=20936 (now=21942)
[08:50:51][VV][scheduler:152]: Running interval 'update' with interval=1000 last_execution=21936 (now=22936)
[08:50:52][VV][scheduler:152]: Running interval 'update' with interval=1000 last_execution=22936 (now=23936)
[08:50:53][VV][scheduler:152]: Running interval 'update' with interval=1000 last_execution=23936 (now=24936)
[08:50:54][VV][scheduler:152]: Running interval 'update' with interval=1000 last_execution=24936 (now=25939)
[08:50:55][D][pipsolar:757]: timeout command to poll: QPIRI
[08:50:55][VV][uart_esp8266:111]:     Wrote 0b01010001 (0x51)
[08:50:55][VV][uart_esp8266:111]:     Wrote 0b01010000 (0x50)
[08:50:55][VV][uart_esp8266:111]:     Wrote 0b01001001 (0x49)
[08:50:55][VV][uart_esp8266:111]:     Wrote 0b01000111 (0x47)
[08:50:55][VV][uart_esp8266:111]:     Wrote 0b01010011 (0x53)
[08:50:55][VV][uart_esp8266:101]:     Wrote 0b10110111 (0xB7)
[08:50:55][VV][uart_esp8266:101]:     Wrote 0b10101001 (0xA9)
[08:50:55][VV][uart_esp8266:101]:     Wrote 0b00001101 (0x0D)
[08:50:55][D][pipsolar:840]: Sending polling command : QPIGS with length 5
[08:50:55][VV][scheduler:152]: Running interval 'update' with interval=1000 last_execution=25936 (now=26936)
[08:50:56][VV][scheduler:152]: Running interval 'update' with interval=1000 last_execution=26936 (now=27943)
[08:50:57][VV][scheduler:152]: Running interval 'update' with interval=1000 last_execution=27936 (now=28936)
[08:50:58][VV][scheduler:152]: Running interval 'update' with interval=1000 last_execution=28936 (now=29939)
[08:50:59][VV][scheduler:152]: Running interval 'update' with interval=1000 last_execution=29936 (now=30937)
[08:51:00][D][pipsolar:757]: timeout command to poll: QPIGS
[08:51:00][VV][uart_esp8266:111]:     Wrote 0b01010001 (0x51)
[08:51:00][VV][uart_esp8266:111]:     Wrote 0b01001101 (0x4D)
[08:51:00][VV][uart_esp8266:111]:     Wrote 0b01001111 (0x4F)
[08:51:00][VV][uart_esp8266:111]:     Wrote 0b01000100 (0x44)
[08:51:00][VV][uart_esp8266:101]:     Wrote 0b01001001 (0x49)
[08:51:00][VV][uart_esp8266:101]:     Wrote 0b11000001 (0xC1)
[08:51:00][VV][uart_esp8266:101]:     Wrote 0b00001101 (0x0D)
[08:51:00][D][pipsolar:840]: Sending polling command : QMOD with length 4
[08:51:00][VV][scheduler:152]: Running interval 'update' with interval=1000 last_execution=30936 (now=31936)
[08:51:01][VV][scheduler:152]: Running interval 'update' with interval=1000 last_execution=31936 (now=32938)
[08:51:02][VV][scheduler:152]: Running interval 'update' with interval=1000 last_execution=32936 (now=33937)
[08:51:03][VV][scheduler:152]: Running interval 'update' with interval=1000 last_execution=33936 (now=34939)
[08:51:04][VV][scheduler:152]: Running interval 'update' with interval=1000 last_execution=34936 (now=35937)
[08:51:05][D][pipsolar:757]: timeout command to poll: QMOD
[08:51:05][VV][uart_esp8266:111]:     Wrote 0b01010001 (0x51)
[08:51:05][VV][uart_esp8266:111]:     Wrote 0b01000110 (0x46)
[08:51:05][VV][uart_esp8266:111]:     Wrote 0b01001100 (0x4C)
[08:51:05][VV][uart_esp8266:111]:     Wrote 0b01000001 (0x41)
[08:51:05][VV][uart_esp8266:111]:     Wrote 0b01000111 (0x47)
[08:51:05][VV][uart_esp8266:101]:     Wrote 0b10011000 (0x98)
[08:51:05][VV][uart_esp8266:101]:     Wrote 0b01110100 (0x74)
[08:51:05][VV][uart_esp8266:101]:     Wrote 0b00001101 (0x0D)
[08:51:05][D][pipsolar:840]: Sending polling command : QFLAG with length 5
[08:51:05][VV][scheduler:152]: Running interval 'update' with interval=1000 last_execution=35936 (now=36936)
[08:51:06][VV][scheduler:152]: Running interval 'update' with interval=1000 last_execution=36936 (now=37939)
[08:51:07][VV][scheduler:152]: Running interval 'update' with interval=1000 last_execution=37936 (now=38936)
[08:51:08][VV][scheduler:152]: Running interval 'update' with interval=1000 last_execution=38936 (now=39937)
[08:51:09][VV][scheduler:152]: Running interval 'update' with interval=1000 last_execution=39936 (now=40936)
[08:51:10][D][pipsolar:757]: timeout command to poll: QFLAG
[08:51:10][VV][uart_esp8266:111]:     Wrote 0b01010001 (0x51)
[08:51:10][VV][uart_esp8266:111]:     Wrote 0b01010000 (0x50)
[08:51:10][VV][uart_esp8266:111]:     Wrote 0b01001001 (0x49)
[08:51:10][VV][uart_esp8266:111]:     Wrote 0b01010010 (0x52)
[08:51:10][VV][uart_esp8266:111]:     Wrote 0b01001001 (0x49)
[08:51:10][VV][uart_esp8266:101]:     Wrote 0b11111000 (0xF8)
[08:51:10][VV][uart_esp8266:101]:     Wrote 0b01010100 (0x54)
[08:51:10][VV][uart_esp8266:101]:     Wrote 0b00001101 (0x0D)
[08:51:10][D][pipsolar:840]: Sending polling command : QPIRI with length 5
[08:51:10][VV][scheduler:152]: Running interval 'update' with interval=1000 last_execution=40936 (now=41936)
[08:51:11][VV][scheduler:152]: Running interval 'update' with interval=1000 last_execution=41936 (now=42940)
[08:51:12][VV][scheduler:152]: Running interval 'update' with interval=1000 last_execution=42936 (now=43936)
[08:51:13][VV][scheduler:152]: Running interval 'update' with interval=1000 last_execution=43936 (now=44938)
[08:51:14][VV][scheduler:152]: Running interval 'update' with interval=1000 last_execution=44936 (now=45936)
[08:51:15][D][pipsolar:757]: timeout command to poll: QPIRI
[08:51:15][VV][uart_esp8266:111]:     Wrote 0b01010001 (0x51)
[08:51:15][VV][uart_esp8266:111]:     Wrote 0b01010000 (0x50)
[08:51:15][VV][uart_esp8266:111]:     Wrote 0b01001001 (0x49)
[08:51:15][VV][uart_esp8266:111]:     Wrote 0b01000111 (0x47)
[08:51:15][VV][uart_esp8266:111]:     Wrote 0b01010011 (0x53)
[08:51:15][VV][uart_esp8266:101]:     Wrote 0b10110111 (0xB7)
[08:51:15][VV][uart_esp8266:101]:     Wrote 0b10101001 (0xA9)
[08:51:15][VV][uart_esp8266:101]:     Wrote 0b00001101 (0x0D)
[08:51:15][D][pipsolar:840]: Sending polling command : QPIGS with length 5
[08:51:15][VV][scheduler:152]: Running interval 'update' with interval=1000 last_execution=45936 (now=46940)
[08:51:16][VV][scheduler:152]: Running interval 'update' with interval=1000 last_execution=46936 (now=47936)
syssi commented 2 years ago

Please make sure the TX LED of the RS232 converter module is flashing periodically. If the RX LED is flashing the module isn't wired correctly.

rem72 commented 2 years ago

I got it working, but not all values are good. Panel voltage and power are 0v and 0w, as you can see in my screenshot. Althought it's charging batteries and powering home from PV's. image

lucasimons commented 2 years ago

In my converter , the smallest haven't led and the biggest ha a led but seems that not blinking IMG_20210902_102807.jpg

lucasimons commented 2 years ago

That's great can you send pictures of your converter and connections on the esp? @rem72

rem72 commented 2 years ago

One thing to take into account for the small RS232-TTL converter, both wires, from rs232 and ttl should be connected at the same face. This is one of my previous errors. For the big one, check the gender of the big connector, if it's female, this are the right connections: image If it is male I think you can use the cable instead of soldering.

rem72 commented 2 years ago

Now I got it working with a small one.

lucasimons commented 2 years ago

Now I connect the tx of the converter with the tx of wemos d1 mini and I see blinking the led but I don't see any data in the log.... IMG_20210902_104447.jpg the converter is the same of your converter female

rem72 commented 2 years ago

Ah! And I used the hardware serial of the wemos d1 instead of a software one, this can be done if you change the logger uart. Which pins do you use for comms? This is my code:

esphome:
  name: solar
  platform: ESP8266
  board: d1_mini

# Enable logging
logger:
  hardware_uart: UART1
  level: verbose

# Enable Home Assistant API
api:

ota:
  password: !secret OTAPass

wifi:
  ssid: !secret Wifi
  password: !secret WifiPass

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Solar Fallback Hotspot"
    password: !secret OTAPass

captive_portal:

uart:
  - id: uart_bus
    tx_pin: TX
    rx_pin: RX
    # most devices use 2400 as baud_rate
    baud_rate: 2400

pipsolar:
  - uart_id: uart_bus
    id: inverter0

sensor:
  - platform: pipsolar
    pipsolar_id: inverter0

    grid_rating_current:
      id: inverter0_grid_rating_current
      name: inverter0_grid_rating_current
    ac_output_active_power:
      id: inverter0_ac_output_active_power
      name: inverter0_ac_output_active_power
    ac_output_apparent_power:
      id: inverter0_ac_output_apparent_power
      name: inverter0_ac_output_apparent_power
    ac_output_voltage:
      id: inverter0_ac_output_voltage
      name: inverter0_ac_output_voltage
    battery_capacity_percent:
      id: inverter0_battery_capacity_percent
      name: inverter0_battery_capacity_percent
    battery_charging_current:
      id: inverter0_battery_charging_current
      name: inverter0_battery_charging_current
    battery_discharge_current:
      id: inverter0_battery_discharge_current
      name: inverter0_battery_discharge_current
    battery_voltage:
      id: inverter0_battery_voltage
      name: inverter0_battery_voltage
    grid_voltage:
      id: inverter0_grid_voltage
      name: inverter0_grid_voltage
    inverter_heat_sink_temperature:
      id: inverter0_inverter_heat_sink_temperature
      name: inverter0_inverter_heat_sink_temperature
    output_load_percent:
      id: inverter0_output_load_percent
      name: inverter0_output_load_percent
    pv_charging_power:
      id: inverter0_pv_charging_power
      name: inverter0_pv_charging_power
    pv_input_voltage:
      id: inverter0_pv_input_voltage
      name: inverter0_pv_input_voltage

text_sensor:
  - platform: pipsolar
    pipsolar_id: inverter0
    device_mode:
      id: inverter0_device_mode
      name: inverter0_device_mode
    last_qpigs:
      id: inverter0_last_qpigs
      name: inverter0_last_qpigs
    last_qpiri:
      id: inverter0_last_qpiri
      name: inverter0_last_qpiri

switch:
  - platform: pipsolar
    pipsolar_id: inverter0
    output_source_priority_utility:
      name: inverter0_output_source_priority_utility
    output_source_priority_solar:
      name: inverter0_output_source_priority_solar
    output_source_priority_battery:
      name: inverter0_output_source_priority_battery
    input_voltage_range:
      name: inverter0_input_voltage_range
    pv_power_balance:
      name: inverter0_pv_power_balance
lucasimons commented 2 years ago

This is my code

esphome:
  name: sensor2
  platform: ESP8266
  board: d1_mini

captive_portal:

# Enable logging
logger:
  baud_rate: 0
  level: VERY_VERBOSE
  logs:
    uart: VERY_VERBOSE 
    uart_esp8266: VERY_VERBOSE 
    api.service: WARN
    ota: WARN
    sensor: DEBUG
# Enable Home Assistant API
api:

ota:

substitutions:
  name: pipsolar

uart:
  id: uart0
  baud_rate: 2400
  tx_pin: GPIO1
  rx_pin: GPIO3

pipsolar:
  uart_id: uart0
  id: inverter0

sensor:
  - platform: pipsolar
    pipsolar_id: inverter0
    # QPIRI
    grid_rating_voltage:
      name: "Inverter grid_rating_voltage"
    grid_rating_current:
      name: "Inveter grid_rating_current"
    ac_output_rating_voltage:
      name: "Inveter ac_output_rating_voltage"
    ac_output_rating_frequency:
      name: "Inveter ac_output_rating_frequency"
    ac_output_rating_current:
      name: "Inveter ac_output_rating_current"
    ac_output_rating_apparent_power:
      name: "Inveter ac_output_rating_apparent_power"
    ac_output_rating_active_power:
      name: "Inveter ac_output_rating_active_power"
    battery_rating_voltage:
      name: "Inveter battery_rating_voltage"
    battery_recharge_voltage:
      name: "Inveter battery_recharge_voltage"
    battery_under_voltage:
      name: "Inveter battery_under_voltage"
    battery_bulk_voltage:
      name: "Inveter battery_bulk_voltage"
    battery_float_voltage:
      name: "Inveter battery_float_voltage"
    battery_type:
      name: "Inveter battery_type"
    current_max_ac_charging_current:
      name: "Inveter current_max_ac_charging_current"
    current_max_charging_current:
      name: "Inveter current_max_charging_current"
    input_voltage_range:
      name: "Inveter input_voltage_range"
    output_source_priority:
      name: "Inveter output_source_priority"
    charger_source_priority:
      name: "Inveter charger_source_priority"
    parallel_max_num:
      name: "Inveter parallel_max_num"
    machine_type:
      name: "Inveter machine_type"
    topology:
      name: "Inveter topology"
    output_mode:
      name: "Inveter output_mode"
    battery_redischarge_voltage:
      name: "Inveter battery_redischarge_voltage"
    pv_ok_condition_for_parallel:
      name: "Inveter pv_ok_condition_for_parallel"
    pv_power_balance:
      name: "Inveter pv_power_balance"

    # QPIGS
    grid_voltage:
      name: "Inveter grid_voltage"
    grid_frequency:
      name: "Inveter grid_frequency"
    ac_output_voltage:
      name: "Inveter ac_output_voltage"
    ac_output_frequency:
      name: "Inveter ac_output_frequency"
    ac_output_apparent_power:
      name: "Inveter ac_output_apparent_power"
    ac_output_active_power:
      name: "Inveter ac_output_active_power"
    output_load_percent:
      name: "Inveter output_load_percent"
    bus_voltage:
      name: "Inveter bus_voltage"
    battery_voltage:
      name: "Inveter battery_voltage"
    battery_charging_current:
      name: "Inveter battery_charging_current"
    battery_capacity_percent:
      name: "Inveter battery_capacity_percent"
    inverter_heat_sink_temperature:
      name: "Inveter inverter_heat_sink_temperature"
    pv_input_current_for_battery:
      name: "Inveter pv_input_current_for_battery"
    pv_input_voltage:
      name: "Inveter pv_input_voltage"
    battery_voltage_scc:
      name: "Inveter battery_voltage_scc"
    battery_discharge_current:
      name: "Inveter battery_discharge_current"
    battery_voltage_offset_for_fans_on:
      name: "Inveter battery_voltage_offset_for_fans_on"
    eeprom_version:
      name: "Inveter eeprom_version"
    pv_charging_power:
      name: "Inveter pv_charging_power"

text_sensor:
  - platform: pipsolar
    pipsolar_id: inverter0
    device_mode:
      name: "Inveter device_mode"
    last_qpigs:
      name: "Inveter last_qpigs"
    last_qpiri:
      name: "Inveter last_qpiri"
    last_qmod:
      name: "Inveter last_qmod"
    last_qflag:
      name: "Inveter last_qflag"

binary_sensor:
  - platform: pipsolar
    pipsolar_id: inverter0
    add_sbu_priority_version:
      name: "Inveter add_sbu_priority_version"
    configuration_status:
      name: "Inveter configuration_status"
    scc_firmware_version:
      name: "Inveter scc_firmware_version"
    load_status:
      name: "Inveter load_status"
    battery_voltage_to_steady_while_charging:
      name: "Inveter battery_voltage_to_steady_while_charging"
    charging_status:
      name: "Inveter charging_status"
    scc_charging_status:
      name: "Inveter scc_charging_status"
    ac_charging_status:
      name: "Inveter ac_charging_status"
    charging_to_floating_mode:
      name: "Inveter charging_to_floating_mode"
    switch_on:
      name: "Inveter switch_on"
    dustproof_installed:
      name: "Inveter dustproof_installed"
    silence_buzzer_open_buzzer:
      name: "Inveter silence_buzzer_open_buzzer"
    overload_bypass_function:
      name: "Inveter overload_bypass_function"
    lcd_escape_to_default:
      name: "Inveter lcd_escape_to_default"
    overload_restart_function:
      name: "Inveter overload_restart_function"
    over_temperature_restart_function:
      name: "Inveter over_temperature_restart_function"
    backlight_on:
      name: "Inveter backlight_on"

switch:
  - platform: pipsolar
    pipsolar_id: inverter0
    output_source_priority_utility:
      name: "Inveter output_source_priority_utility"
    output_source_priority_solar:
      name: "Inveter output_source_priority_solar"
    output_source_priority_battery:
      name: "Inveter output_source_priority_battery"
    input_voltage_range:
      name: "Inveter input_voltage_range"
    pv_ok_condition_for_parallel:
      name: "Inveter pv_ok_condition_for_parallel"
    pv_power_balance:
      name: "Inveter pv_power_balance"

output:
  - platform: pipsolar
    pipsolar_id: inverter0
    battery_recharge_voltage:
      id: inverter0_battery_recharge_voltage_out

This are the connections

IMG_20210902_110227.jpg

rem72 commented 2 years ago

On the other hand, I think decoding of QPIGS isn't fine. Sissy, here is the verbose log:

[10:51:33][D][text_sensor:015]: 'inverter0_last_qpigs': Sending state '(226.7 49.9 226.7 49.9 0498 0479 016 427 27.00 005 100 0035 01.9 255.1 00.00 00000 10010110 00 00 00510 110'
[10:51:33][V][sensor:037]: 'inverter0_grid_voltage': Received new state 226.699997
[10:51:33][D][sensor:131]: 'inverter0_grid_voltage': Sending state 226.70000 V with 1 decimals of accuracy
[10:51:33][V][sensor:037]: 'inverter0_ac_output_voltage': Received new state 226.699997
[10:51:33][D][sensor:131]: 'inverter0_ac_output_voltage': Sending state 226.70000 V with 1 decimals of accuracy
[10:51:33][V][sensor:037]: 'inverter0_ac_output_apparent_power': Received new state 498.000000
[10:51:33][D][sensor:131]: 'inverter0_ac_output_apparent_power': Sending state 498.00000 VA with 1 decimals of accuracy
[10:51:33][V][sensor:037]: 'inverter0_ac_output_active_power': Received new state 479.000000
[10:51:33][D][sensor:131]: 'inverter0_ac_output_active_power': Sending state 479.00000 W with 1 decimals of accuracy
[10:51:33][V][sensor:037]: 'inverter0_output_load_percent': Received new state 16.000000
[10:51:33][D][sensor:131]: 'inverter0_output_load_percent': Sending state 16.00000 % with 1 decimals of accuracy
[10:51:33][V][sensor:037]: 'inverter0_battery_voltage': Received new state 27.000000
[10:51:33][D][sensor:131]: 'inverter0_battery_voltage': Sending state 27.00000 V with 1 decimals of accuracy
[10:51:33][V][sensor:037]: 'inverter0_battery_charging_current': Received new state 5.000000
[10:51:33][D][sensor:131]: 'inverter0_battery_charging_current': Sending state 5.00000 A with 1 decimals of accuracy
[10:51:33][V][sensor:037]: 'inverter0_battery_capacity_percent': Received new state 100.000000
[10:51:33][D][sensor:131]: 'inverter0_battery_capacity_percent': Sending state 100.00000 % with 1 decimals of accuracy
[10:51:33][V][sensor:037]: 'inverter0_inverter_heat_sink_temperature': Received new state 35.000000
[10:51:33][D][sensor:131]: 'inverter0_inverter_heat_sink_temperature': Sending state 35.00000 °C with 1 decimals of accuracy
[10:51:33][V][sensor:037]: 'inverter0_pv_input_voltage': Received new state 0.900000
[10:51:33][D][sensor:131]: 'inverter0_pv_input_voltage': Sending state 0.90000 V with 1 decimals of accuracy
[10:51:33][V][sensor:037]: 'inverter0_battery_discharge_current': Received new state 0.000000
[10:51:33][D][sensor:131]: 'inverter0_battery_discharge_current': Sending state 0.00000 A with 1 decimals of accuracy
[10:51:33][V][sensor:037]: 'inverter0_pv_charging_power': Received new state 0.000000
[10:51:33][D][sensor:131]: 'inverter0_pv_charging_power': Sending state 0.00000 W with 1 decimals of accuracy
[10:51:33][V][app:082]: A component took a long time in a loop() cycle (0.21 s).
[10:51:33][V][app:083]: Components should block for at most 20-30ms in loop().
rem72 commented 2 years ago

But if you use the hardware uart = uart0 you have to send the logger output to the secondary uart = uart1. Check these lines:

logger: hardware_uart: UART1

lucasimons commented 2 years ago

Yes i see your code and i update my code, now i see that write ant read somethings

[11:23:14][D][pipsolar:840]: Sending polling command : QPIRI with length 5
[11:23:14][VV][uart_esp8266:132]:     Read 0b10101010 (0xAA)
[11:23:14][VV][uart_esp8266:132]:     Read 0b01001010 (0x4A)
[11:23:14][VV][uart_esp8266:132]:     Read 0b10010101 (0x95)
[11:23:14][VV][uart_esp8266:132]:     Read 0b11100001 (0xE1)
[11:23:14][VV][uart_esp8266:132]:     Read 0b11111111 (0xFF)
[11:23:15][VV][scheduler:152]: Running interval 'update' with interval=1000 last_execution=242368 (now=243373)
[11:23:16][VV][scheduler:152]: Running interval 'update' with interval=1000 last_execution=243368 (now=244369)
[11:23:17][VV][scheduler:152]: Running interval 'update' with interval=1000 last_execution=244368 (now=245372)
[11:23:18][VV][scheduler:152]: Running interval 'update' with interval=1000 last_execution=245368 (now=246368)
[11:23:19][VV][scheduler:152]: Running interval 'update' with interval=1000 last_execution=246368 (now=247376)
[11:23:19][D][pipsolar:757]: timeout command to poll: QPIRI
[11:23:19][VV][uart_esp8266:111]:     Wrote 0b01010001 (0x51)
[11:23:19][VV][uart_esp8266:111]:     Wrote 0b01010000 (0x50)
[11:23:19][VV][uart_esp8266:111]:     Wrote 0b01001001 (0x49)
[11:23:19][VV][uart_esp8266:111]:     Wrote 0b01000111 (0x47)
[11:23:19][VV][uart_esp8266:111]:     Wrote 0b01010011 (0x53)
[11:23:19][VV][uart_esp8266:101]:     Wrote 0b10110111 (0xB7)
[11:23:19][VV][uart_esp8266:101]:     Wrote 0b10101001 (0xA9)
[11:23:19][VV][uart_esp8266:101]:     Wrote 0b00001101 (0x0D)
[11:23:19][D][pipsolar:840]: Sending polling command : QPIGS with length 5
[11:23:19][VV][uart_esp8266:132]:     Read 0b10101010 (0xAA)
[11:23:19][VV][uart_esp8266:132]:     Read 0b11101010 (0xEA)
[11:23:19][VV][uart_esp8266:132]:     Read 0b01101010 (0x6A)
[11:23:19][VV][uart_esp8266:132]:     Read 0b11110101 (0xF5)
[11:23:19][VV][uart_esp8266:132]:     Read 0b11111111 (0xFF)
[11:23:20][VV][scheduler:152]: Running interval 'update' with interval=1000 last_execution=247368 (now=248368)
[11:23:21][VV][scheduler:152]: Running interval 'update' with interval=1000 last_execution=248368 (now=249375)
[11:23:22][VV][scheduler:152]: Running interval 'update' with interval=1000 last_execution=249368 (now=250368)
[11:23:23][VV][scheduler:152]: Running interval 'update' with interval=1000 last_execution=250368 (now=251371)
[11:23:24][VV][scheduler:152]: Running interval 'update' with interval=1000 last_execution=251368 (now=252370)
[11:23:24][D][pipsolar:757]: timeout command to poll: QPIGS
[11:23:24][VV][uart_esp8266:111]:     Wrote 0b01010001 (0x51)
[11:23:24][VV][uart_esp8266:111]:     Wrote 0b01001101 (0x4D)
[11:23:24][VV][uart_esp8266:111]:     Wrote 0b01001111 (0x4F)
[11:23:24][VV][uart_esp8266:111]:     Wrote 0b01000100 (0x44)
[11:23:24][VV][uart_esp8266:101]:     Wrote 0b01001001 (0x49)
[11:23:24][VV][uart_esp8266:101]:     Wrote 0b11000001 (0xC1)
[11:23:24][VV][uart_esp8266:101]:     Wrote 0b00001101 (0x0D)
[11:23:24][D][pipsolar:840]: Sending polling command : QMOD with length 4
[11:23:24][VV][uart_esp8266:132]:     Read 0b11111111 (0xFF)
[11:23:24][VV][uart_esp8266:132]:     Read 0b11111110 (0xFE)
[11:23:24][VV][uart_esp8266:132]:     Read 0b11111111 (0xFF)
[11:23:25][VV][scheduler:152]: Running interval 'update' with interval=1000 last_execution=252368 (now=253370)
[11:23:26][VV][scheduler:152]: Running interval 'update' with interval=1000 last_execution=253368 (now=254368)
[11:23:27][VV][scheduler:152]: Running interval 'update' with interval=1000 last_execution=254368 (now=255368)
[11:23:28][VV][scheduler:152]: Running interval 'update' with interval=1000 last_execution=255368 (now=256373)
[11:23:29][VV][scheduler:152]: Running interval 'update' with interval=1000 last_execution=256368 (now=257370)
[11:23:29][D][pipsolar:757]: timeout command to poll: QMOD
[11:23:29][VV][uart_esp8266:111]:     Wrote 0b01010001 (0x51)
[11:23:29][VV][uart_esp8266:111]:     Wrote 0b01000110 (0x46)
[11:23:29][VV][uart_esp8266:111]:     Wrote 0b01001100 (0x4C)
[11:23:29][VV][uart_esp8266:111]:     Wrote 0b01000001 (0x41)
[11:23:29][VV][uart_esp8266:111]:     Wrote 0b01000111 (0x47)
[11:23:29][VV][uart_esp8266:101]:     Wrote 0b10011000 (0x98)
[11:23:29][VV][uart_esp8266:101]:     Wrote 0b01110100 (0x74)
[11:23:29][VV][uart_esp8266:101]:     Wrote 0b00001101 (0x0D)
[11:23:29][D][pipsolar:840]: Sending polling command : QFLAG with length 5
[11:23:29][VV][uart_esp8266:132]:     Read 0b11101010 (0xEA)
[11:23:29][VV][uart_esp8266:132]:     Read 0b00001010 (0x0A)
[11:23:29][VV][uart_esp8266:132]:     Read 0b01000110 (0x46)
[11:23:29][VV][uart_esp8266:132]:     Read 0b11111111 (0xFF)

if i connect the TX of the converter with the RX of wemos i see that write something but doesn t read anythigs,

syssi commented 2 years ago

Good job! Please try to understand what you have changed in detail. So we can improve the configuration example at this repository.

@rem72 We can give it a try to understand and correct the QPIGS readings later the day!

lucasimons commented 2 years ago

I tried to put back the connections tx to tx and rx to rx but now in the log I only see something writing but it doesn't read anything, the right connection should be the inverted one so rx to tx @rem72

rem72 commented 2 years ago

@syssi, these are the values for my inverter PV's

(225.8 49.9 225.8 49.9 0609 0565 020 427 27.00 005 100 0035 02.2 259.9 00.00 00000 10010110 00 00 00590 110 (aaa.a bb.b ccc.c dd.d eeee ffff ggg hhh ii.ii jjj kkk llll mm.m nnn.n oo.oo ppppp qqqqqqqq rr ss ttttt uuu

nnn.n = PV Voltage ttttt = PV input power

But I don't know how to change them

lucasimons commented 2 years ago

Ah but you have the inverter that can mix the grid with the panels because I noticed the voltage of the panels at 259v but I have the version with 40a mppt regulator but maximum voltage 100v anyway it shouldn't change anything because at the time I tried through software watchpower and PC and I had qpigs with the same organization

112745133-767a4600-8fa6-11eb-8f94-1f2aa9641dfb.png ...

Instead how did you connect the converter to the wemos? @rem72

syssi commented 2 years ago

This is the code which needs to be improved to support your device:

https://github.com/syssi/esphome-pipsolar/blob/2424mse1/components/pipsolar/pipsolar.cpp#L449-L467

I've pushed a feature branch to improve the device support of the 2424mse1. This feature branch can be easily used by adding the following lines to the yaml:

external_components:
  - source: github://syssi/esphome-pipsolar@2424mse1
    refresh: 0s

This overrides the official component. Let's try introduce the required changes for your device here.

rem72 commented 2 years ago

@lucasimons This is my actual configuration: 20210902_104351 20210902_123052 20210902_123212

Thanks for the improvement, Maybe the right config can be done at yaml level instead of .cpp, I'll give a try and let you know the result.

lucasimons commented 2 years ago

Thanks now i have two wemos that the connection are correct, one is with the small converter in the first pics of this thread, one with the big converter i can use they to test the new code...

this is the log of my inverter connected with the pc debug-watchpower.zip

syssi commented 2 years ago

@rem72 At the moment it's not possible to change the QPIGS parsing via the yaml configuration. Is soon we've created a proper parser for your device we can introduce a device toggle at the configuration layer.

syssi commented 2 years ago

@lucasimons I've created a feature branch only (without any changes). It will take some time to update the parser. You could give it a try!

lucasimons commented 2 years ago

unfortunately I don't know how to help in modifying the code, I currently use solpiplog and it works but I don't know if you can get something by looking at that code, one other project is that https://github.com/daromer2/InverterOfThings/

rem72 commented 2 years ago

Hi, looking at the code I can see a data type mismatch, that may cause the wrong parse for my power inverter, as said before, it's a VOLTRONIC Axpert VMIII 3KW/24volt Thank so much both, I'll wait until the device toggle. Great work!!!

avion23 commented 2 years ago

Here are the promised pictures.

I know it's difficult to see. I fanned out the network cable to 1234 from the top and then 5678 to the right. If you build something like this then include a bulk capacitor (bottom). The ESP-Module sometimes sips 500mA

IMG_20210902_193636

blue / white is rx / tx (I don't remember which one). IMG_20210902_193719

lucasimons commented 2 years ago

Thanks @avion23, Which inverter do you have?

andreashergert1984 commented 2 years ago

Here are the promised pictures.

I know it's difficult to see. I fanned out the network cable to 1234 from the top and then 5678 to the right. If you build something like this then include a bulk capacitor (bottom). The ESP-Module sometimes sips 500mA

IMG_20210902_193636

blue / white is rx / tx (I don't remember which one). IMG_20210902_193719

remeber the ESP is NOT TTL (5V) level. You need you uart signal at 3.3v Level. I had issues when directly connection the TTL-Level(5V). therefor perhaps the max3232 chip is better. Is made a board where i can directly connect 2 Invertes (but one works also ).. if there is the need i can make the data available.. or even let a pcb-fab do some for shipping?

image

lucasimons commented 2 years ago

Hi, I tried with a 24v inverter from easun which however is identical to the 2424MSE1 of MPP solar looking at the esphome log I see that it sends something but receives nothing I also checked the wiring and I had reversed the red and white cable on the rj45 side, now I believe they are right IMG_20210901_163157

@andreashergert1984 this is my converter but seems that write something but not receive anything from the inverter

syssi commented 2 years ago

I've pushed a fix for the QPIGS response:

https://github.com/syssi/esphome-pipsolar/commit/3fe7d85796518b445954d0dde61e5e8a2b549822

To illustrate the QPIGS parser I've introduced some comments:

https://github.com/syssi/esphome-pipsolar/compare/40f50a89ae1699e00398244966413b9569bb439c...3fe7d85796518b445954d0dde61e5e8a2b549822

Please give it a try by adding this external/fixed component to your YAML:

external_components:
  - source: github://syssi/esphome-pipsolar@2424mse1
    refresh: 0s
avion23 commented 2 years ago

@lucasimons you also need 3.3V on the inverter side. The way it is right now, the high voltage side is not powered. The converter board has a little charge pump which generates the ~15V from your 3.3V.

Do not connect the 12V ;) Then you need a new converter.

I have some PIP-5048MS (?) Clone

andreashergert1984 commented 2 years ago

@lucasimons you also need 3.3V on the inverter side. The way it is right now, the high voltage side is not powered. The converter board has a little charge pump which generates the ~15V from your 3.3V.

Do not connect the 12V ;) Then you need a new converter.

I have some PIP-5048MS (?) Clone

i actually us the ~15V to power the ESP32 Board. With a Step-Down. But it needs both inverters to deliver enough power.. so i will observe this...

lucasimons commented 2 years ago

This is my code

esphome:
  name: sensor2
  platform: ESP8266
  board: d1_mini

captive_portal:

# Enable logging
logger:
  baud_rate: 0
  level: VERY_VERBOSE
  logs:
    uart: VERY_VERBOSE 
    uart_esp8266: VERY_VERBOSE 
    api.service: WARN
    ota: WARN
    sensor: DEBUG
# Enable Home Assistant API
api:

ota:

substitutions:
  name: pipsolar

uart:
  id: uart0
  baud_rate: 2400
  tx_pin: GPIO1
  rx_pin: GPIO3

pipsolar:
  uart_id: uart0
  id: inverter0

sensor:
  - platform: pipsolar
    pipsolar_id: inverter0
    # QPIRI
    grid_rating_voltage:
      name: "Inverter grid_rating_voltage"
    grid_rating_current:
      name: "Inveter grid_rating_current"
    ac_output_rating_voltage:
      name: "Inveter ac_output_rating_voltage"
    ac_output_rating_frequency:
      name: "Inveter ac_output_rating_frequency"
    ac_output_rating_current:
      name: "Inveter ac_output_rating_current"
    ac_output_rating_apparent_power:
      name: "Inveter ac_output_rating_apparent_power"
    ac_output_rating_active_power:
      name: "Inveter ac_output_rating_active_power"
    battery_rating_voltage:
      name: "Inveter battery_rating_voltage"
    battery_recharge_voltage:
      name: "Inveter battery_recharge_voltage"
    battery_under_voltage:
      name: "Inveter battery_under_voltage"
    battery_bulk_voltage:
      name: "Inveter battery_bulk_voltage"
    battery_float_voltage:
      name: "Inveter battery_float_voltage"
    battery_type:
      name: "Inveter battery_type"
    current_max_ac_charging_current:
      name: "Inveter current_max_ac_charging_current"
    current_max_charging_current:
      name: "Inveter current_max_charging_current"
    input_voltage_range:
      name: "Inveter input_voltage_range"
    output_source_priority:
      name: "Inveter output_source_priority"
    charger_source_priority:
      name: "Inveter charger_source_priority"
    parallel_max_num:
      name: "Inveter parallel_max_num"
    machine_type:
      name: "Inveter machine_type"
    topology:
      name: "Inveter topology"
    output_mode:
      name: "Inveter output_mode"
    battery_redischarge_voltage:
      name: "Inveter battery_redischarge_voltage"
    pv_ok_condition_for_parallel:
      name: "Inveter pv_ok_condition_for_parallel"
    pv_power_balance:
      name: "Inveter pv_power_balance"

    # QPIGS
    grid_voltage:
      name: "Inveter grid_voltage"
    grid_frequency:
      name: "Inveter grid_frequency"
    ac_output_voltage:
      name: "Inveter ac_output_voltage"
    ac_output_frequency:
      name: "Inveter ac_output_frequency"
    ac_output_apparent_power:
      name: "Inveter ac_output_apparent_power"
    ac_output_active_power:
      name: "Inveter ac_output_active_power"
    output_load_percent:
      name: "Inveter output_load_percent"
    bus_voltage:
      name: "Inveter bus_voltage"
    battery_voltage:
      name: "Inveter battery_voltage"
    battery_charging_current:
      name: "Inveter battery_charging_current"
    battery_capacity_percent:
      name: "Inveter battery_capacity_percent"
    inverter_heat_sink_temperature:
      name: "Inveter inverter_heat_sink_temperature"
    pv_input_current_for_battery:
      name: "Inveter pv_input_current_for_battery"
    pv_input_voltage:
      name: "Inveter pv_input_voltage"
    battery_voltage_scc:
      name: "Inveter battery_voltage_scc"
    battery_discharge_current:
      name: "Inveter battery_discharge_current"
    battery_voltage_offset_for_fans_on:
      name: "Inveter battery_voltage_offset_for_fans_on"
    eeprom_version:
      name: "Inveter eeprom_version"
    pv_charging_power:
      name: "Inveter pv_charging_power"

text_sensor:
  - platform: pipsolar
    pipsolar_id: inverter0
    device_mode:
      name: "Inveter device_mode"
    last_qpigs:
      name: "Inveter last_qpigs"
    last_qpiri:
      name: "Inveter last_qpiri"
    last_qmod:
      name: "Inveter last_qmod"
    last_qflag:
      name: "Inveter last_qflag"

binary_sensor:
  - platform: pipsolar
    pipsolar_id: inverter0
    add_sbu_priority_version:
      name: "Inveter add_sbu_priority_version"
    configuration_status:
      name: "Inveter configuration_status"
    scc_firmware_version:
      name: "Inveter scc_firmware_version"
    load_status:
      name: "Inveter load_status"
    battery_voltage_to_steady_while_charging:
      name: "Inveter battery_voltage_to_steady_while_charging"
    charging_status:
      name: "Inveter charging_status"
    scc_charging_status:
      name: "Inveter scc_charging_status"
    ac_charging_status:
      name: "Inveter ac_charging_status"
    charging_to_floating_mode:
      name: "Inveter charging_to_floating_mode"
    switch_on:
      name: "Inveter switch_on"
    dustproof_installed:
      name: "Inveter dustproof_installed"
    silence_buzzer_open_buzzer:
      name: "Inveter silence_buzzer_open_buzzer"
    overload_bypass_function:
      name: "Inveter overload_bypass_function"
    lcd_escape_to_default:
      name: "Inveter lcd_escape_to_default"
    overload_restart_function:
      name: "Inveter overload_restart_function"
    over_temperature_restart_function:
      name: "Inveter over_temperature_restart_function"
    backlight_on:
      name: "Inveter backlight_on"

switch:
  - platform: pipsolar
    pipsolar_id: inverter0
    output_source_priority_utility:
      name: "Inveter output_source_priority_utility"
    output_source_priority_solar:
      name: "Inveter output_source_priority_solar"
    output_source_priority_battery:
      name: "Inveter output_source_priority_battery"
    input_voltage_range:
      name: "Inveter input_voltage_range"
    pv_ok_condition_for_parallel:
      name: "Inveter pv_ok_condition_for_parallel"
    pv_power_balance:
      name: "Inveter pv_power_balance"

output:
  - platform: pipsolar
    pipsolar_id: inverter0
    battery_recharge_voltage:
      id: inverter0_battery_recharge_voltage_out

This are the connections

IMG_20210902_110227.jpg

I try the new code with the two converter but I don't see any response

andreashergert1984 commented 2 years ago

This is my code

esphome:
  name: sensor2
  platform: ESP8266
  board: d1_mini

captive_portal:

# Enable logging
logger:
  baud_rate: 0
  level: VERY_VERBOSE
  logs:
    uart: VERY_VERBOSE 
    uart_esp8266: VERY_VERBOSE 
    api.service: WARN
    ota: WARN
    sensor: DEBUG
# Enable Home Assistant API
api:

ota:

substitutions:
  name: pipsolar

uart:
  id: uart0
  baud_rate: 2400
  tx_pin: GPIO1
  rx_pin: GPIO3

pipsolar:
  uart_id: uart0
  id: inverter0

sensor:
  - platform: pipsolar
    pipsolar_id: inverter0
    # QPIRI
    grid_rating_voltage:
      name: "Inverter grid_rating_voltage"
    grid_rating_current:
      name: "Inveter grid_rating_current"
    ac_output_rating_voltage:
      name: "Inveter ac_output_rating_voltage"
    ac_output_rating_frequency:
      name: "Inveter ac_output_rating_frequency"
    ac_output_rating_current:
      name: "Inveter ac_output_rating_current"
    ac_output_rating_apparent_power:
      name: "Inveter ac_output_rating_apparent_power"
    ac_output_rating_active_power:
      name: "Inveter ac_output_rating_active_power"
    battery_rating_voltage:
      name: "Inveter battery_rating_voltage"
    battery_recharge_voltage:
      name: "Inveter battery_recharge_voltage"
    battery_under_voltage:
      name: "Inveter battery_under_voltage"
    battery_bulk_voltage:
      name: "Inveter battery_bulk_voltage"
    battery_float_voltage:
      name: "Inveter battery_float_voltage"
    battery_type:
      name: "Inveter battery_type"
    current_max_ac_charging_current:
      name: "Inveter current_max_ac_charging_current"
    current_max_charging_current:
      name: "Inveter current_max_charging_current"
    input_voltage_range:
      name: "Inveter input_voltage_range"
    output_source_priority:
      name: "Inveter output_source_priority"
    charger_source_priority:
      name: "Inveter charger_source_priority"
    parallel_max_num:
      name: "Inveter parallel_max_num"
    machine_type:
      name: "Inveter machine_type"
    topology:
      name: "Inveter topology"
    output_mode:
      name: "Inveter output_mode"
    battery_redischarge_voltage:
      name: "Inveter battery_redischarge_voltage"
    pv_ok_condition_for_parallel:
      name: "Inveter pv_ok_condition_for_parallel"
    pv_power_balance:
      name: "Inveter pv_power_balance"

    # QPIGS
    grid_voltage:
      name: "Inveter grid_voltage"
    grid_frequency:
      name: "Inveter grid_frequency"
    ac_output_voltage:
      name: "Inveter ac_output_voltage"
    ac_output_frequency:
      name: "Inveter ac_output_frequency"
    ac_output_apparent_power:
      name: "Inveter ac_output_apparent_power"
    ac_output_active_power:
      name: "Inveter ac_output_active_power"
    output_load_percent:
      name: "Inveter output_load_percent"
    bus_voltage:
      name: "Inveter bus_voltage"
    battery_voltage:
      name: "Inveter battery_voltage"
    battery_charging_current:
      name: "Inveter battery_charging_current"
    battery_capacity_percent:
      name: "Inveter battery_capacity_percent"
    inverter_heat_sink_temperature:
      name: "Inveter inverter_heat_sink_temperature"
    pv_input_current_for_battery:
      name: "Inveter pv_input_current_for_battery"
    pv_input_voltage:
      name: "Inveter pv_input_voltage"
    battery_voltage_scc:
      name: "Inveter battery_voltage_scc"
    battery_discharge_current:
      name: "Inveter battery_discharge_current"
    battery_voltage_offset_for_fans_on:
      name: "Inveter battery_voltage_offset_for_fans_on"
    eeprom_version:
      name: "Inveter eeprom_version"
    pv_charging_power:
      name: "Inveter pv_charging_power"

text_sensor:
  - platform: pipsolar
    pipsolar_id: inverter0
    device_mode:
      name: "Inveter device_mode"
    last_qpigs:
      name: "Inveter last_qpigs"
    last_qpiri:
      name: "Inveter last_qpiri"
    last_qmod:
      name: "Inveter last_qmod"
    last_qflag:
      name: "Inveter last_qflag"

binary_sensor:
  - platform: pipsolar
    pipsolar_id: inverter0
    add_sbu_priority_version:
      name: "Inveter add_sbu_priority_version"
    configuration_status:
      name: "Inveter configuration_status"
    scc_firmware_version:
      name: "Inveter scc_firmware_version"
    load_status:
      name: "Inveter load_status"
    battery_voltage_to_steady_while_charging:
      name: "Inveter battery_voltage_to_steady_while_charging"
    charging_status:
      name: "Inveter charging_status"
    scc_charging_status:
      name: "Inveter scc_charging_status"
    ac_charging_status:
      name: "Inveter ac_charging_status"
    charging_to_floating_mode:
      name: "Inveter charging_to_floating_mode"
    switch_on:
      name: "Inveter switch_on"
    dustproof_installed:
      name: "Inveter dustproof_installed"
    silence_buzzer_open_buzzer:
      name: "Inveter silence_buzzer_open_buzzer"
    overload_bypass_function:
      name: "Inveter overload_bypass_function"
    lcd_escape_to_default:
      name: "Inveter lcd_escape_to_default"
    overload_restart_function:
      name: "Inveter overload_restart_function"
    over_temperature_restart_function:
      name: "Inveter over_temperature_restart_function"
    backlight_on:
      name: "Inveter backlight_on"

switch:
  - platform: pipsolar
    pipsolar_id: inverter0
    output_source_priority_utility:
      name: "Inveter output_source_priority_utility"
    output_source_priority_solar:
      name: "Inveter output_source_priority_solar"
    output_source_priority_battery:
      name: "Inveter output_source_priority_battery"
    input_voltage_range:
      name: "Inveter input_voltage_range"
    pv_ok_condition_for_parallel:
      name: "Inveter pv_ok_condition_for_parallel"
    pv_power_balance:
      name: "Inveter pv_power_balance"

output:
  - platform: pipsolar
    pipsolar_id: inverter0
    battery_recharge_voltage:
      id: inverter0_battery_recharge_voltage_out

This are the connections IMG_20210902_110227.jpg

I try the new code with the two converter but I don't see any response

could you provide a schematic of your connections?

syssi commented 2 years ago

@lucasimons If your inverter always responds with a very short answer you could try to increase the baud rate (4800, 9600, 19200).

andreashergert1984 commented 2 years ago

@lucasimons If your inverter always responds with a very short answer you could try to increase the baud rate (4800, 9600, 19200).

good point. i would first try to directly connect a PC to the inverter.. and check if there an answer gets out at least an error (NACK) or else.

lucasimons commented 2 years ago

I am also using an rp4 with solpiplog and that works but it is connected via usb, however now I try to see if the esp sends something by connecting it to the PC via a ttl to usb converter

andreashergert1984 commented 2 years ago

I am also using an rp4 with solpiplog and that works but it is connected via usb, however now I try to see if the esp sends something by connecting it to the PC via a ttl to usb converter

i would do a step by step check.. does you esp send the commands correctly out ? just loop your rx and tx pin on esp.. to another/same/arduino and listen to uart data. Then check the level shifter.. i also had some dead on arrival.