Growatt Wechselrichter mit ESPHome auslesen

Hallo, wir wollen mit einem shelly pro 3em an die Daten von einem Growatt WIT-12K-HU kommen. Geht das hiermit? Damit ich Verbraucher je nach Überschuss steuern kann, brauche ich ja den kompletten PV Überschuss inklusive das was in die Batterie geladen wird und davon weiß der Shelly ja nix…

Ich habe zur Steuerung noch Home Assistent auf einem Raspberry 4 laufen.

Der Growatt macht bei mir einiges selbst. Der Shine WiFi X hat ein entsprechenes Steuerprogamm bekommen. Er liefert die Daten des Mic an den HA und holt da auch Werte, Akku Stand, Werte vom Stromzähler, Leistung des Soyo usw. ab. Danach und nach der Uhrzeit wird der Growatt angesteuert.

Du müsstest alles wohl von Home Assistent erledigen lassen. Ich glaube nicht, daß Du das über den Shelly erledigen willst.

Wenn der shine Stick Daten an HA senden kann, warum dann nicht an einen shelly? Ich könnte auch einen raspi starten und der übernimmt dann das konvertieren der Daten Falls nötig

Kann er theoretisch , mußt du aber alles selbst schreiben.

Ich habe eine ESPHome Vorlage für den Shine genommen und um alles das erweitert, was ich benötigt. Incl. MIC Typ einstellen.

Fangen wir mal mit der Uhrzeit und Sommer-Winterzeit an. Diese Information wird vom HA abgefragt, dann mit inline C Code weiter auf dem Shine Stick verarbeitet. Ist hier relevant um zu wissen, wann der Schatten durch den Baum vorbei ist. Mit Schatten versuche ich nur 50W Überschuss einzuspeisen. Für den AC Lader reicht es sowieso nicht. Ist Schattenwurf vorbei, gehe ich auf 150W bei AC Lader aus, bei An auf 40W. Der Victron AC/DC Lader wird von 25% bis 100% Ampere von Raspberry alle 10 Sekunden nachgeregelt. Abhängig, wieviel Überschuss gerade verfügbar ist.

Auch wieviel Leistung versucht werden soll vom PV zu ziehen, die Vorgaben sind inline C, die Daten werden wieder von HA abgefragt.

Ist das AC Ladegerät an, wieviel liefert der DC Victron…

Klar, kannst dem Shelly ein neues Programm verpassen oder die Erweiterungen verwenden. Der HA macht hier auch so Kleinigkeiten wie Lichtsteuerung, Heizkörper Regelung und auch Fenster Kontrolle auf geschlossen/offen.

Vielleicht solltest du definieren, was genau der Shelly machen soll. Willst du MQTT verwenden, wo läuft der Broker usw.

Dann kann man abschätzen, ob sich der Aufwand Lohn, nur mit dem Shelly zu arbeiten. Bei mir würde es zuviel, auch wird Licht teilweise über Zigbee gesteuert.

Die einzelnen Geräte haben zum Teil 50 Meter Abstand. Da war eine zentrale Verwaltung im Raspberry mit HA sinnvoll. Bei 50m kann auch mal die Verbindung gestört sein. Also wird soviel wie möglich an Entscheidung an die Endgeräte ausgelagert. Dort gibt es dann Notfallregeln, was sie ohne Verbindung zum HA oder z. B. ohne aktuelle Werte vom Stromzähler machen sollen.

Da hier HA als zentrale Datenverwaltung sowieso benötigt wird, warum soll ich mir dann erst ins Knie schießen, um an HA vollkommen herum zu arbeiten?

Bei mir ist es halt seit diesem Frühjahr so ausgelegt, möglichst wenig in Stromnetz einzuspeisen. War früher übers Jahr gesehen fast 2 kWh Einspeisung, aber wenn das die Fernnetze zu sehr belasten tut.. . Kam nach der Diskussion über erhöhte Netzentgelte für auch kleine PV Anlagen auf. Bei Batterie Einspeisung darf gerne 5W Bezug sein.

Der Raspberry kann hier nach Wetterprognose auch entscheiden, wann am besten die Waschmaschine gestartet werden soll.

Und wenn die richtig Theater machen, stelle ich auf Insel mit Wechselschalter der Verbraucher zum Netz um.

Hi Leute, wieder mal ein Neuling im Bereich PV mit Growatt WR und Growatt Speicher mit einem Shine-X WIFI Stick. Mit deren Cloud hat die Anzeige meist gut funktioniert, aber wer will auf Dauer diese Cloud. Habe mir nun eine zweiten Stick besorgt, und darauf schon ESPHome geflasht. Sal System nutze ich Home Assistant. Da wird er auch schon gefunden. Nur leider nicht viel angezeigt. Was ich bisher weis: ich muss die YAML Datei auf meinen exakten WR einstellen(Code einfügen). Soweit verständlich, bin allerdings kein Profi mit diesen Dingen. Was ich da in HA sehen kann ist das auf dem Bild.

Der Growatt ist Model MOD6000TL3-HU und Speicher ist Growatt APX10.0

Wer kann mir sagen/schreiben welche Daten ich in diese YAML eintragen muss, damit alles inklusive Speicherzustände in Home Assistant zu sehen sind? Benötigt ihr das, was bisher in der Datei steht? Danke!

Poste Mal den Code in deiner yaml Datei.

Hier mal das, was in meiner YAMEl steht, und ein Screen von HA:

esphome:
  name: growatt
  friendly_name: Growatt

esp32:
  board: esp32-c3-devkitm-1
  framework:
    type: esp-idf

# Enable logging
logger:

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

ota:
  - platform: esphome
    password: "XXXXXXXXXXXX"

wifi:
  ssid: "fritzbox"
  password: "XXXXXXX"

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

captive_portal:
time:
  - platform: homeassistant
    id: homeassistant_time
output:
# Blue Led
  - id: light_bl
    platform: gpio
    pin: 1  
# Green Led
  - id: light_gr
    platform: gpio
    pin: 0
# Red Led
  - id: light_rd
    platform: gpio
    pin: 2
uart:
  id: mod_bus
  tx_pin: 3 
  rx_pin: 4
  baud_rate: 115200

ich kann damit natürlich noch nicht alles in HA darstellen.

Ich habe Google ki gefragt.
Das kommt raus:

Wenn du selbst die ki fragst, kannst du den ki Code direkt in dein ESP kopieren.
Du hast Verbindung, es kommen die Wechselrichter Daten. Laut ki musst du das ändern/ergänzen


Hier ein fertiger Code

uart:
id: mod_bus
tx_pin: 1
rx_pin: 3
baud_rate: 9600
stop_bits: 1

modbus:
id: modbus1
uart_id: mod_bus

modbus_controller:

  • id: growatt_hub
    address: 1
    modbus_id: modbus1
    setup_priority: -10
    update_interval: 10s

sensor:

--- Wechselrichter & PV ---

  • platform: modbus_controller
    modbus_controller_id: growatt_hub
    name: "WR Status"
    register_type: input
    address: 0
    value_type: U_WORD

  • platform: modbus_controller
    modbus_controller_id: growatt_hub
    name: "PV Leistung Gesamt"
    register_type: input
    address: 1
    unit_of_measurement: "W"
    value_type: U_DWORD
    filters:

    • multiply: 0.1
  • platform: modbus_controller
    modbus_controller_id: growatt_hub
    name: "PV1 Spannung"
    register_type: input
    address: 3
    unit_of_measurement: "V"
    value_type: U_WORD
    filters:

    • multiply: 0.1

--- Netz & Smart Meter (TPM) ---

  • platform: modbus_controller
    modbus_controller_id: growatt_hub
    name: "Netz Leistung"
    register_type: input
    address: 3023
    unit_of_measurement: "W"
    value_type: S_DWORD # S_DWORD weil negativ = Bezug, positiv = Einspeisung
    filters:
    • multiply: 0.1

--- APX Batterie Speicher ---

  • platform: modbus_controller
    modbus_controller_id: growatt_hub
    name: "Batterie Ladestand SoC"
    register_type: input
    address: 3170
    unit_of_measurement: "%"
    value_type: U_WORD

  • platform: modbus_controller
    modbus_controller_id: growatt_hub
    name: "Batterie Spannung"
    register_type: input
    address: 3172
    unit_of_measurement: "V"
    value_type: U_WORD
    filters:

    • multiply: 0.1
  • platform: modbus_controller
    modbus_controller_id: growatt_hub
    name: "Batterie Ladestrom"
    register_type: input
    address: 3173
    unit_of_measurement: "A"
    value_type: S_WORD # S_WORD für Laden/Entladen
    filters:

    • multiply: 0.1
  • platform: modbus_controller
    modbus_controller_id: growatt_hub
    name: "Batterie Temperatur"
    register_type: input
    address: 3182
    unit_of_measurement: "°C"
    value_type: S_WORD
    filters:

    • multiply: 0.1

--- Energie-Zähler (Total) ---

  • platform: modbus_controller
    modbus_controller_id: growatt_hub
    name: "Ertrag Gesamt"
    register_type: input
    address: 3029
    unit_of_measurement: "kWh"
    value_type: U_DWORD
    filters:
    • multiply: 0.1

Moin, und danke. ICh teste das mal. Aber die KI geht ja von einem Wechselrichter 600TC aus, nicht mit meinem TL3-UH. Bin gespannt, ob das passt….

Das klappt noch immer nicht so, es kommen immer ähnliche Fehlermeldungen:

Duplicate key "name" in "/config/esphome/growatt.yaml", line 78, column 5 NOTE: Previous declaration here: in "/config/esphome/growatt.yaml", line 72, column 5

Wenn ich da was lösche, kommt beim nächsten Mal eine andre Zeile mit Duplikaten…

Es fehlt noch immer der Speicher, und die Verbindung PV => Netz, also Einspeisung:

War heute Morgen ganze Zeit mit Chatgpt beschäftigt, bis es nun raus kam: Mein Shine-X Stick ist eine OEM Version, die einen anderen Chip hat. Jetzt benötige ich erst noch einen Adapter, damit ich das Board überhaupt richtig flashen kann. Es war nämlich immer nicht erreichbar. Also in 1-2 Tagen geht es weiter. Bin mal gespannt, ob ich das so fertig bekomme. Es ist aber erstaunlich, was der alles weis :wink:

Nun ist wegen der Größe auf dem Carport ein Growatt Wechselrichter eingezogen und diesen möchte ich gerne intern über einen http Request ebenfalls einbinden.

So, nach langem hin und her ist mir endlich gelungen den Growatt Wechselrichter MOD6000TL3-HU in HA mit ESPHome zu integrieren. Wie? Nachdem ich immer wieder andere Info´s hatte zu ESP Versionen usw. , habe mal eine Lupe genommen, und den Shine-X Stick mal genau untersucht. Siehe da, es stllte sich eine ganz andere Version heraus. Meiner ist ein ESP8266 mit E07S Board. Dann habe ich im Netz recherchiert, und auf Github eine YAMEL für dieses Board gefunden. Diese dann noch angepasst, und den Stick neu, passend geflasht. Jetzt läuft die ganze Sache in HA einwandfrei. Cloud also Ade. Aus der Ferne kann ich per VPN Daten abrufen, alles passt!

Falls jemand auch so ein Board in seinem Stick hat, kann ich gerne die YAMEL zur Verfügung stellen!

Danke für die Info. Schön wenn es jetzt geht. Mit den ESP kann man sehr viel günstig machen.

Mir fehlt jetzt nur noch der Speicher, dazu habe ich leider noch keine Info‘s gefunden, wie man den integriert.

So, nun habe ich auch den Speicher in HA mit drin. Stelle nun hier mal die passende YAML Datei ein, und ein Bild, wie es bei mir nun aussieht. Nochmal zur Info:

Growatt MOD6000TL3-HU mit APX 10.0 Speicher

esphome:
  name: growatt
  friendly_name: growatt

esp8266:
  board: esp07s

# Enable logging
logger:
  baud_rate: 0

# Enable Home Assistant API
api:
  encryption:
    key: "eure api eintragen"

ota:
  - platform: esphome
    password: "euer PW rein"

wifi:
  ssid: "Euer WLAN"
  password: "WLAN Passwort"

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

captive_portal:
substitutions:
  device_description: Growatt Inverter
  friendly_name:  Growatt Inverter
  name: Growatt
  
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
    update_interval: 10s  

sensor:
  - platform: modbus_controller
    name: "${friendly_name} DcPower"
    address: 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: "${friendly_name} DcVoltage"
    address: 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: "${friendly_name} DcInputCurrent"
    address: 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: "${friendly_name} AcFrequency"
    address: 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: "${friendly_name} AcVoltage"
    address: 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: "${friendly_name} AcOutputCurrent"
    address: 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: "${friendly_name} AcPower"
    address: 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: "${friendly_name} EnergyToday"
    address: 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: "${friendly_name} EnergyTotal"
    address: 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: "${name} Battery SoC"
    address: 3171
    register_type: read
    unit_of_measurement: "%"
    device_class: battery
    state_class: measurement
    icon: mdi:battery
    value_type: U_WORD
    accuracy_decimals: 0


  - platform: modbus_controller
    name: "${friendly_name} battery discharge power"
    address: 3178
    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: "${friendly_name} battery charge power"
    address: 3180
    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: "${friendly_name} battery discharge total energy"
    address: 3182
    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: "${friendly_name} battery charge total energy"
    address: 3184
    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: "${friendly_name} energy to grid today"
    address: 3071
    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: "${friendly_name} energy to grid total"
    address: 3073
    register_type: "read"
    unit_of_measurement: kWh
    device_class: energy
    icon: mdi:flash
    value_type: U_DWORD
    accuracy_decimals: 1
    filters:
      - multiply: 0.1


1 „Gefällt mir“