Ich bin begeistert (von mir selber ^^).
Ich habe meinen freien Tag genutzt (die Leute vom Terrassenbauer waren da, um Aufmaß für unser Solarterrassendach zu machen), und mich damit beschäftigt, so gut es geht, die „Beschränkungen“ der Growatt Software auszuhebeln.
Hintergrund: Der Growatt Wechselrichter lässt sich über RS232 abfragen.
Darauf haben die Chinesen einen Wifi-Adapter gebastelt, der seine Daten alle 5 Minuten an einen Server in China schickt, und DER Server bietet ein Webinterface und eine API, damit man an die Daten kommt. Was ja ganz praktisch ist (mein Solarertrag dürfen die in China gerne wissen), WENN es da nicht den Umstand geben würde, dass man diesen 5 Minuten Intervall nicht umgehen sollte.
Da der Server wohl für alle Kunden zuständig ist, Sperrt er einen, sobald man eine Bestimmt Abfragehäufigkeit erreicht hat, damit der Server reaktiv bleibt. Den Intervall erhöhen oder viele Geräte über die API auf den Server zugreifen lassen führt nach kurzer Zeit also zu einer temporären Sperre.
Ich musste also eine Möglichkeit finden den Push Intervall zu erhöhen und von der Growatt API weg zu kommen, um die Daten schneller im HomeAssist zu haben, aber ohne dass ich die Möglichkeit verliere die Webseite oder die API zu nutzen, wenn ich das möchte (macht sich am Handy/Tablett von Unterwegs einfach gut).
Es bringt also keine Punkte den WiFi Adapter abzubauen, und einen Raspi an den RS232 Port zuhängen. (Und mich dann damit zu beschäftigen, wie ich an die Daten komme). Ich bin kein Programmierer.
Da ich nicht der Einzige mit dem „Problem“ bin, gibt es natürlich Lösungen. Aber finde die mal. Es gibt ja 1000 Möglichkeiten seine Daten aufzubereiten …. Ich brauche eine für Home Assistant Und nicht für XXX oder irgendwelche Datenbanken. Wenn’s geht ohne Programmieren. Eine „direkte“ Möglichkeit habe ich nicht sofort gefunden.
Als erstes habe ich den Refresh vom Stick auf den kleinsten Wert gestellt. Eine Minute. Da Growatt nicht möcht, das man das macht, ist es natürlich versteckt und nicht einfach. Einen funktionierenden Weg zu finden hat schon mal einige Zeit und viele Versuche gebraucht.
Als nächstes habe ich einen findiger Programmierer aus Belgien gefunden, der einen Proxy für den Growatt Wifi Stick in Python geschrieben hat. Ein Stück Software, dass auf einem Raspi läuft. Man lässt den Wifi Stick seine Daten an den Raspi schicken, und der leitet sie weiter zum Server in China. Und der Proxy bereitet die Daten dann als MTQQ Packet auf, die der Home Assistent versteht. Das Script nennt sich Grott.
Phyton? MTQQ? Zwei Dinge von denen ich wirklich, wirklich NULL Ahnung habe.
Und da die Software von einem Programmierer kommt, ist die Anleitung zur Installation und der Nutzung auf GitHub für einen Dummie völlig aussagelos.
Erst der Punkt „Issues“ auf GitHub hat ein bisschen Klarheit für mich geschaffen, da da weitere Dummies Fragen stellen.
Also den Git auf den Raspi geklont und Python installiert. Die grott.in angepasst und das Programm mit python3 grott.py -v gestartet und die Ausgabe angeschaut. Nach ein paar Versuchen sind sinnvolle Daten dabei rausgekommen.
Dann MQTT im Home Assistant installiert. Vorher gegoogelt was eigentlich ein Broker ist, von dem alle reden. Alles böhmische Dörfer. Das ging wenigstens einfach. Nur ein paar Buttons in der Weboberfläche drücken. Aber Daten habe ich deshalb nicht bekommen. Nach viel Trial und Error ist mir dann aufgegangen, dass das Script auf dem Raspi zwar ein MTQQ Paket erzeugt, aber ohne den entsprechenden Dienst auf dem Raspi werden die natürlich nicht verschickt!
Also wieder zurück auf den Raspi und Moskito Server Software installiert und konfiguriert. Nach ein bisschen Trial und Error .. Huraaaa, die Daten kommen im MTQQ vom Home Assistant an. Und schon stehe ich vor dem nächsten böhmischen Dorf. Wie mache ich aus dem MTQQ Paket einen Sensor im Home Assistant, den ich auslesen kann?
MQTT Explorer? Zeigt die Pakete an, aber macht keine Sensoren draus.
Also selbst Schreiben in irgendwelchen Yaml Dateien? Zu allem Glück hat Home Assistant vor kurzer Zeit die Syntax für MQTT Sensoren geändert und 80% alle Tutorien sind damit fürn Arsch. Ich bin kein Programmierer. Frust. Da geht echt viel Zeit drauf. Blöde Fehlermeldungen. Noch und nöcher.
Dann der nächste Fund beim Googeln auf GitHub. Der nächste findige Programmierer hat das Script vom ersten findigen Programmierer genommen und es für den Home Assistant als Addon zur Verfügung gestellt.
Klasse. Also dieses (mit ein paar Buttons) in den Home Assistant geholt. Den Wifi Stick vom Raspi auf den Home Assistant gebogen und Daumen gedrückt.
Es kommen Daten …. Aber nur Schrott :-(
Noch mehr Trial und Error.
Und Dann ….. Jubel. Verwertbare Daten nach eine Konfigurationsanpassung. Und die Daten werden automatsch zu Sensoren gemacht, die ich nutzen kann.
Dann noch fix die Dashboards im Home Assistant angepasst und morgens gegen 0300 hatte ich endlich eine funktionierende Anzeige im Home Assistant.
Alter Schwede. Wall of Text. Musste ich teilen^^