ESPHome modbus Growatt ShineWiFi-S

Pieter, what If you add external power to the stick?
5V ( USB Power ) soldered to the board?

Hi izi, no, I did not manage to get it working. Tried two different boards (esp8266 and esp32), two different RS485 converters, different pins (1-5, 4-5), different RS485 settings (VPP, unused) in all possible combinations, but nothing. There is no data coming on RX pin (LED does not blink). I will try the code from candidotsa but I am afraid it will not work. Probably the RS-485 connector is failed or the communication is somehow disabled.

Hi. Jumper You’re rs485 connection is RJ 45? Did you tried the pin 7&8? 7 for A and 8 for B.

Hi caro7372. The code is the same from the 5000es?

I used the next one as found above:

You can try to connect your converter and ESP32 to Easton SDM 630 smart meter if you have that installed and flash the ESP32 with Eastron SDM code. You will see some of the parameters provided by Growatt from there since the invertor is taking data form the smart meter. Here you can find info:

I did not try it myself, but i am planning to do it once i will receive the RS485 to TTL converter.

Hi guys, I also tried ShineBus software directly from Growatt (downloaded from here: Software - Growatt Italia), using the USB/RJ45 cable, but again no data read from the inverter. It is a mistery.

Hi. Did you tried the pin 7 and8?

1 Like

I ordered the same setup - what hardware did you use to talk to the inverter? Esp32, TTL, type of cable? Would you mind sharing a picture? Got a bit confused looking at all the different varieties on this forum but i know for sure I want to be able to do what you do :grinning: - eg. Buy low sell high

The best way I would describe my setup is “always the first link on Aliexpress”…

2 Likes

Thanks, and the white cable is a standard CAT5/6 ethernet cable with an RJ45 directly into the inverter? Think I will manage thanks!:+1:

Correct, standard CAT5 terminated with an RJ45 (B… I think…) connected to RS485-3 of the inverter.

Curious to see if it works for you…

Yes, but no success.

I think you should try with the original usb/RS data logger. I replace the original esp with a new one flashed with esphome. Then after I get what I want I put the original one in place.

Hello Pavel,
I finally got it to work. I think my problem was the power supply I was using.
I connected the network cable to port 485-1 on the inverter.
The pins used are:
Pin1 orange/white (B-)
Pin5 blue/white (A+)
The communication setting on the inverter is set to VPP
Here is a Photo of my configuration:

1 Like

Hi Izi, I will give it a try tomorrow. What exactly you mean by “problems with power supply” ? At the beginning it did not work for you and now it is working - what exactly did you change to make it work? What was the problem? Thanks, Pavel

Hello Pavel, for my initial setup I used a usb powerbank as power source. Yesterday I have done the setup again and changed it to a normal power supply from a Raspberry pi. Maybe this was the reason.

Plawa, one more question, there are other examples online (GitHub etc) indicating a 120mohm resistor is required somewhere in the connection. Did you include one or does it work without resistor?

Nope, what you see is all I have…

1 Like

Hi

I tried using this for my spf5000es but i just crc errors. I am connected via the RJ45 RS485 port and im using a max485 ttl converter so i am using the flow control pin

    [08:05:03][D][uart_debug:158]: <<< "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\b\x00\x00\x00@\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
    [08:05:03][W][modbus:108]: Modbus CRC Check failed! C071!=210
    [08:05:03][W][modbus:108]: Modbus CRC Check failed! C071!=00
    [08:05:03][W][modbus:108]: Modbus CRC Check failed! C071!=00

My Yaml

substitutions:
  device_name: inv1
  friendly_name: "inv1"
  device_description: "Growatt SPF 5000 ES"

esphome:
  name: '${device_name}'
  comment: '${device_description}'

esp8266:
  board: esp01_1m

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "API Key"

ota:
  password: "OTA Pass"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  manual_ip:
    static_ip: 192.168.8.27
    gateway: 192.168.8.1
    subnet: 255.255.255.0
  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Test2 Fallback Hotspot"
    password: "4igHBNw5StRu"

captive_portal:

uart:
  id: mod_bus
  tx_pin: 0
  rx_pin: 4
  baud_rate: 9600
  stop_bits: 1
  debug:
    direction: BOTH
    dummy_receiver: false
    after:
      delimiter: "\n"
    sequence:
      - lambda: UARTDebug::log_string(direction, bytes);

modbus:
  flow_control_pin: 16
  id: modbus1
  uart_id: mod_bus
  #disable_crc: true

modbus_controller:
  - id: growatt
    address: 0x1
    modbus_id: modbus1
    setup_priority: -10  
    update_interval: 15s

sensor:
  - platform: modbus_controller
    name: "${friendly_name} Inverter Temperature"
    address: 25
    register_type: "read"
    unit_of_measurement: °C
    device_class: temperature
    entity_category: diagnostic
    state_class: measurement
    icon: mdi:thermometer
    value_type: U_WORD
    accuracy_decimals: 1
    filters:
    - multiply: 0.1

Any help will be much appreciated