Growatt - RS485TTL - ESP8266 - ESPHome

kleiner Schelm

Active member
Hallo,
ich habe einen Growatt MIC 2000. Der Soll über ESP8266 und der TTL Schnittstelle von Growatt in Home Assistant.
Es gibt im Internet sehr viele Anleitungen. Meist die wo der ShineWiFi Stick mit ner ESP Software geflasht wird. Dann gibts noch ne Firmware, die man flashen kann.

Der ShineWiFi Stick steckt im USB Port vom Growatt. Ich will aber an die RS485TTL Schnittstelle. Da hab ich auch was gefunden, bekomme das aber nicht zum laufen.

Verdrahtung RS485 Schnitstelle.pngRS485 zu ESP8266 Verdrahtung.png
Ich habe den TTL Adapter mit den grünen Klemmen für A und B.
Iwo im Internet stand, dass man 3,3V als Spannungsversorgung nehmen soll, 5V führt zu problemen. Ich nutze ein 5V Netzteil zum versorgen des esp8266. der TTL Adapter wird vom esp8266 mit 3,3 V versorgt.
Verdrahtet habe ich das wie Bild rechts unten, also RS485 Modul 2.

Die Frage ist, was programmiere ich in ESPHome ?
1. Was gebe ich am besten für eine Hardware vor ? also board: xyz ?
2. welche Pins (RS485 Kommunikation) muss ich für welche Hardware nutzen ?
muss ich direkt die TX und RX Pins nutzen ? Weil ich auch eine Konfig gefunden habe, da schreibt einer, die TX und RX Pins würden nicht funktionieren.
Er nutzt statt dessen D5 und D6.
3. Welche Baut Rate muss ich nehmen ? Ich gehe von 9600 aus.
In einigen Beispielen ist 115200 gesetzt. Die schliessen das aber auch an den USB Port an. Vielleicht ist die Baut Rate dort höher zu setzen.
4. Ich habe GPIO0 für die Steuerung des Datenflusses genommen. (flow_control_pin: GPIO0)


YAML:
substitutions:
  devicename: "growatt"
  friendly_name: "growatt"
  fixed_ip: "192.168.111.111"

# packages:
#   common: !include includes/common.yaml

esphome:
  name: "${devicename}"
  friendly_name: "${friendly_name}"

esp8266:
  #  board: d1_mini
  board: esp01_1m                    # <-------------  was gebe ich am besten für eine hardware vor ?

debug:
  update_interval: 5s

logger:
 level: DEBUG
 baud_rate: 0  

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

ota:
  - platform: esphome
    password: "xxxxxxxxxxxxxxxxxxxxxxxxxxx"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  manual_ip:
    static_ip: 192.168.111.11
    gateway: 192.168.111.1
    subnet: 255.255.255.0
    dns1: 192.168.111.1

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "growatt Fallback Hotspot"
    password: "xxxxxxxxxxxxxx"

web_server: # creates a web server where you can access all this stuff without home assistant (good for debugging or working headless (no HA))
  port: 80
  include_internal: true
  ota: true

time:
  - platform: homeassistant
    id: homeassistant_time

uart:
  id: mod_bus
  # tx_pin: D5                          # werkte niet op de standaard TX en RX pins (die schijnen al bezet te zijn)
  # rx_pin: D6                          # Funktioniert nicht mit den standardmäßigen TX- und RX-Pins (die Stifte müssen alle angeschlossen sein)
  baud_rate: 9600
  tx_pin: TX                   # GIPO1       aus der Anleitung ESPHome - Modbus Forum
  rx_pin: RX                   # GIPO3       <----  ist das so korrekt ? 
  # baud_rate: 115200

modbus:
  id: modbus1
  uart_id: mod_bus
  flow_control_pin: GPIO0         # <--- hier wird wohl der Datenfluss rein und raus gesteuert, also die umschaltung

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

switch:
  - platform: modbus_controller
    name: "${devicename} OnOff"
    address: 0
    register_type: holding

output:
# Blue Led
  - id: light_bl
    platform: gpio
    pin: GPIO16   # D0        # GPIO16
# Green Led
  - id: light_gr
    platform: gpio
    pin: GPIO14   # D5        # GPIO14
# Red Led
  - id: light_rd
    platform: gpio
    pin: GPIO12   # D6        # GPIO12

number:
  - platform: modbus_controller
    name: "${devicename} Max Output Power"
    address: 3
    value_type: U_WORD
    min_value: 0
    max_value: 100
    entity_category: config

select:
  - platform: modbus_controller
    id: powermode
    name: "${devicename} Power Mode"
    address: 121
    value_type: U_WORD
    optionsmap:
      "600": 6                  # MIC600
      "750": 7                  # MIC750
      "1000": 10                # MIC1000
      "1500": 15                # MIC1500
      "2000": 20                # MIC2000
    entity_category: config

Im Code sind meine Versuche auskommentiert. Es geht bis jetzt nicht.

Am TTL Adapter brennt dauerhaft eine rote LED.

Ich kann nen log von ESPHome hier rein stellen. Mir selbst sagt der Log zu wenig, ich kann das nicht wirklich zu Störungsbehebung nutzen.

Hat jemand ein Test Code, mit dem ich einfach nur sehen kann, dass die kommunikation mit der Growatt TTL485 funktioniert ?

kann ich den ESP8266 mittels USB Kabel an den Growatt USB Port anschliessen ? Dann geht das ja nicht wirklich über TTL485. Dafür könnte ich was fertiges aus dem Internet ausprobieren.
 

Zurzeit aktive Besucher

Letzte Anleitungen

Statistik des Forums

Themen
6.028
Beiträge
58.583
Mitglieder
6.041
Neuestes Mitglied
Alois1
Zurück
Oben