Growatt Webportal per SCRAPE auslesen

Guten Morgen liebe Community,
ich bin relativ neu auf dem Gebiet mit HomeAssistant, ich war letztes Jahr sehr froh alle meine PV-Wechselrichter Daten per Integration ins HA bekommen zu haben, jedoch wurde die Abfrage seitens Growatt gesperrt, somit dachte ich, ich beschäftige mich mit den SCRAPEN, jedoch haut dieses nicht hin, bekomme immer einen UNKNOW Wert zurück. Gibt es jemanden der diesen Weg des Auslesens hinbekommen hat?

Gruß
Zeddjay

Moin,

gibt es einen bestimmten Grund warum Du die Daten (umständlich) über die Growatt Cloud auslesen willst, statt sie per Modbus direkt und lokal auszulesen? Z.B. per ESPHome oder auch MQTT.

Ich mache das schon lange per ESPHome.

VG Jim

https://github.com/OpenInverterGateway/OpenInverterGateway

ich habe den Stick einfach umgefälscht und nun ohne Cloud die daten in MQTT .

Guten Morgen, vielen dank für die schnelle Reaktion, ich dachte es wäre die einfachste und schnellste Variante, einfach die Wert von dem Portal zu nehmen. Das mit dem Flashen hatte ich schon gelesen, kann da nicht irgendetwas passieren in Bezug auf Garantie, Herstellerprobleme etc.?

Wenn ein Hersteller “herumzicken” will wenn es um Garantieleistungen geht dann wird er das eh machen/versuchen. :laughing: Das Du auf den Shine Wifi Stick keine Garantie oder Gewährleistung hast wenn Du ihn mit einer anderen Fimware flasht dürfte klar sein, aber der Stick kostet gerade mal 10 - 12 Euro und da interessiert mich keine Garantie und/oder Gewährleistung.

Was den WR selber betrifft: Du machst mit einem geflashten Stick ja nichts anderes als die Modbus-Daten des WR auszulesen und lokal zu übertragen. Was sollte dabei passieren was den WR ggf. beschädigt und was dann Probleme mit der Garantie und/oder Gewährleistung bereiten sollte. Der WR ist durch das flashen des Sticks unverändert.
Falls Du allerdings über den Stick irgendwelche Einstellungen bei dem WR ändern solltest - was auch durchaus möglich ist - und sollte das ggf. zu irgendwelchen Schäden an dem WR führen, liegt das natürlich ganz in Deiner eigenen Verantwortung und dann könnte es auch durchaus Probleme mit der Garantie und/oder Gewährleistung geben.

Edit: Außerdem kann man auch durchaus zwei Sticks vor Ort und zur Verfügung haben. D.h. einen geflashten und einen mit der original Firmware. So ist es bei mir und so kann ich - wenn ich denn wollte - jederzeit auch wieder den Original-Stick mit der Growatt Cloud nutzen.

VG Jim

Okay das klingt nach einen Plan, habe mir gerade bei ebay einen Stick bestellt, werde den dan mal flashen und mit MQTT beschäftigen. Vielen Dank für den netten und schnellen Support.

Moinsen an alle,
so nun habe ich den neuen ShineX Stick bekommen, geflasht und eingebunden, Daten kommen auch an. Jedoch bin ich mir nicht sicher, ob ich die richtigen Datenpunkte genommen habe, da die Werte wie z.B. “Aktueller Verbrauch” deutlich von dem abweichen was mit das GroWatt Portal in den letzten Wochen anzeigt, es sind auch keine neuen Verbraucher hinzugekommen. Daher meine Frage an euch, hat jemand eine Übersicht der Datenpunkte, was welcher Wert ist?
Gruß
Alex

Moin,

fein das das mit dem flashen des Sticks schon mal grundsätzlich bei Dir geklappt hat. Was jetzt die Datenpunkte betrifft: Von welchen “Verbrauchern” bzw. “Aktuellen Verbrauch” sprichst Du, die/der dann auch noch bisher im Growatt Portal angezeigt wurde(n)? :thinking: Der WR speist eigentlich Strom ein und da gibt es keine “Verbraucher”. Siehe meinen Beispielscreenshot mit den Sensoren hier im Beitrag.

Was das einbinden und das auslesen der Sensoren per ESPHome und die dafür benötigten Modbus-Befehle betrifft: Dafür gibt es keine allgemein gültige Lösung da dies von dem verwendeten WR abhängt und über welche Modbus-Adressen dann welche Werte ausgelesen bzw. geliefert werden. D.h. entweder Du befasst Dich selber mit der Growatt Modbus Doku und schaust darin nach welche Modbus-Befehle dann für Deinen WR zutreffen und möglich sind, oder Du schaust im I-Net mal nach evtl. passenden Beispielkonfigurationen zu Deinem WR, die andere User bereits irgendwo gepostet haben. Z.B. im HA-Forum dort: ESPHome modbus Growatt ShineWiFi-S - ESPHome - Home Assistant Community

VG Jim

Moin,
vielen Dank für die Tips. Ich habe hier z.B. den Wert aus dem WR “SOC” was meiner Meinung nach den Status der Batterie ausgibt, dieser wird mit einem Wert in HA angezeigt z.B. 3,8, nach umstecken auf den Growatt Original Stick, erhalte ich im Growatt Portal die Anzeige 10%. Also selbst wenn ich den Wert vom ESP umwandel komme ich nicht von 3,8 auf 10. Ebenfalls finden ich nicht den aktuellen Verbrauch also den Eigenverbrauch. Im Portal war dies glaube ich “LoadConsumption” bei den ESP Werten finden ich diesen wert nicht, auch wenn ich die “OutputPower” Einträge addiere oder einzelnd nehme komme ich nicht mal annähernd an den Wert im Portal. Laut HA habe ich seit 24 Stunden einen “Eigenverbrauch” von 670-672 Watt, Portal Growatt 200-300 W. Kann es sein das die Werte über den ESPHome binär, keine Ahnung was sind und diese noch umgewandelt werden müssen?

Ah ok wenn Du neben dem WR auch noch einen Batteriespeicher einsetzt ist das natürlich etwas anderes und ja dann gibt es natürlich auch Verbrauchsanzeigen. :slightly_smiling_face: Aber das ist dann in der Tat eine andere Baustelle, sprich wie sich dann Dein Batteriespeicher und dessen Werte die er an den WR liefert, genau über ESPHome einbinden lassen kann ich Dir leider nicht sagen. Ich habe keinen Batteriespeicher.

Ich bin mal aber ziemlich sicher das Du dazu im I-Net auch entsprechende Infos und Beispiele von anderen Usern finden solltest. Ich kann Dir da leider nicht mehr weiterhelfen.

VG Jim

Danke Jim für die Hilfe, werde mich mal weiter auf den Weg machen. Manchmal glaube ich das der Weg mit dem Scrapen der GroWatt Seite doch irgendwie besser wäre, aber ich probiere mal weiter rum.

Nachtrag:
So habe nun eine PDF Liste gefunden mit den MODBUS EInträgen:

Dauert wohl nur etwas bis ich die richtigen Einträge gefunden habe

:crayon:by HarryP: Zusammenführung Doppelpost

Nur zur Info: Die Modbus-Doku aus Deinem Link ist die Version 1.05 aus 2018. Ich meine das es seit dem durch Updates auch Änderungen an bereits bestehenden Modbus-Befehlen bei WR gegeben hat. D.h. schau mal nach einer aktuelleren Modbus-Doku. Die letzte Modbus-Doku die ich hier vorliegen habe ist die Version 1.24 aus 2020. Daraus habe ich damals die Modbus-Befehle von meinem WR entnommen.

Z.B. im https://www.photovoltaikforum.com/ findest Du zu dem Thema Growatt Modbus auch noch entsprechende Infos und ggf. auch einen Link zu einer aktuelleren Modbus-Doku. Ich habe den Link zu der Version 1.24 hier leider nicht mehr vorliegen.

VG Jim

Ein Traum, vielen lieben Dank.

Nachtrag:
Nochmal ich, egal was ich mir für einen Wert aussuche, ich bekomme nur “Müll” zurück. Im PDF steht z.B. “State of Charge” für den Akku und ich bekomme eine “0” als Wert, meine Abfrage aus der YAML sieht so aus:

 - platform: modbus_controller
    name: "SOC"
    address: 35
    register_type: "read"
    device_class: energy
    icon: mdi:flash
    value_type: U_WORD

Vielleicht eine Idee?

:crayon:by HarryP: Zusammenführung Doppelpost

Wie gesagt habe ich von der Einbindung eines Batteriespeichers wirklich Null Ahnung. :slightly_smiling_face: Was mich allerdings etwas wundert ist die address:35 bei Dir, was aber ggf. mit Deinem WR-Modell und unterschiedlichen Modbus-Befehlen (Register-Nr.) zu tun haben könnte und/oder einer unterschiedlichen Modbus-Doku-Version.

Mal ein Code-Beispiel von mir:

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

Wenn ich dann in meiner Modbus-Doku nachschaue sehe ich das die 3005 dafür steht:
3005 = Ppv1 H - PV1 power

Oder ein anderes Bespiel:

  - platform: modbus_controller
    name: "${devicename} EnergyToday"
    address: 3049
    register_type: "read"
    unit_of_measurement: kWh
    device_class: energy
    icon: mdi:flash
    value_type: U_DWORD
    accuracy_decimals: 1
    filters:
    - multiply: 0.1

Die 3049 steht dann für: Eac today H - Today generate energy
Usw.

Wenn ich jetzt mal meine Modbus-Doku nach Deinem “State of Charge” durchsuche finde ich das darin nur an zwei Stellen und zwar bei der Modbus Register-Nr. 1014 und bei 3171.


D.h. je nach WR-Modell wäre “State of Charge” dann eigentlich 1014 oder 3171.

Aber wie schon gesagt muss das jetzt nicht unbedingt etwas zu bedeuten haben eben weil Growatt im Laufe der Zeit die Modbus Register-Nr. auch geändert hat und diese abhängig von dem WR-Modell und dessen verwendeter Firmware sind.

Du kannst ja mal 1014 und 3171 testen. Was auch immer dabei dann für ein Ergebnis herauskommt und ohne jegliche Gewähr. :laughing:

BTW: Vielleicht noch ein eher allgemeiner Hinweis. Wenn Du per ESPHome mit dem Modbus-Registern des WR “hantierst” kann das natürlich auch Auswirkungen auf irgendwelche Einstellungen bei dem WR haben, sprich Du sollest dann schon wissen was Du tust. Denn man kann ja nicht nur lesend darauf zugreifen sondern auch schreibend. Also immer schön vorsichtig sein bei dem was Du da machst. :wink:

VG Jim

Ja in der Zwischenzeit bin ich auch schon darauf gekommen mit den Adress Zahlen, also den SOC habe ich schon mal hinbekommen.
Bei den Werten die ich brauche schaue ich auch explizit nach das es nur R (READ) Werte sind.

In dieser Report Liste, finde ich manche Werte mit “H” und “L” , stehen die für HIGH and LOW also den höchsten und niedrigsten Wert. Sorry für die blöde Frage