NEWS
Growatt Wechselrichter über Modbus auslesen - gelöst -
-
@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 !?
-
Habe das z.B in der Garage mit dem Tor verknüpft, wenn es meiner Bella zu feucht wird, wird das Tor 20% aufgefahren, natürlich nur wenn es draussen bessere Werte hat.EbensobeiCO2 zu hoch fährt das Tor auf..Grenzenlose Möglichkeiten
-
@Wiednitz sagte in Growatt Wechselrichter über Modbus auslesen - gelöst -:
Welche Auflösung hat denn der CO2 Sensor ? In der Luft sind 0,038 Prozent CO2 !?
Ich lesen den Sensor über den Analogeingang des Wemo ein...
Dort fahre ich mit den werten eine Testreihe. Arbeite dann mit Erfahrungswerten...Die Auflösung ist gut, z.B wird sofort erkannt wenn das Fenster auf ist, die Luftwerte verbessern sich deutlich...Ebenfalls ein Feuerzeug mit ausströmenden Gas in der nähe des Sensors als Test funktioniert sehr gut...
Mit den Analogwerten kann man gut arbeiten.. Man muss dasganze halt mal über eine Zeit beobachten und seine Grenzen welche man im Script verarbeitet selbst festlegen. -
Interessant, ich suche ja noch nach Anwendungsmöglichkeiten. Bezeichnung des Sensors ?
Die Idee mit der Garagensteuerung merke ich mir. Baue grad das Seitengebäude zur Garage um, sollen Rolltore rein und Oldtimer. 20 % Öffnung steuerst du über die Laufzeit ? Und wenn niemand zu Hause ist, zwecks Diebstahl ? ?
-
z.B mal Abends heizen mit dem Holzofen und schauen wodie Werte sich einpendeln. Ebenfalls beifrisch gelüftetem Raum. Dabei ist es mir egal wieviel Gramm von irgendwas in der Luft ist...
-
@Wiednitz sagte in Growatt Wechselrichter über Modbus auslesen - gelöst -:
Interessant, ich suche ja noch nach Anwendungsmöglichkeiten. Bezeichnung des Sensors ?
Die Idee mit der Garagensteuerung merke ich mir. Baue grad das Seitengebäude zur Garage um, sollen Rolltore rein und Oldtimer. 20 % Öffnung steuerst du über die Laufzeit ? Und wenn niemand zu Hause ist, zwecks Diebstahl ? ?Ich habe nen Alu rolladen als Garagentor. bei 25 % ist noch alles zu, nur die Lamellen sind auf...Mit Zeit hat das nix zu tun, nur mit Luftwerten, also Grenzwerte Feuchtigkeit oder CO2 zu hoch, dann auf , wenn im Normbereich wieder runter...Demnächst soll dann auch die Carportbeleuchtung blinken beim herunterfahren. Ebenfalls den Voralarm meiner Alarmanlage ( Rückfahrwarner eines Autos 12v ) gibt dann auch ein Signal aus... an dem Script arbeite ich gerade...
-
Na wie steuerst du, den Motor, das das Tor nicht ganz aufgeht, sondern nur die Lamellen auseinander fahren ?
-
@Wiednitz sagte in Growatt Wechselrichter über Modbus auslesen - gelöst -:
Bezeichnung des Sensors ?
MQ5 Gassensor