Growatt mic Serie über Mqtt auslesen und regeln

Hallo,

ich habe seit ca. einer Woche einen Growatt mic 1500.
Diesen lese ich mit einem ESP8266 Wemos D1 mini über den USB-Anschluss aus. Das funktioniert auch ganz prima.
Mein Problem ist die Regelung der Leistung. Ich habe das mit Node Red in HA realisiert. Es funktioniert, ist aber sehr träge. Es dauert manchmal mehrere Minuten, nach senden eines neuen Powerwertes, bis der WR reagiert. Hat jemand damit Erfahrung und konnte vielleicht das Problem lösen?
Ich nutze auf dem ESP die Frmware von diesem https://github.com/OpenInverterGateway/OpenInverterGateway
Projekt.
Über massenweise Lösungsvorschläge würde ich mich sehr freuen. :wink:

Hier ist ein getunter MIC600 im Einsatz.
Ich verwende einen umgeflashten original Growatt Stick. Wie in dem Video erklärt. https://www.youtube.com/watch?v=APTcYy5eATY
Änderungen der Leistung werden sowohl über MQTT als auch über Modbus umgehend ausgeführt.
Modbus wird über einen RP3 + USB-Adapter und die Inverterschnittstelle RS485(?) gesteuert.

Moin

Ich nutze schon seit vielen Jahren die ESPHome Variante für den WR per

select:
  - platform: modbus_controller
    id: powermode
    name: "${devicename} Power Mode"
    address: 121
    value_type: U_WORD
    optionsmap:

weil es damals mit der MQTT-Variante nicht möglich war über den Modbus Register bei dem WR zu ändern.

Ich hätte da mal eine Frage: Warum und wofür willst Du den Powerwert immer wieder ändern? Weil Du den WR als BKW angemeldet hast und es Deinem Netzbetreiber ansonsten ggf. auffallen könnte falls Du “zu viel” in das Netz einspeist?

VG Jim

OK das erklärt es. :slightly_smiling_face: Zu der Lösung per MQTT Firmware kann ich allerdings nichts sagen, eben weil ich die - wie schon gesagt - vor Jahren nur mal kurz ausprobiert habe und sich damals eben noch keine Werte verändern, sondern nur auslesen ließen.

Wie schnell sich dann Werte mit der ESPHome Firmware ändern kann ich Dir leider auch nicht sagen, eben weil bei mir die Werte alle statisch sind und ich diese nicht ändere.

Aber da im Shine Wifi-X Stick den ich hier benutze - wie Du ja auch schon geschrieben hast - ebenfalls ein ESP8266 steckt, solltest Du für den ESP8266 Wemos D1 mini ja auch irgendwo einen passenden ESPHome YAML-Code (Vorlage) finden, den Du dann mal testweise auf den ESP8266 Wemos D1 mini flashen und es dann mit ESPHome testen kannst.

Vermutlich wirst Du nur den Board-Typ ändern müssen. Bei einem Shine Wifi-X Stick ist das ein esp07s.

esphome:
  name: $devicename
  platform: ESP8266
  board: esp07s

BTW 1: Keine Ahnung was aktuell ein Shine Wifi-X Stick kostet, aber eigentlich lag der in den letzten Jahren immer so um die € 10 und der ist dann m.M.n. schon die bequemere Methode, weil man sich nicht auch noch um eine Gehäuse für z.B. einen ESP8266 Wemos D1 mini (oder Ähnliches) kümmern muss. :slightly_smiling_face:

BTW 2:
Da wäre ich eher vorsichtig. Mich hat gerade erst vor ein paar Tagen ein User angeschrieben der eine alte Anleitung von mir genutzt hat und bei dessen MIC-WR mit einer aktuellen Firmware-Version die Modbus Register nicht mehr passten, bzw. sich - warum auch immer - nicht mehr ändern ließen, weil Growatt durch ein Firmware-Update da scheinbar etwas verändert hat. Ob das aber wirklich so ist kann ich nicht beurteilen. Auf meinem WR läuft immer noch eine Firmware-Version von 2021. :slightly_smiling_face:

Edit:

Vermutlich dann also um

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

VG Jim

Gibt es, wie bei Fronius, eine “Rampe” wie schnell sich der Wert im WR ändern soll ?

Der WR wurde, nach abziehen des Growatt-Sticks, auf Werkseinstellungen zurück gesetzt ?

Fronius Beispiel Node-RED:
const WMaxLimPct_RmpTms = 24; // Sekunden bis Wert erreicht wird.

Hallo Anon,

welche firmware.bin aus deinem Projekt hast du genau auf den ESP8266 geflasht?

Ich habe versucht, meinen ShineWiFi-X-Dongle zu flashen, allerdings ohne Erfolg. Ich habe GPIO1 und GND wie beschrieben gebrückt, dennoch bekomme ich sowohl mit dem lokalen ESP Flash Tool als auch mit der Web-Variante immer einen Write Timeout.

Daraufhin habe ich mir einen separaten ESP8266 besorgt und die firmware-d1.bin geflasht. Das Flashen lief problemlos, jedoch werden nach dem Anschluss an den Wechselrichter keine Daten angezeigt.

Hast du dazu eventuell einen Tipp?

Vielen Dank im Voraus