Benachrichtigungen
Alles löschen

[Oben angepinnt] Sun GTIL2-1000 RS485 Interface

1,359 Beiträge
172 Benutzer
114 Likes
96.3 K Ansichten
(@worldofmaya)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 23
 

Hast PN

Wäre schön von euch ein Update zu bekommen! Bin auch gerade dabei mein System auf- bzw umzubauen. Nutze auch einen Shelly 3EM mit 2 GTIL1k. Meine werden dann in Homeassistant integriert, Steuerung soll aber möglichst direkt laufen.


   
AntwortZitat
(@daniel1982)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 24
 

Ich habe mir ein Blockly Skript gebaut, jedoch habe ich einen Fehler drin.

Wenn mein Skript startet und mein Shelly 3EM misst gesamt 400 Watt, dann wird 4000 an die Platine übergeben und der Sun produziert 400 Watt. Mein Shelly 3EM misst nun im Idealfall 0. Mein script übergibt nun die 100 an den Sun und der shelly 3Em zeigt wieder 400 Watt Verbrauch an, danach werden wieder 4000 übergeben. Zweites Problem, sollte zwischen dem schalten ein neuer Verbraucher dazu kommen, erreiche ich keine Nulleinspeisung mehr.


   
AntwortZitat
(@daniel1982)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 24
 

Das Problem bei meinem Skript ist auch falls der Bezug grösser 999 Watt ist und ich somit >10000 übergeben muss, geht der SUN runter auf 274 Watt.


   
AntwortZitat
(@trucki)
Batterielecker
Beigetreten: Vor 3 Jahren
Beiträge: 378
Themenstarter  

Hallo Daniel,

Das sieht ja schon ganz gut aus. Bei Leistungen größer ~965W geht der SUN in den mppt Modus. Deshalb macht er nur noch 274W. Du solltest die maximale Leistung ja eh auf 850W begrenzen, da der SUN1000 das maximal als Dauerlast kann. Beim SUN2000 sind es übrigens 1850W.

Noch ein Tipp (den bislang keiner machen wollte):

Meine Nulleinspeisung funktioniert viel besser seit ich die aktuell erzeugte Leistung (AC Display) verwende um die neue Leistung (AC Setpoint) zu berechnen.

ACSetpoint = ACDisplay + Netzbezug

Als Feinheiten ziehe ich noch 50W ab und Filter noch mit einem1/60 Mittelwert:

ACSetpoint=ACSetpoint-50W

ACSetpoint_new = (ACSetpoint_old*59+ACSetpoint)/60

Viele Grüße
Trucki


   
AntwortZitat
(@walterl)
Vorsichtiger Stromfühler
Beigetreten: Vor 3 Jahren
Beiträge: 12
 

Hallo Trucki,

jetzt muss ich doch auch im Forum mein Feedback zu deiner Platine geben, nach dem ich diese bereits Ende August von dir bekommen habe.

Die Platine ist super von der Idee und der Umsetzung her. Die Montage in meinem GTIL1000 war dank der Beschreibung in github, deiner Abstandsbolzen und der Kabel problemlos.

Ich wollte die Platine eigentlich über einen USB zu RS485 Konverter direkt an meinen Raspberry Pi anschließen, über den ich u.a meinen Solarcontroller auslese und verschiedene Daten an mein volkszaehler-System schicke. Leider gab es allerdings über den raspi sehr viele Kommunikationsfehler (ein Test von einem Windows Notebook funktionierte einwandfrei).
Ich wählte dann eine andere Lösung über einen ESP8266 ESP-12F WiFi Microcontroller mit einem "MAX485 / RS485 Modul TTL auf RS-485", von dem aus ich zur Platine gehe.

Über den USB-Anschluss läuft nur die Stromversorgung und das ESP-Logging, welches ich am raspi auslese und speichere.

Ich habe deinen ursprünglichen Code noch ergänzt um umfangreicheres Logging, das Senden der aktuellen GTIL-Werte (Vbat, Vnetz, Power) an meinen mqtt-Broker und eine Möglichkeit zum Umkonfigurieren zur Laufzeit (über mqtt). Daneben lasse ich die on-board LED des ESP blinken, falls Kommunikationsprobleme zu deiner Platine auftreten. Es gibt ab und zu noch Kommunikationsfehler, die aber die Funktionsweise nicht weiter beeinträchtigen.

Bisher läuft diese Lösung sehr gut und ich bin echt froh, dass ich in diesem Forum auf deine Platine gestoßen bin. Meine vorherigen Lösungen mit Digitalpotentiometer oder Servo mit Potentiometer waren nur workarounds und nicht vergleichbar mit der aktuellen Lösung, die für mich jetzt perfekt ist.

Viele Grüße,
Walter


   
AntwortZitat
(@trucki)
Batterielecker
Beigetreten: Vor 3 Jahren
Beiträge: 378
Themenstarter  

Hallo Walter,

Vielen Dank für deinen tollen Bericht! Es freut mich sehr, dass deine Anlage mit meiner Platine läuft. Das sind die spannendsten Beiträge. Es scheint unzählig viele Varianten zu geben den Wechselrichter / meine Platine anzusprechen (HomeAssistent, ioBroker, Raspberry, SDM630, Arduino,...)

Viele Grüße
Trucki


   
AntwortZitat
(@spf2000)
Newbie
Beigetreten: Vor 2 Jahren
Beiträge: 1
 

Guten Abend!

Eigentlich wollte ich zum Thema im Photovoltaik-Forum schreiben, aber da ist ja nix los im Thread -> Also nächste Anmeldung hier 🙂
Ich bin nur Amateurfrickler und habe mich nach den letzten Strompreiserhöhungen bereits Ende letzten Jahres angefangen als "Notwehr" Solar aufs Dach und ne Batterie zusammengebastelt im Keller, die über billige Umrichter geladen wird.
Dann fehlte nur noch das Auslesen und das Basteln mit einem Poti für die Nulleinspeisung. Im Grunde hatte ich das soweit, aber war mir nicht sicher, ob das lange halten würde. Genau zum Zeitpunkt der Umsetzung dieses zweiten Teils kam mir neulich diese Platine über den Weg, da hab ich doch gleich zugeschlagen.
Jetzt will ich 3 Umrichter ansteuern. Zunächst mal phasenweise Nulleinspeisung realisieren, später vielleicht einfach über alle drei Phasen den Gesamtverbrauch zu je 1/3 einspeisen, der Zähler saldiert ja dann, das kann man dann ja schnell umstellen, wenn man das über den Arduino z.B. macht.

Bei mir sind die Platinen nun angekommen (Yay! Danke!!!) , nur 2 Fragen vom Dummy (also mir) bleiben:

A) Um das Teil "normal" über ModBus anzusprechen nutze ich den Stecker [ B A ] unten rechts und löte nur noch die IDs, die ich will, zusammen?
Auch wenn ich das dann über den Arduino machen möchte, UART muß dafür ja nicht sein, richtig? Der Arduino ist ModBus Master, der bisher über 2 Strippen bereits den Zähler ausliest.

B) Für eine Nutzung am SUN2000, muß man da den Kontakt [2000W] auch zusammenlöten?


   
AntwortZitat
(@trucki)
Batterielecker
Beigetreten: Vor 3 Jahren
Beiträge: 378
Themenstarter  

Guten Abend,
ja genau alles richtig. Ein Arduino Projekt das Dir bestimmt weiterhilft ist dieses hier:
https://github.com/trucki-eu/SDM630-zero-export-controller-Arduino-

Da hast Du den Schaltplan, um deinen Arduino mit RS485 auszustatten und den Master, um meine Platine anzusprechen.

Viele Grüße,
Trucki


   
AntwortZitat
(@magicsven)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 27
 

Noch ein Tipp (den bislang keiner machen wollte):

Meine Nulleinspeisung funktioniert viel besser seit ich die aktuell erzeugte Leistung (AC Display) verwende um die neue Leistung (AC Setpoint) zu berechnen.

ACSetpoint = ACDisplay + Netzbezug

Als Feinheiten ziehe ich noch 50W ab und Filter noch mit einem1/60 Mittelwert:

ACSetpoint=ACSetpoint-50W

ACSetpoint_new = (ACSetpoint_old*59+ACSetpoint)/60

Viele Grüße
Trucki

Hallo Trucki,
genau so mache ich es auch.
ACDisplay + Netzbezug.

In meiner Berechnung setze ich noch das Limit. Wenn >850W dann =850W
var gtil2 = msg.gtil2;
var stromzaehler = msg.stromzaehler;
msg.payload = Number(gtil2) + Number(stromzaehler);
if (msg.payload < 0) {
msg.payload = 0;
}
if (msg.payload > 850) {
msg.payload = 850;
}
return msg;

Nur was genau meinst du mit 1/60 ?
Da komme ich nicht ganz mit.


   
AntwortZitat
(@trucki)
Batterielecker
Beigetreten: Vor 3 Jahren
Beiträge: 378
Themenstarter  

Juhu, das freut mich, dass AC Display verwendet wird. Das war der eigentliche Grund für mich, die Platine überhaupt zu entwickeln.

Wenn ich einen neuen AC Setpoint ausrechne, dann verwende ich 59x mal den alten Wert und nur 1x mal den neu berechneten Wert. Das mache ich ca. alle 500ms. D.h. es dauert ca. 30s bis ein neuer AC Setpoint vollständig beim Inverter angekommen ist.

Viele Grüße,
Trucki


   
AntwortZitat
(@trucki)
Batterielecker
Beigetreten: Vor 3 Jahren
Beiträge: 378
Themenstarter  

Hallo Zusammen,

anbei ein kleines Arduino-Programm für einen ESP8266, welches die "TotalPower" vom Shelly 3EM holt und an den UART Port meiner Platine weitergibt:

Der Arduino-Code ist sicher noch weit entfernt von perfekt, aber vielleicht hat jemand Lust das mal zu testen. Testen konnte ich es bislang leider nur mit einem Shelly 1PM.

Es sollte reichen SSID, Passwort und Shelly IP im Code zu ändern und dann mit der Arduino IDE auf z.B. ein Wemos D1 mini board zu flashen.

Ruft man die IP des ESP8266 / Wemos D1 Mini im Browser auf sollte man das sehen:

Viele Grüße,
Trucki


   
AntwortZitat
(@tom-mo)
Newbie
Beigetreten: Vor 2 Jahren
Beiträge: 3
 

Oha
jetzt wirds interessant, Trucki deine Platine habe ich ja nun. Shelly 3EM habe ich ja, jetzt warte ich noch auf Alis Lieferung Wemos D1 mini board.
Und dann kommen garantiert beim betreten dieses Neulandes Fragen Smile Idea Question


   
AntwortZitat
(@maxim)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 11
 

Hallo Maxim,

toll, vielen Dank für die schönen Bilder. Es ist jedes Mal spannend in andere Keller gucken zu können 😉

Schneller und genauer Regeln:
Nein, das liegt nicht am DAC. Der ist schnell und genau. Es liegt an meinen sehr konservativen Regelparametern, die ich für den SMD630 Modus verwende:
- Immer zwischen 25-75W aus dem Netz beziehen
- Inverter-Output langsam hochfahren (über ca. 60s) und schnell runterfahren (ca.1-2s)
Die Motivation dahinter ist, so wenig wie möglich ins Netz einzuspeisen.

Mit einem eigenen Arduino könntest Du die Parameter so anpassen, wie es für Dich am besten passt. Aus diesem Grund habe ich den SDM630 Regler als eigenes Projekt hier veröffentlicht:
https://github.com/trucki-eu/SDM630-zero-export-controller-Arduino-

Der Code ist nicht ganz aktuell. Z.B. fehlt das Status-Telegramm für den ESP8266 oder die Begrenzung auf 850/1850W. Wenn ich die ganzen Platinen-Anfragen bewältigt habe, dann mache ich mal ein Update.

Damit könnte man auch mehrere SUNs/Platinen ansprechen und kaskadieren. Hier wird es auch so individuell, dass es keinen Sinn macht das in die Firmware meiner Platine zu integrieren.

Viele Grüße,
Trucki

Hallo Trucki,
ich wäre soweit meine zwei Sun 2000 mit RS485 Interface zu kaskadieren. Könntest du bitte den "Zero Export" Code anpassen?
Die Begrenzung auf 1850W würde ich hinbekommen aber ich weis nicht was mit Status Telegram gemeint ist.

Danke im voraus.
Gruß Maxim


   
AntwortZitat
(@trucki)
Batterielecker
Beigetreten: Vor 3 Jahren
Beiträge: 378
Themenstarter  

Hallo Maxim,

Kaskadieren habe ich noch nie produktiv genutzt, da mir der SUN2000 in der Regel reicht. Mit 2xSUN1000 habe ich mal damit rumgespielt und gesehen, dass die Strategie hier eine wesentliche Rolle spielt.

Ich habe damals zwei Ansätze ausprobiert:

1) Den 2. SUN mit maximaler Leistung einschalten, sobald der Hausverbrauch größer ist als die maximale Leistung des ersten SUN1000.
Vorallem im Grenzbereich hat das schnell zum Schwingen der Regelung geführt.

2) Die Leistung 50/50 zwischen den beiden SUN1000 aufteilen. Das hat sehr gut funktioniert. D.h. wenn das Haus 260W verbraucht, dann erzeugt jeder SUN1000 130W. Wichtig war auch hier immer die tatsächlich erzeugte Leistung jedes Wechselrichters zurückzulesen und mit in die Berechnung des nächsten Leistungswerts mit aufzunehmen.
Bei zwei SUN2000 muss man vielleicht eine Kombination aus 1+2 bauen, da der SUN2000 ja nicht weniger als 75W einpseißen kann und sich erst ab 100W stabil regeln lässt. Vielleicht bis 400W nur einen SUN2000 verwenden und ab 400W die Leistung auf beide aufteilen. Natürlich nur, wenn der Hausverbrauch überhaupt unter 200W liegen kann.

Im Moment arbeite ich gerade an dem Shelly Projekt (siehe 3 Beiträge früher). Deshalb komme ich gerade nicht zum Update des "Zero Export Controllers" .
Die aktuelle Regelung mit Begrenzung findest Du in dem *.ino des Shelly Projekts.

Ich hoffe, dass Du so eine Regelung programmieren kannst. Das geht ja erstmal auch ohne StatusTelegramme. Meld Dich noch mal wenn Du so weit bist. Ich verstehe gut, dass die Erweiterung des Statustelegrams nicht ganz einfach ist.

Viele Grüße,
Trucki


   
AntwortZitat
(@walterl)
Vorsichtiger Stromfühler
Beigetreten: Vor 3 Jahren
Beiträge: 12
 

Hallo Trucki,

die "Nulleinspeisung" mit deine Platine läuft sehr gut.

Nachdem die Sonne jetzt ja nicht mehr soviel Energie liefert, dass bei mir der Akku voll wird und der Solarcontroller abregelt, habe ich die maximale Leistung des GTIL1000 auf konstant 200W begrenzt.
Was mir jetzt aufgefallen ist, dass dabei die Einspeiseleistung immer wieder etwas schwankt (auch wenn die Gesamtleistung im Haus viel höher ist): sie fällt nach einigen Minuten ab auf ca. 175W und steigt dann über einige Minuten wieder langsam an bis ca. 190W. Dann macht sie einen Sprung auf die eingestellten 200W. Dieses Muster kann man in den Diagrammen und meinen Logfiles immer wieder sehen. In den Logfiles sehe ich, dass die vorgegebene Leistung wirklich 200W ist. Es gibt ab er dann auch wieder Phasen über Stunden, in denen genau 200W eingespeist werden.

Kennst du so ein Verhalten? Hast du eine Idee, woran das liegen könnte?
Hat GTIL einen Defekt?

Viele Grüße,
Walter


   
AntwortZitat
Seite 14 / 91
Teilen: