Growatt Wechselrichter / ShineWiFi einbinden

Begonnen von chello93, 16 März 2019, 17:30:07

Vorheriges Thema - Nächstes Thema

Tobias

Hat dein Growatt echt kein Modbus-RTU Port? Dachte den haben alle?
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

uron

Nur einen COM-Anschluss und unter deinem Link findet sich nur der Hinweis auf supportete SPH-Wechselrichter!
Raspberry Pi  fhem  FHEMobile  CUL  FS20-, HM-, Intertechno-, AVM- und Shelly-Aktoren, Vitoconnect 100, Vitocal 200-S, Optolink, FTUI auf iPad, FTUI auf iPhone, Stromzähler von Powerfox, Wechselrichter Growatt MIN 4600 TL-XH, RasPi ioBroker

Tobias

Der COM Anschluss ist/ müsste der richtige. Und dann funktioniert es auch mit deinem ;)
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

uron

OK, dann werde ich mich wohl auch mal mit Modbus beschäftigen müssen!
Raspberry Pi  fhem  FHEMobile  CUL  FS20-, HM-, Intertechno-, AVM- und Shelly-Aktoren, Vitoconnect 100, Vitocal 200-S, Optolink, FTUI auf iPad, FTUI auf iPhone, Stromzähler von Powerfox, Wechselrichter Growatt MIN 4600 TL-XH, RasPi ioBroker

minierm

Update Growatt HTTPMOD
Heute hat Json mich richtig geärgert: Bei der Umwandlung der JSON-Liste der Leistungsdaten zur Verarbeitung mit Regex ist gewaltig was schief gelaufen und die Sortierung war unbrauchbar. Beim Erzeugen der Einzelreading ist eine mögliche Fehlerquelle, daß zwei- und dreistellige Readings erzeugt wurden und die zweistelligen nicht vor den dreistelligen einsortiert wurden... ReadingAutoNumLen 3 mit/ohne Readingnummer hat auch nicht geholfen.
Nach viel Probieren bin ich auf RegEx umgestiegen...

Die neuen Readings:
attr Strom_BKW_Aktuell reading01Name PowerAll
attr Strom_BKW_Aktuell reading01Regex "pac":(.*)}}
attr Strom_BKW_Aktuell reading02Name PowerLast
attr Strom_BKW_Aktuell reading02RecombineExpr my $val = join ",", @matchlist;; $val =~ /.*,([1-9]\d*(?:\.\d*)*)(,0)*?/;; $1
attr Strom_BKW_Aktuell reading02Regex "pac":(.*)


PowerAll Rohdaten sieht dann so aus:
[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,0.0,0.0,0.0,0.0,0.0,29.1,31.7,39.1,42.15,45.2,64.0,229.0,258.3,289.6,309.1,320.4,345.3,359.4,404.1,432.3,452.6,471.9,483.6,504.8,539.5,480.9,590.0,611.1,606.6,608.2,608.4,610.6,607.8,610.3,null,null,null,null,null,612.7,611.4,617.2,608.6,607.9,608.8,613.6,610.4,612.9,614.9,613.3,612.9,560.9,611.5,615.9,615.7,615.2,610.8,616.3,611.8,611.4,614.3,609.9,611.9,613.9,615.2,620.1,608.2,610.7,610.4,null,null,null,null,null,null,608.3,608.3,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,27.6,null,null,null,null,null,12.6,11.0,10.1,9.0,8.0,7.7,7.6,7.6,2.6,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]


Die komplette Definition:
define Strom_BKW_Aktuell HTTPMOD https://server.growatt.com/singlePage/inv/getInvDayChart
attr Strom_BKW_Aktuell alias BKW
attr Strom_BKW_Aktuell comment deleteReading Strom_BKW_Aktuell LAST_ERROR
attr Strom_BKW_Aktuell enableControlSet 1
attr Strom_BKW_Aktuell event-on-change-reading PowerAll,PowerCurrent,PowerLast
attr Strom_BKW_Aktuell eventMap { usr => {\
'W' => 'reread'}\
}
attr Strom_BKW_Aktuell group Dash_Strom,PV,Strom
attr Strom_BKW_Aktuell reading01Name PowerAll
attr Strom_BKW_Aktuell reading01Regex "pac":(.*)}}
attr Strom_BKW_Aktuell reading02Name PowerLast
attr Strom_BKW_Aktuell reading02RecombineExpr my $val = join ",", @matchlist;; $val =~ /.*,([1-9]\d*(?:\.\d*)*)(,0)*?/;; $1
attr Strom_BKW_Aktuell reading02Regex "pac":(.*)
attr Strom_BKW_Aktuell replacement01Mode expression
attr Strom_BKW_Aktuell replacement01Regex %%datetoday%%
attr Strom_BKW_Aktuell replacement01Value {strftime('%F', localtime())}
attr Strom_BKW_Aktuell requestData plantId=<xxx>&date=%%datetoday%%
attr Strom_BKW_Aktuell room Sensoren,Strom
attr Strom_BKW_Aktuell showBody 0
attr Strom_BKW_Aktuell showError 1
attr Strom_BKW_Aktuell stateFormat PowerCurrent
attr Strom_BKW_Aktuell userReadings PowerCurrent:PowerLast.* {ReadingsNum($NAME, "PowerLast", "?")}
attr Strom_BKW_Aktuell webCmd W

Teamdrachen

Zitat von: Tobias am 28 Januar 2023, 17:17:19
Hi,
Ich habe meine Wechselrichter komplett von der Chinacloud getrennt bzw den WiFi Stick nicht angesteckt. Erst Recht weil mein WiFiStick ständig ein offenes WLAN anbietet. Ich ziehe meine Daten über den Modbus-RTU Port direkt aus dem Wechselrichter und schiebe die Daten über MQTT ins FHEM. ISt dadurch offen und für jede andere SmartHome Lösung benutzbar. Ist auch mit OpenWB kompatibel.
Funktioniert für Solax, Growatt und auch andere

https://github.com/tobiasfaust/SolaxModbusGateway

Eventuell ja ein Grund für euch von der Cloud weg zu wechseln

Der Ansatz hat was.
Ich steige gerade von SMA auf Growatt SPH10000TL3 BH UP um und die Montage wird bisher nur wegen FHEM bzw. der Überschusssteuerung verzögert.
Wifi Stick umflashen mag ich nicht, da ich gern wie beim SMA eine duale Lösung hätte. Interne Datenerfassung und trotzdem noch Cloudlogging.

ESP und SP3485 sollten Freitag eintrudeln.

Welchen WR nutzt Du und musstest Du die Schnittstelle am WR noch speziell konfigurieren oder läuft die Out of the Box?

Tobias

Du musst nur schauen welche modbus Client ID und welche Baudrate beim growatt eingestellt ist.
Dann sollte es direkt laufen.
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

uron

Zitat von: Tobias am 28 Januar 2023, 18:46:02
Der COM Anschluss ist/ müsste der richtige. Und dann funktioniert es auch mit deinem ;)
So jetzt mache ich mich auf den (steinigen) Weg, steinig deshalb, da ich mit Nicht/Halbwissen ans Werk gehe.
Richtig ist sicher, dass zunächst trotz (dann neuer) Modbus-Verbindung die direkt mit ioBroker kommuniziert, die Verbindung zum Chinaserver aufrecht bestehen bleibt und ich über meinen Shine-WiFi-Stick aktuelle Daten dort mittels App abrufen kann, oder? Wenn ich dann später die Verbindung zum Chinaserver kappe, müsste ich mir wohl im ioBroker eine Dastellung basteln (VIS), damit ich auch unterwegs meine PV-Anlage einsehen kann.

In den Unterlagen zum COM-Anschluss meines Growatt-WR (MIN_4600TL-XH) habe ich die in der Anlage (Foto) skizzierte Belegung des COM-Ports gefunden
PIN 5+6 sind bereits mit dem Smartmeter belegt, bleibt 3 und 4, um dort die Daten vom ioBroker abzugreifen - soweit müsste das passen.

Nun zur Hardware - und da bestehen bei mir existenzielle Fragen:
Da ich keinen LAN-Anschluss in meiner Garage habe, benötige ich eine Verbindung über WLAN in mein Netz, so wie sich auch der Shine-Wifi-Stick dort verbindet.
Nun suche ich ein "Stück Hardware, was die 2 PINs mit meinem WiFi-Netz" verbindet - unfachmännischer konnte ich es nicht ausdrücken  ???
Gelesen habe ich so etwas wie Modbus-Adapter RTU.
Und nun brauche ich einen Tipp, was sich dazu eignet, ohne noch lange zu löten, zu flashen o.ä.

Wer kann/will mir helfen?




Raspberry Pi  fhem  FHEMobile  CUL  FS20-, HM-, Intertechno-, AVM- und Shelly-Aktoren, Vitoconnect 100, Vitocal 200-S, Optolink, FTUI auf iPad, FTUI auf iPhone, Stromzähler von Powerfox, Wechselrichter Growatt MIN 4600 TL-XH, RasPi ioBroker

Tobias

Sieht nach PIN 3+4 aus

Den Rest solltest du alles in meinem Wiki finden. Ich konnte deinen Worten hier nicht wirklich folgen :(
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

uron

#99
Dein Wiki habe ich gelesen, was Fertiges mit SV ist leider nicht dabei (Seriell -> WiFi), also doch Bastelarbeit!
Sorry, dass ich mich so kompliziert ausgedrückt habe, dass ich nicht verstanden werde  ???

Am Ende hoffe ich, dass ich mehr Daten über die serielle Schnittstelle bekomme, wie über den Shine-WiFi-Stick und den Chinaserver, oder ist das nicht zu erwarten?
Raspberry Pi  fhem  FHEMobile  CUL  FS20-, HM-, Intertechno-, AVM- und Shelly-Aktoren, Vitoconnect 100, Vitocal 200-S, Optolink, FTUI auf iPad, FTUI auf iPhone, Stromzähler von Powerfox, Wechselrichter Growatt MIN 4600 TL-XH, RasPi ioBroker

Tobias

Bastelarbeit, naja... 4 Kabel um die Modbus Platine mit dem ESP32 zu verbinden und dann nochmal 2 Kabel für die Modbus Verbindung zum Growatt ist nicht wirklich Bastelarbeit ;)
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

Teamdrachen

@Uron

kommt drauf an, wie Du die Daten haben willst.
Wenn Du nicht löten magst.
Es gibt z.b. bei Amazon ein "RS485 to WiFi/Ethernet Module Rail-Mount Serial Server Modbus MQTT Gateway" um die 50€
Damit kann man sich das Modbus Signal entweder transparent übertragen lassen, oder eben über MQTT.

Problem gegenüber einer Quelloffenen Community Lösung:
Wenn irgendwas nicht passt, gibt es meist keine Unterstützung.
Growatt soll sich so weit ich gelesen habe nicht zu 100% an den Standard Registernummern orientieren und dann wären Anpassungen notwendig.
Wenn das Interface des Moduls keine freie Zuordnung Registernummer <> Reading zulässt wäre dann an der Stelle Schluss.
Bei einer Community Lösung findet sich eher jemand der Anpassungen vornehmen kann da der Quellcode vorliegt.

8 Lötpunkte setzen und den ESP flashen ist auch kein Hexenwerk.

uron

Zitat von: Tobias am 15 März 2023, 10:55:57
Bastelarbeit, naja... 4 Kabel um die Modbus Platine mit dem ESP32 zu verbinden und dann nochmal 2 Kabel für die Modbus Verbindung zum Growatt ist nicht wirklich Bastelarbeit ;)

Des Lötens bin ich mächtig - 6 Kabel an Platine löten ist überhaupt nicht das Problem, mir fehlen leider die Hardware-Basics:
Wohin mit der Platine (an einen Raspi oder Arduino mit WLAN-Modul?), wenn JA, ist die Stromversorgung und WiFi klar, wenn NEIN, bleiben viele Fragen
Was muss ich an Software einsetzen und wie?

Sorry, mit solchen Ahnungslosen habt ihr es sicher nicht oft zu tun. Ich finde aber keinen Anfang und stelle deshalb dumme Fragen.

Raspberry Pi  fhem  FHEMobile  CUL  FS20-, HM-, Intertechno-, AVM- und Shelly-Aktoren, Vitoconnect 100, Vitocal 200-S, Optolink, FTUI auf iPad, FTUI auf iPhone, Stromzähler von Powerfox, Wechselrichter Growatt MIN 4600 TL-XH, RasPi ioBroker

uron

Zitat von: Teamdrachen am 15 März 2023, 11:09:00
@Uron

kommt drauf an, wie Du die Daten haben willst.
Wenn Du nicht löten magst.
Es gibt z.b. bei Amazon ein "RS485 to WiFi/Ethernet Module Rail-Mount Serial Server Modbus MQTT Gateway" um die 50€
Damit kann man sich das Modbus Signal entweder transparent übertragen lassen, oder eben über MQTT.

Problem gegenüber einer Quelloffenen Community Lösung:
Wenn irgendwas nicht passt, gibt es meist keine Unterstützung.
Growatt soll sich so weit ich gelesen habe nicht zu 100% an den Standard Registernummern orientieren und dann wären Anpassungen notwendig.
Wenn das Interface des Moduls keine freie Zuordnung Registernummer <> Reading zulässt wäre dann an der Stelle Schluss.
Bei einer Community Lösung findet sich eher jemand der Anpassungen vornehmen kann da der Quellcode vorliegt.

8 Lötpunkte setzen und den ESP flashen ist auch kein Hexenwerk.

ohne Communitylösung wäre das für mich überhaupt nicht zu machen, nur das ist der Weg für mich.
Raspberry Pi  fhem  FHEMobile  CUL  FS20-, HM-, Intertechno-, AVM- und Shelly-Aktoren, Vitoconnect 100, Vitocal 200-S, Optolink, FTUI auf iPad, FTUI auf iPhone, Stromzähler von Powerfox, Wechselrichter Growatt MIN 4600 TL-XH, RasPi ioBroker

Tobias

Ich versteh die Frage nicht ganz.
Im Wiki steht doch das die Modbus Platine an den ESP32 anzuschließen ist.
Der ESP32 hängt im Wlan und pusht alles zum MQTT Server.

Mehr als diese 2 Komponenten gibt es nicht.
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter