NEWS
Growatt Wechselrichter über Modbus auslesen - gelöst -
-
Moin ins Forum,
habe gerade testweise eine IOBroker-Instanz an meinem Wechselrichter hängen und versuche mich an dem Modbus-Adapter.
Angeschlossen ist der WR über ein USB-RS232-Kabel, über einen Windows-PC und die zugehörige Software kommen Daten.Der WR soll laut Doku Modbus auf der Schnittstelle sprechen. Ich breche mir jetzt seit Stunden die Finger, vielleicht kann jemand der Pros helfen. Bis jetzt bekomme ich im Log nur:
modbus.0 2019-02-17 11:08:15.750 warn On error: {} modbus.0 2019-02-17 11:08:15.749 warn On error: {} modbus.0 2019-02-17 11:08:15.748 info Disconnected from slave modbus.0 2019-02-17 11:08:14.365 warn Poll error count: 1 code: {"err":"timeout"} modbus.0 2019-02-17 11:08:14.364 error Request timed out. modbus.0 2019-02-17 11:08:14.362 warn Error: undefined
Versuche mich gerade an den Holding Registern, vermute, hier stehen die benötigten Daten.
Die Komm-Doku zum WR habe ich mal angehangen.
Gruß
Matze
Growatt PV Inverter Modbus RS485 RTU Protocol V3.05--客户版.pdf -
Ich löse mal selber auf. Erst einmal hilft es natürlich den richtigen USB-Port einzustellen.
Dann ist unter Eingangsregister die Start-Adresse auf 30000 zu stellen.
Die Adressen werden dann aus der Doku mit +1 eingegeben, d.h. Adresse 00 ist im Adapter die 30001. Fertig, schon kommen die Daten.Matze
-
Hi matze.
Hast du da den Wifi stick dran ? ich bekomm den Growatt 1500s auch die Tage und will ihn einbinden -
Möchte meinen Growatt ebenfalls einbinden. Auch über Modbus allerdings einlesen an an einen WemoD1 Mini und Übertragen im Wlan mittels MQTT um den ChinaUmrichter nicht mittels original Wlan Stick mit der chinacloud verbinden zu müssen. Mein Modbusmaster sitzt leider im Keller und ein Kabelweg zum Umrichter im Garten gibt es nicht.. Auf Github gibts hierzu für den ESP Chip ne Firmware..
https://github.com/jkairys/growatt-esp8266
Würde das allerdings gerne mittels Tasmota lösen. Tasmota kann ja auch Modbus...Hat das schon jemand gemacht? GenerellTasmota und Modbus? -
Also daran arbeite ich auch gerade,ohne tasmota. Das Arduino Script habe ich auch auf einen Wemos gepackt, der über einen max3232 die Kommunikation zwischen Inverter und Shine Stick belauschen soll, nur den tx Kanal. Ob das klappt sehr ich erst morgen, wenn der Inverter wieder Strom hat.
-
@smartboart Schau dir vielleicht mal den Neuen SML Adapter an. Der kann so einiges und ist frei konfigurierbar. OBIS/SML/Counter/EBUS/MODBUS
Forum
Github
Erklärung im Original Tasmota Repro. Dort wird er auch gerade eingefügt. Wenn du allerdings ganz vorne mit dabei sein möchtest musst du den ersten Github link nehmen. -
@Kugelkopf
cool, danke..Das werde ich nach meinem Urlaub mal ausprobieren....
https://github.com/arendst/Sonoff-Tasmota/wiki/Smart-Meter-Interface...Zur Not könnte ich noch nen Raspi als IOB Slave in die Garten Hütte packen, modbus Adapter installieren und damit hätte ich auch noch ein paar GPIO frei...Der Wemo D1 mini ist bereits voll ausgeschöpft bzw. alle GPIO belegt...RX TX kann ich noch frei machen....dann ist aber Schluss... Aber ein Slave über Wlan wollte ich eigentlich nicht noch zusätzlich... Denke die Lösung mit Tasmota wirds werden...Hoffentlich kann der mit dem Growatt...
Wenn hier einer Erfahrungen gemacht hat...als her damit....
-
@Wiednitz
wie ist dein Stand? Bin noch im Urlaub...und konnte das nicht weiter verfolgen...Hab bereits einen D1 mini mit Tasmota im Schuppen , welcher so einiges steuert...Licht Garten, Schuppen, Poolpumpe , TempWasser , Luftfeuchtigkeit usw....Wollte nicht noch einen zusätzlich und hab 2 GPIO frei geschaufelt für den RS232 Schnitstellen Aapter...Deshalb wollte ich nicht mit einem 2. und der oben gezeigten Firmware arbeiten...
https://github.com/jkairys/growatt-esp8266..
Aber kannst ja mal schreiben wies läuft... -
@smartboart Von Haus aus wird er das vermutlich nicht können. Die Modbus Register musst du selbst eintragen. Aber dann sollte es funktionieren. Normalerweise findest du die Register in der Beschreibung deines Gerätes. Bei Probleme hau einfach den Entwickler in dem Forum an welches ich in meinem vorherigen Post erwähnt hatte. Im Allgemeinen sind dort auch alle sehr Hilfsbereit. Ich selbst verwende den Treiber innerhalb Tasmota auch mit einem Wemos d1 Mini zum auslesen unseres Stromzählers (Q3b), Wasseruhr und Gasuhr. Ein Bekannter und ich wollen uns am Mittwoch mal zusammensetzen und einen anderen Zähler via Modbus auslesen. Bin gespannt!
-
Sorry für die späte Antwort, war im Urlaub.
So richtig Erfolg hatte ich noch nicht. Mit dem esp8266 und dem Sketch passiert nix im Iobroker, mit Termite und USB Kabel kommen undefinierbare Daten rein, die sich immer wiederholen.
Mit dem Sketch lasse ich mir die Daten der RS232 Schnittstelle an meinen Iobroker PC schicken, dann mit com0com und hub4com an einen virtuellen COM Port, den ich dann im Modbus Adapter in Iobroker auswählen kann. Hier aber auch nur Fehlermeldungen, Eingangsregister 30001 und 30003 eingetragen.
modbus.0 2019-10-03 15:33:01.061 info Disconnected from slave modbus.0 2019-10-03 15:33:00.060 warn Poll error count: 12 code: {"err":"timeout"} modbus.0 2019-10-03 15:33:00.060 error Request timed out. modbus.0 2019-10-03 15:33:00.060 warn Error: undefined modbus.0 2019-10-03 15:32:58.207 error unknown function code: 10 modbus.0 2019-10-03 15:32:57.205 error Wrong CRC for frame: 1,6,45,19,88,14,1,6 modbus.0 2019-10-03 15:32:55.063 error unknown function code: 215 modbus.0 2019-10-03 15:32:55.063 error unknown function code: 47 modbus.0 2019-10-03 15:32:55.062 error unknown function code: 12 modbus.0 2019-10-03 15:32:55.061 info Connected to slave
-
ERFOLG !!! Hab die Werte vom Inverter endlich im Iobroker ! Wenn die Lösung jemanden interessiert, schreibe ich das gern hier nieder.
-
ERFOLG !!! Hab die Werte vom Inverter endlich im Iobroker ! Wenn die Lösung jemanden interessiert, schreibe ich das gern hier nieder.
-
@Wiednitz
Prima!!! Als her damit....Lag bei mir auf Eis und hab mich über dasGäste Wlan erstmal mit dem Wifi Stick von Growatt zufrieden gegeben...Wäre klasse wenn du die Infos oder ne Anleitung hier rein stellst...
-
Growatt Modbus Daten per RS232 Wifi Bridge an Iobroker senden
Ziel war es die Daten per Wifi an Iobroker zu senden. Die vom Modbus verarbeiteten Daten stelle ich dann auf dem Tochscreen im Flur dar,
die Aktualisierung erfolgt etwa aller 10 Sekunden mit Shine Stick, ohne Stick stellt man den Intervall im Modbus Adapter ein.Benötigte Hardware:
-1 x RS232 Stecker mit Mainboard Anschlusskabel und Buchse
-1 x RS232 Stecker Männlich
-1 x RS232 Buchse Weiblich oder Stecker mit Gender Changer
-MAX3232 RS232 Schnittstelle auf TTL Konverter Modul
-LM317 mit R1 240 Ohm und R2 720 Ohm
-Lochrasterplatine, Jumperkabel, Stiftleiste
-WEMOS D1 mini oder NodeMCUDie RS232 Anschlüsse, den LM317 und die Widerstände habe ich aus alter PC Hardware gewonnen, das TTL Modul und den WEMOS in China bestellt. Der Inverter stellt am RS232 Pin9 8 Volt Spannung bereit, der LM317 macht mit den beiden Widerständen 5 Volt daraus. Die werden an VIn des WEMOS gegeben, dessen 3,3 Volt Anschluss versorgt den TTL Wandler, damit der 3,3 Volt Pegel an TX und RX für den WEMOS bereitstellt. Man kann die Spannungsversorgung natürlich auch mit einem USB Netzteil realisieren.
Pin2 am RS232 Anschluss des Inverter ist TX, Pin3 ist RX, Pin5 GND, Pin9 Spannung. Diese werden 1:1 mit der RS232 Buchse für den Shine Stick verbunden, sofern dieser mit genutzt werden soll.
Soll der Shine Wifi Stick genutzt werden, gelten folgende Verbindungen: TX Leitung vom Inverter an RX Pin3 am RS232 Stecker für TTL Wandler, RX vom TTL an RX am WEMOS. Die RX Leitung vom Inverter hat keine Verbindung zum TTL, respektive zum WEMOS. Der Modbus Adapter empfängt dann nur die Daten mit, die vom Shine Stick angefordert werden. Ist die RX Leitung mit verbunden, funktioniert der Shine Stick nicht. Bei dieser Variante kommt es jedoch zu Fehlermeldungen im Log des Iobroker/Modbus, die Daten werden jedoch meist korrekt gelesen, ab und zu jedoch auch Nonsens, dann steht zum Beispiel bei Inverter Status "20000" als Wert.
Soll der Shine Wifi Stick NICHT genutzt werden, gelten folgende Verbindungen: TX Leitung vom Inverter an RX Pin3 am RS232 Stecker für TTL Wandler, RX Leitung vom Inverter an TX Pin2 am RS232 Stecker für TTL Wandler, RX vom TTL an RX am WEMOS, TX vom TTL an TX am WEMOS.
Fertig sieht das dann so aus,
über das Layout lässt sich streiten, aber es funktioniert erstmal.
Benötige Software:
-ESP Link auf Github
-ESPRESSIF Flash Download Tool Download Page
-Iobroker
-Modbus AdapterAlle Arduino Sketche die ich für Growatt oder Serial to Wifi gefunden hatte, haben keinen Erfolg gebracht. Nur die ESP Link Software hat funktioniert.
Flash Einstellungen siehe Bild:
Im esp-link Programm "Pin assignment" auf "esp-12" setzen und nach Anleitung auf der Homepage für das heimische Wifi konfigurieren. Diese stellt dann die Daten des Inverters an der IP des WEMOS am Port 23 bereit. Abfragen kann man diese mit dem Modbus Adapter im Iobroker, Einstellungen siehe Bild:
Mit "Poll delay" stellt man die Abfragezeit ein, mit der die Werte aktualisiert werden, sofern kein Stick angeschlossen ist. Wenn ein Stick angeschlossen ist, beinflusst dieser Wert die Häufigkeit der auftretenden Abfragefehler. Da bin ich noch am testen, um die Häufigkeit zu reduzieren.
Die Eingansregister sind wie abgebildet in dieser Reihenfolge einzutragen. Das gilt insbesondere für die Register "Generated Power", da sonst die Werte nicht korrekt angezeigt werden, auch wenn bei Register 27 und 29 "0 Kwh" steht.
Ist die Hardware korrekt angeschlossen, sollte die Blaue LED des WEMOS blinken und die Konsole (9600 baud und 8N1 einstellen) vom ESP Link (IP vom WEMOS im Browser) folgendes Bild zeigen (hier mit Shine Stick):
QNB3920002 ist die Seriennummer, GEAD1022 und BG.2.0 die Firmware Version.
Werte im Iobroker:
-
Super Ausführung, klasse....
denke das werde ich auch so aber ohne den Growatt Stick umsetzen..Wollte mich eigentlich auf den D1 mini mit Tasmota in meiner Gartenhuettensteuerung mit drauf hängen, ohne zusätzlichen D1 mini, aber hier habe ich das mit smartmeter schnitstelle in Tasmota nicht hinbekommen. vom Modbusadapter habe ich ohnehin schon eine instanz laufen.
Danke für die Ausführung...Tolle Sache...
Wenn ich das Umsetze und noch Fragen haben sollte , würde ich mich hier nochmal melden...
Auf einen D1 mini mehr wird es dann nicht ankommen. -
Jo gerne und die 3 Euro für einen WEMOS sind ja nicht die Welt. Unbedingt die Pegelspannung 3,3 Volt TTL zum WEMOS beachten !
-
Ja, danke für den Hinweis...Habe schon so einige D1 Mini im Einsatz. Baue meine Sensoren und Aktoren , Bewegungsmelder, Taster ,Spannungsmessung, Wassermelder, CO2 und Temp sowie Luftwerte mittlerweile alle selber. Mit so einem D1 Mini lassen sich schon so einige Informationen einsammeln und den eigenen Bedürfnissen anpassen. Unzählige Vorteile gegenüber den fertige Sensoren, und vom Preis mal abgesehen...
-
Was macht man mit einem CO2 Sensor bzw Luftwerte, bzw. welche Erkenntnisse gewinnt man damit ?
-
zB beim offenen Kamin oder Feuerstätte über die Luftqualität und für ein Lüftungsscipt. Warnungen bei zu hohem CO2 Gehalt im Wohnzimmer beim Feuern oder im Heizungsraum oder in der Garage....Lüftungempfehlungen. Auch Sensoren für die Luftfeuchtigkeit z.B Als Wetterstation im Garten und drinnen... Lüften je nach Feuchtegehalt der Luft usw...
-
Welche Auflösung hat denn der CO2 Sensor ? In der Luft sind 0,038 Prozent CO2 !?