Growatt Shine WiFi an Homeassistant

Also eine Schritt für Schritt Anleitung habe ich auch nicht für Dich parat und z.Z. auch keine Zeit diese zu erstellen. Aber es wäre auch gut wenn Du hier schreiben würdest was Du überhaupt schon probiert hast und wie weit Du überhaupt gekommen bist. Damit man einschätzen kann was Du bereits weiß und hast und woran es ggf. scheitert.

Beginnen musst Du damit den Stick mit ESPHome zu flashen. Dazu den Stick öffnen um an die Platine zu kommen. Dann bei GPIO0 und Ground eine Brücke setzen
ShineStick_Brücke
und per PC ESPHome auf den ESP8266 des Sticks flashen.

Wenn das erfolgreich abgeschlossen ist kann Du den Stick per ESPHome bei HA einbinden. Dazu muss dort das ESPHome Addon und die ESPHome Integration installiert sein.

Wenn das passiert ist und der ShineStick darüber eingebunden ist, kannst Du eine zu Deinem Growatt passende ESPHome-Konfiguration über die ESPHome Oberfläche

auf den Stick flashen. Anm.: Immer wenn Du etwas auf den Stick flasht muss dafür die o.g. Brücke gesetzt sein. Also auch dann wenn Du später mal ein ESPHome Update bei dem Stick machen wolltest.

Da Du ja auch einen MIC 600TL-X WR hast poste ich Dir hier mal meine ESPHome Konfiguration dafür. Die Konfig. die ich hier poste ist etwas abgespeckt, weil ich bei mir noch ein paar spezielle Änderungen hab einfließen lassen, mit denen nicht jeder User etwas anfangen kann. :slightly_smiling_face:

Hier also die leicht “abgespeckte” ESPHome Konfiguration:

substitutions:
  devicename: "shinestick"
  upper_devicename: "ESPHome Growatt"
  
esphome:
  name: $devicename
  platform: ESP8266
  board: esp07s

# Enable logging
logger:
  baud_rate: 0
  
# Enable Home Assistant API
api:
  encryption:
    key: "hier steht dann Dein individueller API Key"

ota:
  safe_mode: true
  password: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Growatt 01 Fallback Hotspot"
    password: "xxxxxxxxx"
 
captive_portal:

time:
  - platform: homeassistant
    id: homeassistant_time

output:
# Blue Led
  - id: light_bl
    platform: gpio
    pin: 16
# Green Led
  - id: light_gr
    platform: gpio
    pin: 0
# Red Led
  - id: light_rd
    platform: gpio
    pin: 2

uart:
  id: mod_bus
  tx_pin: 1
  rx_pin: 3
  baud_rate: 115200
  
modbus:
  id: modbus1
  uart_id: mod_bus
  
modbus_controller:
  - id: growatt
    ## the Modbus device addr
    address: 0x1
    modbus_id: modbus1
    setup_priority: -10  

text_sensor:
  - platform: modbus_controller
    name: "${devicename} Firmware Version"
    address: 9
    register_count: 3
    register_type: holding
    #internal: true
    entity_category: diagnostic

  - platform: template
    name: "${devicename} Status"
    icon: mdi:eye
    entity_category: diagnostic
    lambda: |-
      if (id(status).state == 1) {
        return {"Normal"};
      } else if (id(status).state == 0)  {
        return {"Waiting"};
      } else {
        return {"Fault!"};
      }

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

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

sensor:
  - platform: wifi_signal
    name: "WiFi Signal Sensor"
    update_interval: 60s
  
  - platform: modbus_controller
    address: 0
    register_type: "read"
    internal: true
    id: status

  - platform: modbus_controller
    name: "${devicename} DcPower"
    address: 3005 #5
    register_type: "read"
    unit_of_measurement: W
    device_class: power
    icon: mdi:flash
    value_type: U_DWORD
    accuracy_decimals: 1
    filters:
    - multiply: 0.1
    
  - platform: modbus_controller
    name: "${devicename} DcVoltage"
    address: 3003 #3
    register_type: "read"
    unit_of_measurement: V
    device_class: voltage
    icon: mdi:flash
    value_type: U_WORD
    accuracy_decimals: 1
    filters:
    - multiply: 0.1
    
  - platform: modbus_controller
    name: "${devicename} DcInputCurrent"
    address: 3004 #4
    register_type: "read"
    unit_of_measurement: A
    device_class: current
    icon: mdi:flash
    value_type: U_WORD
    accuracy_decimals: 1
    filters:
    - multiply: 0.1

  - platform: modbus_controller
    name: "${devicename} AcPower"
    address: 3023 #40
    register_type: "read"
    unit_of_measurement: W
    device_class: power
    icon: mdi:flash
    value_type: U_DWORD
    accuracy_decimals: 1
    filters:
    - multiply: 0.1

  - platform: modbus_controller
    name: "${devicename} AcFrequency"
    address: 3025 #37
    register_type: "read"
    unit_of_measurement: Hz
    icon: mdi:flash
    value_type: U_WORD
    accuracy_decimals: 1
    filters:
    - multiply: 0.01
  
  - platform: modbus_controller
    name: "${devicename} AcVoltage"
    address: 3026 #38
    register_type: "read"
    unit_of_measurement: V
    device_class: voltage
    icon: mdi:flash
    value_type: U_WORD
    accuracy_decimals: 1
    filters:
    - multiply: 0.1
  
  - platform: modbus_controller
    name: "${devicename} AcOutputCurrent"
    address: 3027 #39
    register_type: "read"
    unit_of_measurement: A
    device_class: current
    icon: mdi:flash
    value_type: U_WORD
    accuracy_decimals: 1
    filters:
    - multiply: 0.1
  
  - platform: modbus_controller
    name: "${devicename} AcPowerVA"
    address: 3028 #40
    register_type: "read"
    unit_of_measurement: VA
    icon: mdi:flash
    value_type: U_DWORD
    accuracy_decimals: 1
    filters:
    - multiply: 0.1
    
  - platform: modbus_controller
    name: "${devicename} EnergyToday"
    address: 3049 #53
    register_type: "read"
    unit_of_measurement: kWh
    device_class: energy
    icon: mdi:flash
    value_type: U_DWORD
    accuracy_decimals: 1
    filters:
    - multiply: 0.1
    
  - platform: modbus_controller
    name: "${devicename} EnergyTotal"
    address: 3051 #55
    register_type: "read"
    unit_of_measurement: kWh
    state_class: total_increasing
    device_class: energy
    icon: mdi:flash
    value_type: U_DWORD
    accuracy_decimals: 1
    filters:
    - multiply: 0.1

    
  - platform: modbus_controller
    name: "${devicename} Temperature"
    address: 3093
    register_type: "read"
    unit_of_measurement: C
    device_class: temperature
    icon: mdi:thermometer
    value_type: U_WORD
    accuracy_decimals: 1
    filters:
    - multiply: 0.1    

De obere Teil wird sich bei Dir dann natürlich unterscheiden, aber wenn Du den Rest so übernimmst stehen Dir hinterher unter HA folgende Sensoren für den MIC 600TL-X zur Verfügung.

PS: Ich würde Dir aber auch empfehlen nicht einfach nur stumpf nach einen “Schritt für Schritt Anleitung” vorzugehen, sondern Dich auch ein wenig mehr/tiefer mit dem Thema zu befassen, damit Du auch weißt und verstehst was Du da tust und wie und warum.

D.h. ich würde Dir empfehlen im I-Net die inzwischen zahlreich vorhandenen Infos und Diskussionen zu dem Thema Dir anzuschauen. Da gibt es dann auch weitere Infos zu evtl. auftauchenden Problemen, oder andere Beispiel ESPHome Konfigurationen und zumindest auch (Teil-)Anleitungen zu dem Thema. U.a. auch von mir. :laughing:

VG Jim

1 „Gefällt mir“