RS485 Leistungssteuerung für Soyosource Batteriewechselrichter GTN1000

neue Softwareversion 2.01.00 (11.05.2024) – letzte Änderung der Seite 30.05.2024

Mit Version 2.01.00 ist es nun möglich, mehrere Soyosource 1000 Wechselrichter zur Vergrößerung der Leistung anzusteuern. Bis zu 9 Wechselrichter können auf den drei verschiedenen Phasen verwendet werden. Über das Webmenü muss nur die Anzahl der Wechselrichter über Menüpunkt #41 und die Maximalleistung aller Wechselrichter mit #40 eingetragen werden. Die RS485 Schnittstelle wird überall 1:1 parallel A auf A und B auf B verdrahtet. Auf dem OLED Display ist nun neben der aktuellen Wechselrichterleistung auch die aktuelle Leistung vom öffentlichen Netz zu sehen. Diese wird wieder von einem Shelly 3EM geliefert. Es gibt auch eine neue Testfunktion für die RS485 Kommunikation zum Wechselrichter. Wird die Mode Taste im normalen Betrieb länger als 5 Sekunden gedrückt, dann wird jeder Wechselrichter Soyosource 1000 eine feste Leistung von 100 Watt ausgeben.

Habe nun neu einen zweiten Wechselrichter Soyosource 1000 in Verwendung und die höchste Leistung mit #40 auf 1400 Watt eingestellt. Damit entfällt auf jeden Wechselrichter maximal 700 Watt. 

Die neue Version 2.01.00 erfordert es, dass alle Parameter komplett neu eingegeben werden müssen, wenn man vorher Version 2.00.00 verwendet hat.

Download BIN File als ZIP der Software V2.01 für den WEMOS D1 ESP Controller (320Kb) 

Je nach Verfügbarkeit kann ich Ihren Nachbau mit Leerplatinen oder komplett bestückte Leiterplatten unterstützen. Bitte per Mail anfragen. 

Download Schaltung RS485 Leistungssteuerung als PDF (54Kb)
Download Bestückung der Leiterplatte oben als PDF (17Kb)
Download Bestückung der Leiterplatte unten als PDF (4Kb)

Download Inbetriebnahme und Infos als PDF (114Kb)

Anzeigemodul / Monitor (10.05.2024)

Diese simpel aufzubauende Anzeigemodul (ESP8266 Wemos D1 0,96 Zoll OLED) zeigt in WLAN Reichweite die Leistung vom öffentlichen Netz (Grid) und die Leistung des Wechselrichters (Soyosource 1000) an. Damit die OLED nicht einbrennt, wird alle 20 Sekunden die Anzeigeposition geändert. Ich habe dieses Monitor-Display bei mir auf dem Schreibtisch stehen und muss nicht immer in die Garage zum Wechselrichter laufen um die aktuellen Leistungsdaten ablesen zu können.

Inbetriebnahme:

  • innerhalb von 5 Sekunden nach dem Start kurz die Mode-Taste drücken und dann mit dem Laptop eine Verbindung zur SSID „MO-Controller“ über Passwort „12345678“ herstellen. Per Browser die http://192.168.4.1 aufrufen. Wie bei meinen anderen Baugruppen über #01 und #02 die SSID und das Passwort vom eigenen WLAN Netzwerk einprogrammieren
  • den Neustart abwarten und die IP Adresse des Monitor-Displays notieren
  • in der Software der RS485 Leistungssteuerung diese IP wahlweise bei #20 oder #21 eintragen und den UDP Sende Intervall mit #2420 auf zwanzig Sekunden stellen -> nun sollte der Monitor die passenden Daten anzeigen
  • die UDP IP Adressen #22 oder #23 können nicht verwendet werden, da hier unverschlüsselte UDP Daten gesendet werden, die das Display nicht anzeigen wird
  • der UDP Sende Intervall überträgt immer Durchschnittswerte des gewählten Intervallzeitraums

Download der simplen Schaltung vom Display Monitor als PDF (20kb)
Download BIN File als ZIP der Softwareversion V1.00 für den Wemos D1 ESP Controller (225kb)

Softwareversion 2.00.00 (05.03.2024)

Mit der neuen Softwareversion 2 meines RS485 Leistungssteuerung eines Soyosource GTN1000 Wechselrichters kann nun direkt ein installierter Shelly 3EM ausgelesen werden. Es werden beim Lesen alle drei Phasen berücksichtigt und der Batteriewechselrichter GTN1000 auf Nullbezug ausgeregelt.
In der älteren Version 1 wurde nur eine Phase berücksichtigt, weil mein Stromzähler nicht saldierend zählte. Mein neuer Holley Stromzähler, den mir mein Netzbetreiber eingebaut hatte zählt saldierend. Ich könnte also über eine Phase 250 Watt im Haus verbrauchen und wenn ich 250 Watt auf einer anderen Phase zurückspeise, erkennt der Zähler nun korrekt 0 Watt. Zudem kann man sich vom Netzbetreiber einen Freischaltcode geben lassen. Diesen gibt man bei mir wahlweise mit der großen Taste ein oder man benutzt eine Taschenlampe. Mit der Taschenlampe ist die Eingabe aber sehr umständlich. Nachdem man den korrekten Code eingegeben hat, werden u.a. auch der momentane Energiebezug auf das Watt genau angezeigt. Für eine Kontrolle, ob die Regelung vom Nullbezug korrekt funktioniert, ist das aber sehr hilfreich. Über die optische Schnittstelle könnte man nahezu alle Stromzählerdaten lesen. Über einen optischen Lesekopf würde man an die Daten das Smart Message Language (SML) Protokoll herankommen. Ich wollte aber nicht erst einen Software Decoder dafür schreiben und nutze lieber meinen schon längst eingebauten Shelly 3EM. Mein Shelly 3EM ist kein PRO Modell an welches man ein Netzwerkkabel anklemmen könnte. Mein Router steht nur 2m vom Schaltschrank entfernt und der per WLAN angebundene Shelly 3EM hat einwandfreien Empfang. Der Schaltschrank ist bei mir komplett aus Blech. Bei meinem Shelly 3EM habe ich einen Benutzernamen und ein Passwort eingegeben. Die korrekte IP Adresse und die Zugangsdaten benötigt natürlich nun auch die Leistungssteuerung um den Shelly auslesen zu können.

Details bei Version 2.00.00

Es wird für diese Version die exakt gleiche Hardware wie bei Version 1 genutzt. Nach dem Start der Software drückt man kurz auf die MODE Taste und danach spannt der ESP8266 ein eigenes WLAN Netz mit der Bezeichnung „WR-Controller“ auf. Das Passwort lautet wieder „12345678“. Nachdem man mit einem Browser (erfolgreich getestet habe ich unter IOS den Safari-Browser und unter Windows 10/11 den EDGE-Browser). Andere Browser können, müssen aber nicht funktionieren. Wenn man dann die Seite http://192.168.4.1 öffnet, erreicht man das bekannte Konfigurationsmenü. Die möglichen Eingaben werde ich hier kurz beschreiben. 

Um nur den Nullbezug zu verwenden, sind Eingaben bei #01, #02, #30, #31, #32, #33 und #40 notwendig. Nach dem „#“ Zeichen und der zweistelligen Funktionsnummer werden alle Eingaben sofort ohne zusätzliche Trennzeichen angefügt und mit „Save and Check“ gespeichert. Bei vielen Funktionen kann man im Anschluss im Textfeld zwischen eckigen Klammern sehen, was eingeben wurde. Wenn nichts zu sehen ist, dann einfach noch mal auf „Save an Check“ ohne irgendwelche Eingaben drücken. Schützenswerte Daten und Passwörter lasse ich nicht anzeigen.    

#01 WLAN SSID eingeben
#02 WLAN Passwort eingeben

#10 MQTT Channel Nummer
#11 MQTT Write Api Key
#12 MQTT Fieldnummer Energie Netz (Grid)
#13 MQTT Fieldnummer Energie Wechselrichter (Inverter)
#14 MQTT Sendeintervall in Sekunden (0=aus; 1-86400)

#20 UDP IP Adresse 1 (verschlüsselte Daten)
#21 UDP IP Adresse 2 (verschlüsselte Daten)
#22 UDP IP Adresse 3 (unverschlüsselte Daten)
#23 UDP IP Adresse 4 (unverschlüsselte Daten)
#24 UDP Sendeintervall in Sekunden (0=aus; 1-86400)

#30 Shelly IP Adresse
#31 Shelly Benutzername
#32 Shelly Passwort
#33 Shelly Typ – noch unbenutzt (1-9)

#40 maximale Leistung in Watt die am GTN1000 benutzt werden soll (0-1000) ab Version 2.01.00 (0-9000)
#41 Anzahl der Soyosource 1000 Wechselrichter (erst ab Version 2.01.00)

#98 Neustart des ESP Controllers

#99 Löschen der WLAN Daten

MQTT – In vielen Anwendung nutze ich eine MQTT Verbindung zum Cloudservice von Thingspeak, um von Überall die aktuellen Energiedaten ablesen zu können. Bei einem kostenfreien Account von Thingspeak sollte man nicht öfters als jede Minute seine Daten senden. Ich selbst verwende ein Intervall von 2 Minuten. Gesendet werden die Energiewerte vom/zum Netz und die des Wechselrichters. In der Zeit des Intervalls wird von den ermittelten Daten der Durchschnitt ermittelt. Wenn also das Intervall auf 10 Minuten steht, werden die durchschnittlichen Energiedaten der letzten 10 Minuten ermittelt.

UDP – Um die Energiedaten im eigenen Netzwerk mit verschiedenen Geräten weiterverwenden zu können, kann die Leistungssteuerung die Energiedaten vom Netz und des Wechselrichters über das UDP Protokoll und Port 40004 an bis zu 4 IP Adressen senden. An die ersten beiden IP Adressen werde verschlüsselte Datenpakete gesendet. Momentan habe ich ein OLED Display auf meinem Schreibtisch, das mir ununterbrochen die Energiedaten anzeigt. Weitere Anwendung sind in Planung. Die beiden IP Adresse mit der unverschlüsselten Datenübertragung können für eigene Erweiterungen verwendet werden. Gesendet wird die Energie vom Netz und des Wechselrichters mit je 16 Bit als int Wert und ein Byte mit der Prüfsumme (einfache Addition der vier ersten Byte Werte). Auch bei UDP kann der Sendeintervall frei eingestellt werden. In den Sendepausen werden wieder die durchschnittlichen Leistungswerte berechnet.

Wird die Taste im Betrieb gedrückt, dann zeigt das Display die IP Adresse einer bestehenden WLAN Verbindung und die Uptime das Moduls an.

(old) Download BIN File als ZIP der Software V2.00 für den WEMOS D1 ESP Controller (319Kb) 

Die beiden Graphen zeigen einen Ausschnitt meiner Energiedaten von 2 Stunden. Auf der linken Seite ist der Bezug von Energie aus dem Netz zu sehen. Es gibt nur eine Spitze an der ich kurzzeitig meinen Wasserkocher in Betrieb hatte um mir einen Tee zu bereiten. Wenn der Balken nach unten gehen würde, wäre Energie ins Netz gespeist worden.

Im rechten Graph wird die Leistung des Wechselrichters dargestellt. Ich habe den Wechselrichter momentan auf maximal 700 Watt gedrosselt. Schlagartig hatte der Wechselrichter seine vorgegebene maximale Leistung erreicht, als der Wasserkocher in Betrieb war. Danach ging auch kein Watt zu viel ins Netz. Meine momentane Grundlast liegt bei etwa 250 Wh und wird nachts aus den LiFePo4 Akkus gespeist.

Was ist zu unbedingt zu beachten:

Der Shelly 3EM muss korrekt installiert sein. Bei einem Leistungsbezug aus dem Netz des Versorgers muss ein positiver Wert vorhanden sein.Sollte der Wert negativ sein, drehen Sie einfach den Stromwandler um.  Das bedeutet, wenn Ihr Wechselrichter nicht in Betrieb ist, müssen am Shelley immer positive Werte zu sehen sein. Sobald Die Leistungssteuerung in Betrieb ist, geht der Wert auf Null.

Fazit – Die Reglung mit Shelly 3EM, der RS485 Leistungssteuerung für den Soyosource GTN1000 funktioniert auch mit der Software V2.00.00 mehr als zufriedenstellend.   

Beschreibung Version 1.00.00 (24.09.2023)

Die Regelung auf Nullbezug ist  mit dem Grid Tied Inverter SoyoSource GTN1000 (Wechselrichter / Batteriewechselrichter) über die vorhandene RS485 Datenschnittstelle sehr leicht möglich. Der oft mitgelieferte Limiter Sensor muss aber dazu aber mit einem Datenkabel zum Inverter verkabelt verbunden werden. Bei mir ist aber keine Verbindung zwischen Hausverteilung und dem Wechselrichter (mit großem LiFePo4 Akku) möglich. Die Verbindung von meinem Leistungsmesser / -regler zum SoyoSource Batteriewechselrichter erfolgt über das WLAN mit gesicherten UDP Datenpaketen. Dabei können die minimalen und maximalen Leistungsdaten im Leistungsmesser konfiguriert werden. Kommen keine UDP Datenpaket mehr an, wird nach wenigen Sekunden die Leistung des Wechselrichters auf Null heruntergefahren.

Die RS485 Leistungssteuerung wird mit einem zweiadrigen Kabel zum SoyoSource Wechselrichter verkabelt. Die Modulbaugruppe kann wahlweise aus einer von drei verschiedenen Spannungsversorgungen betrieben werden.

a) Betrieb über 230 Volt Netzspannung – es wird ein einfaches Schaltnetzteil 5 Volt (AZ-Delivery AC-05-3) aufgelötet
b) Betrieb direkt über den Solarakku. Die maximale Spannung des Akkus darf aber nicht mehr als 40 Volt betragen
c) Betrieb über die USB Buchse des WEMOS ESP D1 aus einer beliebigen USB Spannungsversorgung

Auf der Leiterplattenunterseite findet man den stromsparenden 5 Volt Spannungsregler der nur bestückt werden muss, wenn die Spannungsversorgung, wie bei mir, direkt aus dem 8-zelligen LiFePo4 Solarakku erfolgt. Der RS485 IC ist in jedem Fall erforderlich, er wandelt die seriellen Steuersignale das WEMOS D1 und ein normiertes RS485 Signal um.
Im Layout habe ich auch noch ein bistabiles Relais samt Steuerung untergebracht. Im Moment habe ich noch keine Idee, was ich wie damit schalten möchte.
Das OLED Display direkt auf dem D1 muss nicht zwingend bestückt werden. Es zeigt mir aber auch aus größerer Entfernung die Leitung an, mit der der Wechselrichter gerade arbeitet. Damit die Pixel nicht im OLED einbrennen, wandert die Anzeige zyklisch langsam über die komplette Displayoberfläche. Diese Pixelverschiebung hat sich schon seit Jahren an meinem Leistungsmesser bewährt und verändert (beschädigt) die Leuchtkraft des OLED kaum. Zwar kann man auch die LCD Anzeige des SoyoSource verwenden und Leistung- und Spannungsdaten ablesen, doch schaltet diese sich immer wieder nach einer gewissen Zeit ab.

Im folgenden Abschnitt zeige ich einen kurzen Ausschnitt aus der mit C++ geschriebenen Software, wie man eine Leistungsanforderung an den SoyoSource Wechselrichter per RS485 sendet. Es sind nur 7 Datenbyte bei 4800 Baud notwendig. Auch die Berechnung der Prüfsumme ist sehr simpel.

Das verwendet Gehäuse ist ein Gehäuse von BOX4U bezogen über www.reichelt.de mit der Bezeichnung 4U63120806437 und kostet nur 4,55 Euro. Es passt perfekt und als Schrauben können einfache M3 Schrauben verwendet werden.

(old) Download BIN File als ZIP der Software V1.00 für den WEMOS D1 ESP Controller (229Kb)

Wird der kleine Taster (Bezeichnung MODE) innerhalb von 5 Sekunden nach dem Anlegen der Spannung (Start) kurz gedrückt, kann man sich mit dem Weboberfläche der Leistungssteuerung verbinden und hier die WLAN Zugangsdaten eintragen. Wird die Taste im Betrieb gedrückt, dann zeigt das Display die IP Adresse einer bestehenden WLAN Verbindung und die Uptime das Moduls an.

komische Laufrichtung der Lüfter

Mein Wechselrichter Soyosource 1000 habe ich mit etwas Abstand zur Wand senkrecht montiert. Sobald sich der Kühlkörper auf etwa 40 Grad Celsius erwärmt hat, schalten sich die beiden Lüfter an der Oberseite des Wechselrichters ein. Als kleines Kuriosum musste ich dabei feststellen, dass diese die Luft von oben einsaugen und nach unten ausblasen. Komisch – erwartet hätte ich, dass diese die Luft nach oben pusten. Mein zweiter Wechselrichter funktionierte wie erwartet und blies die warme Luft oben aus.

Es hat zwar „noch“ keinen Schaden am Soyosource gegeben, aber das Kühlen dauert erheblich länger, wenn die Lüfter von oben in des Gehäuse blasen.

Im Bild hatte ich den Temperatursensor für einen Test von einem der oberen Leistungstransistoren geschraubt und erwärmt. Man kann die Lüfter auch per Menü im „Self-Test“ einschalten und so die korrekte Laufrichtung testen.

Die Lüfter können problemlos gedreht werden, wenn man die schwarze Platte mit den Lüftern abschraubt und die Lüfter anders herum besfestigt.

Im Originalzustand ist der Netzanschluss 230 Volt sehr unglücklich am Soyosource 1000 realisiert. Leicht könnte man an den noch vorn gerichteten Anschlussklemmen einen Stromschalg bekommen. Ich habe dazu den Klemmenblock gedreht. Aber ACHTUNG ! Bitte unbedingt auch die beiden äußeren Kabel des Klemmenblocks umlöten. Ansonsten stimmt die Gehäusebeschriftung mit L und PE nicht mehr.

Meine Anlage besteht momentan (30.05.2024) aus 8 Solarmodulen (310 Watt Solarwatt) mit je 60 Zellen. Zwei Zellen sind an einem Wechselrichter Seeyess (Envertech) EVT500 und speisen ungeregelt in mein Hausnetz. Die restlichen 6 Zellen sind parallel geschaltet und laden über einen MPPT 100/50 (Victron Solarregler) meine 8 Stück 320 Ah (2*160Ah) Winston LiFePo4 Akkus. Der MPPT Regler und die Akkus sind über 16mm² Leitungen verbunden. Vom Akku Plus geht eine 16mm² Leitung über einen Victron Battery Protect 65A zu den beiden Soyosource Wechselrichtern. Akku Minus geht ebenso über 16mm² an die Soyosource 1000 Wechselrichter. Mein BMS überwacht die 8 Akkuzellen und kann bei Bedarf den Bezug über den Battery Protect abschalten, aber auch das Laden direkt am MPPT Laderegler unterbrechen. Ein Shelly 3EM liefert die Lastdaten vom öffentlichen Netz und beide Wechselrichter werden per RS485 auf Nullbezug ausgeregelt.
Jeder Soyosource 1000 Wechselrichter kann 700 Watt liefern. In Summe habe ich 1400 Watt und die 500 Watt aus dem EVT500 bei Sonnenschein zur Verfügung.