Growatt & Home Assistant

Hallo Zusammen!

Ich benutze schon länger HA mit Shellys und anderem Kram. Bisher war auch alles ganz gut. Jetzt habe ich aber einen Speicher für unsere Solaranlage gekauft (Growatt) - Mein Shelly 3EM, der die Solarproduktion überwachte ist nun hinfällig weil er ja auch den aus der Batterie entnommenen Strom als Solarenergie ausweist. Wie dem auch sei.

Habe mich mit der Standard Growatt integration versucht, welche ja auch funktioniert, aber 5min abgleichinterfall im Vergleich zu den Live Daten vom Shelly sind nicht wirklich toll.

Wie komme ich denn wieder an Live Daten? Muss ich mir wirklich einen zweiten Stick kaufen und diesen auf ESP Home Modbus flashen?
Ich würde die Daten eigentlich auch weiterhin gerne an Growatt schicken, als backup.

Bin daher an das Grott addon gekommen. Aber da gibt es auch nur 1min update Intervall…

Welche anderen, unkomplizierten Lösungen gibt es?

Hab noch Growatt Data Bridge (Home Assistant) - RESERVEDELE TIL SMARTPHONES & TABLETS - DANMARKS BILLIGSTE! gefunden aber mir ist die konfig noch nicht ganz klar und man braucht wohl noch ein USB Kabel im Betrieb? Verstehe die Übersetzung wohl nicht.

Bin offen für jegliche Vorschläge!

Danke
Gruß
Stephan

Wenn Du die Growatt Cloud weiterhin nutzen willst bleibt Dir nur die Variante per Grott.

Was den Intervall betrifft: Das ist halt davon abhängig was die Growatt Cloud zulässt und welche Einstellungen dafür möglich sind. Diese hat Growatt in den letzten Jahren immer mal wieder geändert, sodass es z.B. mal 5 oder auch mal 2 Minuten waren. Wenn man z.B. versucht hat per API einen kürzeren Intervall zu nutzen konnte das zur Folge haben das Growatt den Cloud Zugang des Users (temperär) gesperrt hat. Aber das Thema ist ja aufgrund der div. Diskussionen zu der offiziellen HA Growatt Integration ja auch schon seit 1 - 2 Jahren bekannt.

Was diese andere Lösung aus Dänemark betrifft: Die basiert auch auf Modbus direkt und/oder in Kombination mit ESP. Dann kannst Du Dir auch gleich einen Shine Wifi-X Stick, den man inzwischen für unter € 10 bekommt, kaufen und diesen mit einer alternativen Firmware flashen, um den WR per MQTT oder ESPHome unter HA einzubinden.

VG JIm

1 „Gefällt mir“

Hi und Danke Jim,

in der Tat habe ich heute morgen einen Shine X Stick über 9.9€ bei Amazon bestellt.

Ich werde das dann wohl akzeptieren müssen, aber die Live Daten sind einfach viel besser. Man muss aber bei jedem Stick erst die Brücke reinlöten um flashen zu können oder?

Danke
Grüße
Stephan

Nein nicht reinlöten sonder nur temporär setzen. Ich hatte dazu hier auch mal ein Foto vom Stick mit der benötigten Brücke gepostet.

VG Jim

Hallo Jim und Danke für deinen Support.

habe ich geschafft :slight_smile:
ich hatte wohl auch erst die falsche version, also eine growatt lite version.

jetzt habe ich es aber auch geschafft über esphome zu flashen.

Jedenfalls, es müssen ja anscheinend alle entitäten in die yaml geschrieben werden. Und da scheiden sich ja anscheinend echt die Geister dran. Unterschiedliche WR = unterschiedliche Registernummern.

Ich habe diese Datei hier gefunden.
Growatt Wechselrichter Modbus Register Latest

Woher weiß ich welche Werte richtig sind? Das sind ja wirklich viele :slight_smile: Ich habe einen MOD7000TL3-XH welcher in dem File ja auch erwähnt wird. Was mir fehlt sind die Batterie Werte wie SOC, entladestrom, ladestrom ind W und KW …

Ich habe mir schon aus nem Forum Einträge kopiert um überhaupt zu verstehen wie das funktioniert… Stick war noch nicht im WR! Am PC zeigt er den Namen komisch an, wird da der WR eingesetzt?

image

Um den Stick zu flashen, sprich die yaml zu aktualisieren, muss ich den anscheinend immer wieder per USB mit dem PC verbinden, korrekt?

Ist es richtig, dass der Stick nun kein webinterface mehr hat?

Danke!

PS. Mir raucht seit 3 Tagen der Kopf weil ich von all dem Kram nicht mehr wusste wohin. Erst an Grott versucht und nichts verstanden, webinterface nicht verfügbar, mqtt verständisprobleme, dann esphome verständnisprobleme und am ende weiß ich nicht mal wohin ich will :slight_smile:

Jemand schon eine Lösung für den growatt neo 800m-x gefunden ? Update Intervall von 5min reicht max für Statistiken. Aber damit was steuern ist nicht möglich.

Hey, bei mir genau so das der Batteriezustand etc. nicht angezeigt wird wieso weiss du das inzwischen ?

ESP home bin ich wieder weg von. ich nutze jetzt das GROTT addon in homeassitant, aber leider auch da kein batterie wert, welchen ich nur durch das growatt addon bekomme (alle 5min)

ich hab mal einen nicht geflashten angeschlossen, da ist alles super. und natürlich mit HA Integration von Growatt

image

aber wieso wird kein Batteriewert übergeben…hmmm

:crayon:by HarryP: Zusammenführung Doppelpost (bitte “bearbeiten” Funktion nutzen)

Da ich gerade sehe das ich darauf damals gar nicht eingegangen bin hole ich das jetzt mal nach. :slightly_smiling_face:

Es gibt von Growatt leider div. unterschiedliche Modbus-Dokus und die Modbus-Befehle haben sich im Laufe der Jahre auch durchaus verändert. Welche Modbus-Werte dann für genau Dein WR-Modell und der darauf laufenden Firmware-Version, dann die richtigen sind ist leider eine Sache des ausprobierens. Es sei denn irgendein User auf der Welt hätte Dir ggf. schon die Arbeit abgenommen, eine für Dein WR-Modell passende YAML-Datei erstellt und diese dann auch veröffentlicht.

Was das Thema Batterie-Werte betrifft: Sofern es dazu passende Modbus-Befehle geben sollte, sollten sich diese auch per ESPHome umsetzen und somit anzeigen lassen. Die “Kunst” dabei ist halt die die genau passenden Modbus-Werte für das jeweilige WR-Modell zu finden. Da ich hier weder einen MOD7000TL3-XH nutze noch einen Bateriespeicher habe, kann ich Dir dabei leider nicht helfen.

Hier einfach mal ein Beispiel für einen YAML Code incl. Batterieeinbindung für einen SPH4000TL BL-UP:

substitutions:
  name: esphome-web-c04f7a
  friendly_name: GW
  
esphome:
  name: "growatt-wechselrichter"
  #on_loop:
    #then:
      #- lambda: delay(5);
      
esp8266:
  board: esp07s

#Enable logging
#logger:
  #baud_rate: 0

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

ota:
  - platform: esphome
    #safe_mode: true
    password: "XX"

wifi:
  ssid: WIFI SSID
  password: XX


  manual_ip:
    static_ip: 192.xxx.xxx.x
    gateway: 192.xxx.xxx.x
    subnet: 192.xxx.xxx.x
  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "fallback"
    password: "XXXXXX"

captive_portal:

web_server:
  port: 80

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  
    update_interval: 5s

sensor:
  - platform: wifi_signal
    name: "A-WLAN Signalstärke"
    #update_interval: 5s
   
  - platform: modbus_controller
    name: "GW Ausgangsleistung"
    address: 35
    register_type: "read"
    unit_of_measurement: W
    device_class: energy
    icon: mdi:flash
    value_type: U_DWORD
    accuracy_decimals: 1
    filters:
    - multiply: 0.1

  - platform: modbus_controller
    name: "GW PV Strang 2 Erzeugung Heute"
    address: 63
    register_type: "read"
    unit_of_measurement: kW
    device_class: energy
    icon: mdi:flash
    value_type: U_DWORD
    accuracy_decimals: 1
    filters:
    - multiply: 0.1

  - platform: modbus_controller
    name: "GW PV Strang 1 Erzeugung Heute"
    address: 59
    register_type: "read"
    unit_of_measurement: kW
    device_class: energy
    icon: mdi:flash
    value_type: U_DWORD
    accuracy_decimals: 1
    filters:
    - multiply: 0.1

  - platform: modbus_controller
    name: "GW Strang 1 Leistung"
    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: "GW Strang 2 Leistung"
    address: 9
    register_type: "read"
    unit_of_measurement: W
    device_class: energy
    icon: mdi:flash
    value_type: U_DWORD
    accuracy_decimals: 1
    filters:
    - multiply: 0.1

  - platform: modbus_controller
    name: "GW Power out Wechselrichter"
    address: 1031
    register_type: "read"
    unit_of_measurement: W
    device_class: energy
    icon: mdi:flash
    value_type: U_DWORD
    accuracy_decimals: 0
    filters:
    - multiply: 0.1

  - platform: modbus_controller
    name: "GW Batterie geladen Heute"
    address: 1056
    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: "GW Batterie entladen Heute"
    address: 1052
    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: "GW Batterie Ladezustand"
    address: 1014
    register_type: "read"
    unit_of_measurement: "%"
    device_class: POWER_FACTOR
    state_class: measurement
    entity_category: diagnostic
    icon: mdi:flash
    value_type: U_WORD
    accuracy_decimals: 0
    filters:
    - multiply: 1



  - platform: modbus_controller
    name: "GW Batterie Entladeleistung Live"
    address: 1009
   
    register_type: "read"
    unit_of_measurement: W
    state_class: measurement
    device_class: power
    entity_category: diagnostic
    icon: mdi:flash
    value_type: U_DWORD
    accuracy_decimals: 0
    filters:
    - multiply: 0.1

  - platform: modbus_controller
    name: "GW Batterie Ladeleistung Live"
    address: 1011
    register_type: "read"
    unit_of_measurement: W
    state_class: measurement
    device_class: power
    entity_category: diagnostic
    icon: mdi:flash
    value_type: U_DWORD
    accuracy_decimals: 0
    filters:
    - multiply: 0.1

select:      
  - platform: modbus_controller
    name: "GW Batterie Modus Load/Batterie/Netz"
    address: 1044
    value_type: U_WORD
    optionsmap:
      "Load First": 0
      "Battery First": 1
      "Grid First": 2

  - platform: modbus_controller
    name: "GW Batterie AC Laden Ein/AUS (nur im Modus Batt First)"
    icon: mdi:battery-charging-100
    address: 1092
    value_type: U_WORD
    optionsmap:
      "AC Laden AUS (gilt nur im Batt First Modus)": 0
      "AC Laden AN (gilt nur im Batt First Modus)": 1

Anm.: Das Beispiel stammt von diesem Posting aus dem HA-Forum.

@baxter12 Dein Screenshot sieht mir eher nach der Übersichtsseite bei der Verwendung einer MQTT-Firmware auf dem Stick aus und nicht nach ESPHome. Hier in dem Beitrag ging/geht es um die Nutzung von ESPHome auf dem Stick und nicht um die Nutzung einer MQTT-Firmware wie z.B. der von otti.

Zu Grott, oder auch der Nutzung einer MQTT Firmware, kann ich gar nichts mehr sagen da es schon fast zwei Jahre her ist das ich beides mal getestet hatte.

VG Jim

Moin Moin,
ich bin neu hier und hoffe das mein Infos helfen.

Ich habe nahezu das gleiche “Problem” gehabt.
Meine Anlage: Growatt MOD10KTL-XH , 3x Shelly 3EM für HVT, PV und Wärmepumpe.

Nun habe ich auch Homeassistent und ich stand vor dem gleichen Problem.
Meine Lösung: Der Wechselrichter liefert genug Daten über die Cloud. Die einzige Info, die er nicht liefert, ist der Netzbezug. Dafür hätte ich ggf. den 3EM Shelly, aber der ist viel zu ungenau. Der zeigte auch im Sommer im Monat 80kwh Bezug an, obwohl er bei 0 war.

Den Netzbezug kann man aber berechnen. Durch die Gesamtenergieabgabe des Wechselrichters und den Lastverbrauch (Hausverbrauch).

sensor:
  - name: "Hausverbrauch mit PV berechnet"
    state_class: total_increasing
    unit_of_measurement: kWh
    device_class: energy
    state: >
      {% set einspeisung = states('sensor.wechselrichter_10ktl_aktuell_energieabgabe_wahrend_der_lebensdauer') | float %}
      {% set verbrauch = states('sensor.wechselrichter_10ktl_aktuell_gesamtlastverbrauch_wahrend_der_lebensdauer') | float %}
      {% set startwert = 5808 %}
      {# 0. Bei mir ist das der Startwert, da der Sensor schon etliche kWh gezählt hat. #}
      {# 1. Netto‐Verbrauch bestimmen (Verbrauch minus Einspeisung) #}
      {% if einspeisung < verbrauch %}
        {% set netto = (verbrauch - einspeisung) | round(2) %}
      {% else %}
        {% set netto = 0 %}
      {% endif %}
      {# 2. Vom Netto‐Verbrauch den Startwert abziehen #}
      {% set bereinigt = (netto - startwert) %}
      {# 3. Sicherstellen, dass das Ergebnis nicht negativ oder ungültig ist #}
      {% if bereinigt < 0 %}
        0
      {% else %}
        {{ bereinigt }}
      {% endif %}

Somit kann man mit den kWh ein Diagramm Basteln.

Wenn du die aktuellen “Leitung / Watt” sehen willst, geht dies ja fast genau so, aber halt mit den Watt Sensoren. Die Leistung des Akkus werden zwar nicht Sekunden genau angezeigt aber muss ja auch nicht, oder ? :slight_smile:
Hoffe ich konnte jemanden helfen.

Die Watt Sensoren habe ich mir neben dem Energiedashboard anzeigen lassen. Auch habe ich Sensoren gebaut, die die Spanne berechnen von z.b. Lastverbauch und Heizung. So kann man sich noch detaillierter den Verbrauch ansehen. Siehe Bild.

Falls Fragen zum Code sind, bitte Chaty (ChatGPT) fragen. Habe ich auch :D:D

Die Growatt integration raubt mir auch den letzten nerv (wenn sie nicht mehr reagiert muss ich immer alles neu starten) aber:

Es gibt doch nun die möglichkeit in der Shine App den Shelly 3EM direkt zu verknüpfen und den Akku damit zu steuern!

Hat da jemand erfahrung ob das funktioniert, und wie schnell das ganze reagiert? Umweg über die Cloud oder regelt der Shelly den Speicher direkt über die Lan verbindung?

Ich habe meinen Growatt Wechselrichter mit einen alten Raspberry per RJ45 verbunden. Auf dem Pi läuft Solar Assistant. Sekundengenaue Anzeige. Solarassistant habe ich dann in HA integriert. Vielleicht das für den einen oder anderen was?

3 „Gefällt mir“

Darf ich dich mal fragen, was für ein Kabel du da genutzt hast?
Denn deine Lösung käme auch für mich in Frage.
Auf der Solarassistant Seite steht ja, das man das Kabel wohl neu crimpen müsste.
Kannst du da was zu sagen?

An meinem SPH habe ich einen RS485 auf USB Konverter mit Klemmen genommen.

Da kann man dann ein beliebiges RJ45 Kabel passend auflegen.

2 „Gefällt mir“

Hi,

Genau so habe ich es gemacht :+1: Kontakte kann ich ggf. natürlich bekannt geben :slight_smile:

Danke euch.
Auf einen USB Konverter mit Klemmen war ich gar nicht gekommen.
Hat alles super geklappt.

1 „Gefällt mir“

Hallo Wato wie genau hast du das gemacht parallel dazu geklemmt auf Com 3 und 4 Growattstecker?

Hast du einen Anschlussplan oder Zeichnung wie das angeschlossen wird? Danke für dein Antwort.

Gruß Bernd

Hallo @Berndk

Den RJ45 Stecker habe ich an den
Port 485-3 angeschlossen (so heißt der Port bei meinem Wechselrichter). Dann weiterz zum USB Konverter und fein damit an den Raspberry

Gruß

Was für ein Wechselrichter hast du? Kein MID 20 oder?

Bei mir müsste ich zwei Kabel an den Wechselrichterstecker anklemmen! Signalleitung!

Gruß