syssi / esphome-pipsolar

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

Easun ISolar SML 3K - Not Working #21

Closed AtarianComputing closed 1 year ago

AtarianComputing commented 2 years ago

image

It has a RJ45 COM-port that I've used to this day to connect it to my server via the RJ45/DB9 cable they provided using the WatchPower software. I can confirm that everything works there.

The said cable contains three wires that I have verified to be the same pinouts as described here. RJ45 pins 1,2,8 go to DB9 pins 2,3,5 respectively.

I have used three different TTL converters with MAX3238, MAX3232, MAX202, with the same results. The one converter that has LEDs either pulses the TX light without any activity from RX. The times when I get the null results regardless of whether the RJ45 cable is plugged or not, the RX and TX lights pulse simultaneously. Someone here with the same problem said that it turned out to be bad wiring.

I've tried every conceivable combination of wiring, different wires, different GPIOs with no improvements. Clearly I'm not getting any data from the inverter. Could my model be so incompatible that I'm not getting anything despite it working with what I understand to be a universal software, WatchPower?

Here is my current configuration:

substitutions:
  name: atarian-solar

esphome:
  name: ${name}

esp32:
  board: nodemcu-32s

#external_components:
#  - source: github://syssi/esphome-pipsolar@2424mse1
#    refresh: 0s
#    components: [pipsolar]
#external_components:
#  - source: github://andreashergert1984/esphome@test_newcrc
#    refresh: 0s
#    components: [pipsolar]

# Enable logging
logger:
  level: VERY_VERBOSE
  logs:
    uart: VERY_VERBOSE
    uart.arduino_esp8266: VERY_VERBOSE
    # Make some components less verbose
    api.service: WARN
    ota: WARN

# Enable Home Assistant API
api:
  encryption:
    key: "hth45h4hhah6ikh534="

ota:
  password: "g446h53hqsht645h45h5"

wifi:
  ssid: !secret wifi_linksys_ssid
  password: !secret wifi_linksys_password

  # Enable fallback hotspot in case wifi connection fails
  ap:
    ssid: "Atarian-Solar Fallback Hotspot"
    password: "aerg45jjarh"

uart:
  - id: uart_bus
    tx_pin: GPIO19
    rx_pin: GPIO18
    # most devices use 2400 as baud_rate
    baud_rate: 2400
    debug:
      direction: BOTH

pipsolar:
  uart_id: uart_bus
  id: inverter0
  update_interval: 10s

sensor:
  - platform: pipsolar
    pipsolar_id: inverter0

    grid_voltage:
      name: "${name} grid_voltage"
    grid_frequency:
      name: "${name} grid_frequency"
    ac_output_voltage:
      name: "${name} ac_output_voltage"
    ac_output_frequency:
      name: "${name} ac_output_frequency"
    ac_output_apparent_power:
      name: "${name} ac_output_apparent_power"
    ac_output_active_power:
      name: "${name} ac_output_active_power"
    output_load_percent:
      name: "${name} output_load_percent"
    bus_voltage:
      name: "${name} bus_voltage"
    battery_voltage:
      name: "${name} battery_voltage"
    battery_charging_current:
      name: "${name} battery_charging_current"
    battery_capacity_percent:
      name: "${name} battery_capacity_percent"
    inverter_heat_sink_temperature:
      name: "${name} inverter_heat_sink_temperature"
    pv_input_current_for_battery:
      name: "${name} pv_input_current_for_battery"
    pv_input_voltage:
      name: "${name} pv_input_voltage"
    battery_voltage_scc:
      name: "${name} battery_voltage_scc"
    battery_discharge_current:
      name: "${name} battery_discharge_current"
    battery_voltage_offset_for_fans_on:
      name: "${name} battery_voltage_offset_for_fans_on"
    eeprom_version:
      name: "${name} eeprom_version"
    pv_charging_power:
      name: "${name}  pv_charging_power"

binary_sensor:
  - platform: pipsolar
    pipsolar_id: inverter0
    add_sbu_priority_version:
      name: "${name} add_sbu_priority_version"
    configuration_status:
      name: "${name} configuration_status"
    scc_firmware_version:
      name: "${name} scc_firmware_version"
    load_status:
      name: "${name} load_status"
    battery_voltage_to_steady_while_charging:
      name: "${name} battery_voltage_to_steady_while_charging"
    charging_status:
      name: "${name} charging_status"
    scc_charging_status:
      name: "${name} scc_charging_status"
    ac_charging_status:
      name: "${name} ac_charging_status"
    charging_to_floating_mode:
      name: "${name} charging_to_floating_mode"
    switch_on:
      name: "${name} switch_on"

This is the output:

[20:00:07][D][pipsolar:838]: Sending polling command : QPIGS with length 5
[20:00:07][D][uart_debug:114]: >>> 51:50:49:47:53:B7:A9:0D
[20:00:12][D][pipsolar:755]: timeout command to poll: QPIGS
[20:00:12][VV][scheduler:196]: Running interval 'update' with interval=10000 last_execution=1056434 (now=1066435)
[20:00:17][D][pipsolar:838]: Sending polling command : QPIGS with length 5
[20:00:17][D][uart_debug:114]: >>> 51:50:49:47:53:B7:A9:0D
[20:00:22][D][pipsolar:755]: timeout command to poll: QPIGS

Switching the TX/RX pins in the config file results in this:

[20:02:14][D][uart_debug:114]: <<< 51:50:49:47:53:B7:A9:0D
[20:02:23][VV][scheduler:196]: Running interval 'update' with interval=10000 last_execution=19325 (now=29325)
[20:02:24][D][pipsolar:838]: Sending polling command : QPIGS with length 5
[20:02:24][D][uart_debug:114]: >>> 51:50:49:47:53:B7:A9:0D
[20:02:24][D][pipsolar:772]: checking crc on incoming message
[20:02:24][D][pipsolar:775]: CRC OK
[20:02:24][D][pipsolar:448]: Decode QPIGS
[20:02:24][V][sensor:074]: 'atarian-solar grid_voltage': Received new state 0.000000
[20:02:24][D][sensor:125]: 'atarian-solar grid_voltage': Sending state 0.00000 V with 1 decimals of accuracy
[20:02:24][V][sensor:074]: 'atarian-solar grid_frequency': Received new state 0.000000
[20:02:24][D][sensor:125]: 'atarian-solar grid_frequency': Sending state 0.00000 Hz with 1 decimals of accuracy
[20:02:24][V][sensor:074]: 'atarian-solar ac_output_voltage': Received new state 0.000000
[20:02:24][D][sensor:125]: 'atarian-solar ac_output_voltage': Sending state 0.00000 V with 1 decimals of accuracy
[20:02:24][V][sensor:074]: 'atarian-solar ac_output_frequency': Received new state 0.000000
[20:02:24][D][sensor:125]: 'atarian-solar ac_output_frequency': Sending state 0.00000 Hz with 1 decimals of accuracy
[20:02:24][V][sensor:074]: 'atarian-solar ac_output_apparent_power': Received new state 0.000000
[20:02:24][D][sensor:125]: 'atarian-solar ac_output_apparent_power': Sending state 0.00000 VA with 1 decimals of accuracy
[20:02:24][V][sensor:074]: 'atarian-solar ac_output_active_power': Received new state 0.000000
[20:02:24][D][sensor:125]: 'atarian-solar ac_output_active_power': Sending state 0.00000 W with 1 decimals of accuracy
[20:02:24][V][sensor:074]: 'atarian-solar output_load_percent': Received new state 0.000000
[20:02:24][D][sensor:125]: 'atarian-solar output_load_percent': Sending state 0.00000 % with 1 decimals of accuracy
[20:02:24][V][sensor:074]: 'atarian-solar bus_voltage': Received new state 0.000000
[20:02:24][D][sensor:125]: 'atarian-solar bus_voltage': Sending state 0.00000 V with 1 decimals of accuracy
[20:02:24][V][sensor:074]: 'atarian-solar battery_voltage': Received new state 0.000000
[20:02:24][D][sensor:125]: 'atarian-solar battery_voltage': Sending state 0.00000 V with 1 decimals of accuracy
[20:02:24][V][sensor:074]: 'atarian-solar battery_charging_current': Received new state 0.000000
[20:02:24][D][sensor:125]: 'atarian-solar battery_charging_current': Sending state 0.00000 A with 1 decimals of accuracy
[20:02:24][V][sensor:074]: 'atarian-solar battery_capacity_percent': Received new state 0.000000
[20:02:24][D][sensor:125]: 'atarian-solar battery_capacity_percent': Sending state 0.00000 % with 1 decimals of accuracy
[20:02:24][V][sensor:074]: 'atarian-solar inverter_heat_sink_temperature': Received new state 0.000000
[20:02:24][D][sensor:125]: 'atarian-solar inverter_heat_sink_temperature': Sending state 0.00000 °C with 1 decimals of accuracy
[20:02:24][V][sensor:074]: 'atarian-solar pv_input_current_for_battery': Received new state 0.000000
[20:02:24][D][sensor:125]: 'atarian-solar pv_input_current_for_battery': Sending state 0.00000 A with 1 decimals of accuracy
[20:02:24][V][sensor:074]: 'atarian-solar pv_input_voltage': Received new state 0.000000
[20:02:24][D][sensor:125]: 'atarian-solar pv_input_voltage': Sending state 0.00000 V with 1 decimals of accuracy
[20:02:24][V][sensor:074]: 'atarian-solar battery_voltage_scc': Received new state 0.000000
[20:02:24][D][sensor:125]: 'atarian-solar battery_voltage_scc': Sending state 0.00000 V with 1 decimals of accuracy
[20:02:24][V][sensor:074]: 'atarian-solar battery_discharge_current': Received new state 0.000000
[20:02:24][D][sensor:125]: 'atarian-solar battery_discharge_current': Sending state 0.00000 A with 1 decimals of accuracy
[20:02:24][V][sensor:074]: 'atarian-solar battery_voltage_offset_for_fans_on': Received new state 0.000000
[20:02:24][D][sensor:125]: 'atarian-solar battery_voltage_offset_for_fans_on': Sending state 0.00000 V with 1 decimals of accuracy
[20:02:24][V][sensor:074]: 'atarian-solar eeprom_version': Received new state 0.000000
[20:02:24][D][sensor:125]: 'atarian-solar eeprom_version': Sending state 0.00000  with 1 decimals of accuracy
[20:02:24][V][sensor:074]: 'atarian-solar  pv_charging_power': Received new state 0.000000
[20:02:24][D][sensor:125]: 'atarian-solar  pv_charging_power': Sending state 0.00000 W with 1 decimals of accuracy
[20:02:24][V][component:199]: Component esphome.coroutine took a long time for an operation (0.35 s).
[20:02:24][V][component:200]: Components should block for at most 20-30ms.

But again, it will display this even with the RJ45 unplugged.

I'm at a total loss here...

avion23 commented 2 years ago

Show a photo of your wiring

On Wed, Jul 13, 2022 at 7:08 PM AtarianComputing @.***> wrote:

[image: image] https://user-images.githubusercontent.com/29645247/178787140-f185612e-6186-4edb-89fa-cd6765f6db44.png

It has a RJ45 COM-port that I've used to this day to connect it to my server via the RJ45/DB9 cable they provided using the WatchPower software. I can confirm that everything works there.

The said cable contains three wires that I have verified to be the same pinouts as described here. RJ45 pins 1,2,8 go to DB9 pins 2,3,5 respectively.

I have used three different TTL converters with MAX3238, MAX3232, MAX202, with the same results. The one converter that has LEDs either pulses the TX light without any activity from RX. The times when I get the null results regardless of whether the RJ45 cable is plugged or not, the RX and TX lights pulse simultaneously. Someone here with the same problem said that it turned out to be bad wiring.

I've tried every conceivable combination of wiring, different wires, different GPIOs with no improvements. Clearly I'm not getting any data from the inverter. Could my model be so incompatible that I'm not getting anything despite it working with what I understand to be a universal software, WatchPower?

Here is my current configuration:

substitutions:

name: atarian-solar

esphome:

name: ${name}

esp32:

board: nodemcu-32s

external_components:

- source: @.***

refresh: 0s

components: [pipsolar]

external_components:

- source: @.***_newcrc

refresh: 0s

components: [pipsolar]

Enable logging

logger:

level: VERY_VERBOSE

logs:

uart: VERY_VERBOSE

uart.arduino_esp8266: VERY_VERBOSE

# Make some components less verbose

api.service: WARN

ota: WARN

Enable Home Assistant API

api:

encryption:

key: "gX2lzJ1mNneZVElxRBhPTM3W8SOgACnL8FzsJ08GLQw="

ota:

password: "d0cfe82ff281d1617e7530fe9a8ddd0a"

wifi:

ssid: !secret wifi_linksys_ssid

password: !secret wifi_linksys_password

Enable fallback hotspot in case wifi connection fails

ap:

ssid: "Atarian-Solar Fallback Hotspot"

password: "VIgd5loU3AeJ"

uart:

  • id: uart_bus

    tx_pin: GPIO19

    rx_pin: GPIO18

    most devices use 2400 as baud_rate

    baud_rate: 2400

    debug:

    direction: BOTH

pipsolar:

uart_id: uart_bus

id: inverter0

update_interval: 10s

sensor:

  • platform: pipsolar

    pipsolar_id: inverter0

    grid_voltage:

    name: "${name} grid_voltage"

    grid_frequency:

    name: "${name} grid_frequency"

    ac_output_voltage:

    name: "${name} ac_output_voltage"

    ac_output_frequency:

    name: "${name} ac_output_frequency"

    ac_output_apparent_power:

    name: "${name} ac_output_apparent_power"

    ac_output_active_power:

    name: "${name} ac_output_active_power"

    output_load_percent:

    name: "${name} output_load_percent"

    bus_voltage:

    name: "${name} bus_voltage"

    battery_voltage:

    name: "${name} battery_voltage"

    battery_charging_current:

    name: "${name} battery_charging_current"

    battery_capacity_percent:

    name: "${name} battery_capacity_percent"

    inverter_heat_sink_temperature:

    name: "${name} inverter_heat_sink_temperature"

    pv_input_current_for_battery:

    name: "${name} pv_input_current_for_battery"

    pv_input_voltage:

    name: "${name} pv_input_voltage"

    battery_voltage_scc:

    name: "${name} battery_voltage_scc"

    battery_discharge_current:

    name: "${name} battery_discharge_current"

    battery_voltage_offset_for_fans_on:

    name: "${name} battery_voltage_offset_for_fans_on"

    eeprom_version:

    name: "${name} eeprom_version"

    pv_charging_power:

    name: "${name} pv_charging_power"

binary_sensor:

  • platform: pipsolar

    pipsolar_id: inverter0

    add_sbu_priority_version:

    name: "${name} add_sbu_priority_version"

    configuration_status:

    name: "${name} configuration_status"

    scc_firmware_version:

    name: "${name} scc_firmware_version"

    load_status:

    name: "${name} load_status"

    battery_voltage_to_steady_while_charging:

    name: "${name} battery_voltage_to_steady_while_charging"

    charging_status:

    name: "${name} charging_status"

    scc_charging_status:

    name: "${name} scc_charging_status"

    ac_charging_status:

    name: "${name} ac_charging_status"

    charging_to_floating_mode:

    name: "${name} charging_to_floating_mode"

    switch_on:

    name: "${name} switch_on"

This is the output:

[20:00:07][D][pipsolar:838]: Sending polling command : QPIGS with length 5

[20:00:07][D][uart_debug:114]: >>> 51:50:49:47:53:B7:A9:0D

[20:00:12][D][pipsolar:755]: timeout command to poll: QPIGS

[20:00:12][VV][scheduler:196]: Running interval 'update' with interval=10000 last_execution=1056434 (now=1066435)

[20:00:17][D][pipsolar:838]: Sending polling command : QPIGS with length 5

[20:00:17][D][uart_debug:114]: >>> 51:50:49:47:53:B7:A9:0D

[20:00:22][D][pipsolar:755]: timeout command to poll: QPIGS

Switching the TX/RX pins in the config file results in this:

[20:02:14][D][uart_debug:114]: <<< 51:50:49:47:53:B7:A9:0D

[20:02:23][VV][scheduler:196]: Running interval 'update' with interval=10000 last_execution=19325 (now=29325)

[20:02:24][D][pipsolar:838]: Sending polling command : QPIGS with length 5

[20:02:24][D][uart_debug:114]: >>> 51:50:49:47:53:B7:A9:0D

[20:02:24][D][pipsolar:772]: checking crc on incoming message

[20:02:24][D][pipsolar:775]: CRC OK

[20:02:24][D][pipsolar:448]: Decode QPIGS

[20:02:24][V][sensor:074]: 'atarian-solar grid_voltage': Received new state 0.000000

[20:02:24][D][sensor:125]: 'atarian-solar grid_voltage': Sending state 0.00000 V with 1 decimals of accuracy

[20:02:24][V][sensor:074]: 'atarian-solar grid_frequency': Received new state 0.000000

[20:02:24][D][sensor:125]: 'atarian-solar grid_frequency': Sending state 0.00000 Hz with 1 decimals of accuracy

[20:02:24][V][sensor:074]: 'atarian-solar ac_output_voltage': Received new state 0.000000

[20:02:24][D][sensor:125]: 'atarian-solar ac_output_voltage': Sending state 0.00000 V with 1 decimals of accuracy

[20:02:24][V][sensor:074]: 'atarian-solar ac_output_frequency': Received new state 0.000000

[20:02:24][D][sensor:125]: 'atarian-solar ac_output_frequency': Sending state 0.00000 Hz with 1 decimals of accuracy

[20:02:24][V][sensor:074]: 'atarian-solar ac_output_apparent_power': Received new state 0.000000

[20:02:24][D][sensor:125]: 'atarian-solar ac_output_apparent_power': Sending state 0.00000 VA with 1 decimals of accuracy

[20:02:24][V][sensor:074]: 'atarian-solar ac_output_active_power': Received new state 0.000000

[20:02:24][D][sensor:125]: 'atarian-solar ac_output_active_power': Sending state 0.00000 W with 1 decimals of accuracy

[20:02:24][V][sensor:074]: 'atarian-solar output_load_percent': Received new state 0.000000

[20:02:24][D][sensor:125]: 'atarian-solar output_load_percent': Sending state 0.00000 % with 1 decimals of accuracy

[20:02:24][V][sensor:074]: 'atarian-solar bus_voltage': Received new state 0.000000

[20:02:24][D][sensor:125]: 'atarian-solar bus_voltage': Sending state 0.00000 V with 1 decimals of accuracy

[20:02:24][V][sensor:074]: 'atarian-solar battery_voltage': Received new state 0.000000

[20:02:24][D][sensor:125]: 'atarian-solar battery_voltage': Sending state 0.00000 V with 1 decimals of accuracy

[20:02:24][V][sensor:074]: 'atarian-solar battery_charging_current': Received new state 0.000000

[20:02:24][D][sensor:125]: 'atarian-solar battery_charging_current': Sending state 0.00000 A with 1 decimals of accuracy

[20:02:24][V][sensor:074]: 'atarian-solar battery_capacity_percent': Received new state 0.000000

[20:02:24][D][sensor:125]: 'atarian-solar battery_capacity_percent': Sending state 0.00000 % with 1 decimals of accuracy

[20:02:24][V][sensor:074]: 'atarian-solar inverter_heat_sink_temperature': Received new state 0.000000

[20:02:24][D][sensor:125]: 'atarian-solar inverter_heat_sink_temperature': Sending state 0.00000 °C with 1 decimals of accuracy

[20:02:24][V][sensor:074]: 'atarian-solar pv_input_current_for_battery': Received new state 0.000000

[20:02:24][D][sensor:125]: 'atarian-solar pv_input_current_for_battery': Sending state 0.00000 A with 1 decimals of accuracy

[20:02:24][V][sensor:074]: 'atarian-solar pv_input_voltage': Received new state 0.000000

[20:02:24][D][sensor:125]: 'atarian-solar pv_input_voltage': Sending state 0.00000 V with 1 decimals of accuracy

[20:02:24][V][sensor:074]: 'atarian-solar battery_voltage_scc': Received new state 0.000000

[20:02:24][D][sensor:125]: 'atarian-solar battery_voltage_scc': Sending state 0.00000 V with 1 decimals of accuracy

[20:02:24][V][sensor:074]: 'atarian-solar battery_discharge_current': Received new state 0.000000

[20:02:24][D][sensor:125]: 'atarian-solar battery_discharge_current': Sending state 0.00000 A with 1 decimals of accuracy

[20:02:24][V][sensor:074]: 'atarian-solar battery_voltage_offset_for_fans_on': Received new state 0.000000

[20:02:24][D][sensor:125]: 'atarian-solar battery_voltage_offset_for_fans_on': Sending state 0.00000 V with 1 decimals of accuracy

[20:02:24][V][sensor:074]: 'atarian-solar eeprom_version': Received new state 0.000000

[20:02:24][D][sensor:125]: 'atarian-solar eeprom_version': Sending state 0.00000 with 1 decimals of accuracy

[20:02:24][V][sensor:074]: 'atarian-solar pv_charging_power': Received new state 0.000000

[20:02:24][D][sensor:125]: 'atarian-solar pv_charging_power': Sending state 0.00000 W with 1 decimals of accuracy

[20:02:24][V][component:199]: Component esphome.coroutine took a long time for an operation (0.35 s).

[20:02:24][V][component:200]: Components should block for at most 20-30ms.

But again, it will display this even with the RJ45 unplugged.

I'm at a total loss here...

— Reply to this email directly, view it on GitHub https://github.com/syssi/esphome-pipsolar/issues/21, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACTGWLHK56POXGXFIYE42FDVT3Z2DANCNFSM53PN23QA . You are receiving this because you are subscribed to this thread.Message ID: @.***>

AtarianComputing commented 2 years ago

Show a photo of your wiring

Which iteration/combination? :) The way I've set it up now is that the COM-cable I built has a DB9 housing so a photo would only reveal the wiring between the converter and ESP.

Actually, hmb, I'll draw it. Tonight or tomorrow.

AtarianComputing commented 2 years ago

Alright. Here is the actual converter that's currently plugged in and how it's wired as of now:

image

I've verified the connections to the IC by continuity checks. The schematic also confirms it:

image

I've also switched the TX/RX on both ends to rule out any confusion on my part.

AtarianComputing commented 2 years ago

I just realized that WatchPower has a debug feature. Here it is. WatchPower-Debug.zip

syssi commented 2 years ago
[20:02:14][D][uart_debug:114]: <<< 51:50:49:47:53:B7:A9:0D
[20:02:23][VV][scheduler:196]: Running interval 'update' with interval=10000 last_execution=19325 (now=29325)
[20:02:24][D][pipsolar:838]: Sending polling command : QPIGS with length 5
[20:02:24][D][uart_debug:114]: >>> 51:50:49:47:53:B7:A9:0D
[20:02:24][D][pipsolar:772]: checking crc on incoming message

The incoming message is an echo of the request / transmitted message. This looks like bad wiring. Please keep in mind the MAX202 provides a logic level of 5V. There is a chance you have already toasted your RX GPIO.

AtarianComputing commented 2 years ago
[20:02:14][D][uart_debug:114]: <<< 51:50:49:47:53:B7:A9:0D
[20:02:23][VV][scheduler:196]: Running interval 'update' with interval=10000 last_execution=19325 (now=29325)
[20:02:24][D][pipsolar:838]: Sending polling command : QPIGS with length 5
[20:02:24][D][uart_debug:114]: >>> 51:50:49:47:53:B7:A9:0D
[20:02:24][D][pipsolar:772]: checking crc on incoming message

The incoming message is an echo of the request / transmitted message. This looks like bad wiring. Please keep in mind the MAX202 provides a logic level of 5V. There is a chance you have already toasted your RX GPIO.

Thanks for responding. I've supplied +5V as my diagram states. Again bad wiring is so unlikely that it's more conceivable that the ESP is fried. When you say toasted RX GPIO, do you mean the ones I'm using or the whole thing? I've tried other GPIOs as well.

syssi commented 2 years ago

I've checked your debug logs from WatchPower especially the QPIGS response:

233.0 50.0 233.0 50.0 0318 0301 012 427 27.07 003 095 0498 0003 034.8 27.21 00000 10010110 00 04 00105 000

It's the standard format and supported by the official component: https://esphome.io/components/pipsolar.html

In other words: As soon as you manage to make a proper connection between the inverter and the ESP it should work.

About the logic level: If you power the MAX202 with 5V the logic level at the output pins are 5V too. The ESP isn't 5V tolerant if you take it strictly. Please don't try to power the MAX202 with 3.3V this is out of spec. Please use 3.3V components f.e. MAX3232.

AtarianComputing commented 2 years ago

I've checked your debug logs from WatchPower especially the QPIGS response:

233.0 50.0 233.0 50.0 0318 0301 012 427 27.07 003 095 0498 0003 034.8 27.21 00000 10010110 00 04 00105 000

It's the standard format and supported by the official component: https://esphome.io/components/pipsolar.html

Thanks for confirming this.

In other words: As soon as you manage to make a proper connection between the inverter and the ESP it should work.

About the logic level: If you power the MAX202 with 5V the logic level at the output pins are 5V too. The ESP isn't 5V tolerant if you take it strictly. Please don't try to power the MAX202 with 3.3V this is out of spec. Please use 3.3V components f.e. MAX3232.

Ah, of course. Didn't even consider that. Ok, once I get back home I'll start looking into it again. Away for 2 week vacation atm. Cheers.

KM192 commented 1 year ago

Did you succeed to connect SML III via pipsolar ? I have the same troubles.

KHackmann commented 1 year ago

In welchem Port am Inverter steckt der RJ45 Stecker?

syssi commented 1 year ago

Summary: