Sun GTIL2-1000 RS485 Interface

Für mich ist es ein großer Vorteil, dass der Regler den aktuell eingespeißten Leistungswert aus dem Wechselrichter auslesen kann, bevor er einen neuen Wert an den Wechelrichter schickt. Möchte man z.B. 50 W mehr einspeißen, dann macht mein Regler:

Neuer SOLLwert = ISTwert + 50W

Das wirkt einem Aufschwingen ganz gut entgegen, obwohl ich den SDM630 nur jede Sekunde auslese.

Ein weiterer Vorteil ist, dass ich alle Werte digital habe und dann an HomeAssistant / Grafana zur Auswertung schicke.

Edit: Und nicht zu vergessen der Überspannungsschutz des analog-Eingangs und die galvanische Trennung vom Wechselrichter zum Regler. Trotz wildem gebastel auf der Reglerseite habe ich keine Sorge mehr, mir plötzlich den Wechselrichter zu zerschießen...

Gruß,
Trucki

Ist es denn möglich die aktualisierte Firmware für die Platine irgendwo runter zu laden und selber zu aktualisieren? wäre froh wenn mein 2000er auch die angesprochenen Probleme umgehen würde ;o)


Noch zur Info:

Es ist auch möglich die Platine von Trucki über esphome in iobroker anzusprechen, die Daten werden also über einen Wemos D1 Mini (auf dem esphome läuft) an iobroker gesendet. in iobroker kann man sich dann ein script oder ein blockly zusammenbasteln, welches die aktuellen Daten ausliest und vielleicht auch noch die Daten eures Stromzählers und dann einen neuen Wert berechnet, der wiederum an den Wemos geschickt wird und somit die Platine steuert.

Das ganze sieht dann ungefähr so in Grafana als Tagesverlauf aus:

Das ganze sieht dann ungefähr so in Grafana als Tagesverlauf aus:
Würdest Du mir bitte einen screenshot machen, nur mit dem Stromverbrauch von 14:30 bis 15:00 drauf, aber bitte mit Skala?
Sowas wie hier aus meinem Beitrag unter "Schwankungen" schwarz gezeichnet ist.
Danke im Vorraus!

Hallo Zaimaen,

Sieht gut aus. Kannst Du mir ne Emailadresse per PN schicken. Ich versuch Dir nächste Woche mal ein neues hex file zu schicken.

Gruß Trucki

Das ganze sieht dann ungefähr so in Grafana als Tagesverlauf aus:
Würdest Du mir bitte einen screenshot machen, nur mit dem Stromverbrauch von 14:30 bis 15:00 drauf, aber bitte mit Skala?
Sowas wie hier aus meinem Beitrag unter "Schwankungen" schwarz gezeichnet ist.
Danke im Vorraus!
Kann ich gerne machen allerdings habe ich keine Skala da dran, weil ich die Gesamtwerte errechne und ich sonst jedes mal mit Skala die Werte zerschossen hab (Höhe und Dauer passten nicht zusammen). ![47966=8092-Solar-1430-bis-15-uhr.PNG|2404x522](upload://eD4RgGqDTRbtWf0wYBOQKJIb2cg.png)
Kann ich gerne machen allerdings habe ich keine Skala da dran
Vielen Dank, wofür steht denn ein Kästchen in der Höhe? Muss auch nicht exakt sein.
Benutzt du ein shelly?
Oder: wenn Du auf deinen Zähler schaust, was steht da meistens? ungefähr?
Kann ich gerne machen allerdings habe ich keine Skala da dran
Vielen Dank, wofür steht denn ein Kästchen in der Höhe? Muss auch nicht exakt sein.
Benutzt du ein shelly?
Oder: wenn Du auf deinen Zähler schaust, was steht da meistens? ungefähr?
Also hier nochmal eine andere Ansicht ohne die ganzen Sachen drumrum (Tabellen, momentane Auslastung, Eigenverbrauch etc...)
Denke das ist dann das was du suchst... man erkennt auch irgendwann wenn die Poolpumpe einsetzt und leider heute nicht genug Sonne da ist (normal steuert sich die Pumpe automatisch über ein script aber das ist aus weil ich gestern stark gechlort habe und das Wasser gefiltert werden soll)

Zur Auswertung habe ich die Daten aus der Platine von Trucki (ein Wemos (ESPHOME) hängt an der Schnittstelle und sendet die Daten per mqtt an iobroker) und meinen Stromzähler (den ich ebenfalls mit einem Wemos D1 mini (Tasmota) und einer IR Diode auslese). Die Daten kommen alle in iobroker an und werden da mit scripten und eben influxdb geloggt. Die Grafik ist dann Grafana und erzeugt aus den Werten die in der influxdb gespeichert sind die entsprechenden Graphen etc.


Das Blockly habe ich auch mal angehängt, mit dem der Wert vom Stromzähler und der aktuellen Produktion +50 watt extra berechnet und dann an den wemos d1 an trucki's platine geschickt wird. natürlich reagiert das sehr schnell, man könnte natürlich auch noch zwischenwerte etc berechnen aber bis jetzt klappt es gut. ![47980=8098-Solar-Ausschnitt-andere-Ansicht.PNG|2404x554](upload://eobKY6sDJpl6p51E8bboxdqsoMu.png)

Die Anbindung des WemosD1 mit ESPhome erfolgt dann über ein XY-017 bzw. RS485 TTL Board auf den RS485 Eingang der Platine von Trucki oder direkt über RX-TX ?
Was genau muss denn im ESPhome eingestellt werden?
Dieser Ansatz interessiert mich brennend.

Trucki hat auf der Github Page eine Anbindung an einen esp beschrieben also einfach über rx und tx vom z. B. wemos d1 mini OHNE xy017 etc. direkt auf Trucki's Platine (und den einen widerstand auslöten), so wie er es angegeben hat.
auch das Skript für den esp hat er dankenswerter weise zur Verfügung gestellt.

hier nochmal der link dazu (steht da unter: "Controlling the SUN GTIL2 from HomeAssistant:"):

https://github.com/trucki-eu/RS485-Interface-for-Sun-GTIL2-1000

und noch als tipp: wenn man in die yaml bzw. konfigurationsdatei noch ein

web_server:
port: 80

einträgt, dann kann man direkt auf den esp mit der ip und dem Port zugreifen und sehen ob Daten ankommen und mit Hilfe von Schiebereglern gesetzt werden können.
also z. B. 192.168.178.26:80 <-- muss natürlich die ip deines wemos im netzwerk sein und ergibt dann so ein Bild:

RX -- RX
TX -- TX

oder tauschen? Also:
RX -- TX
TX -- RX ?

so

RX -- TX
TX -- RX

und nicht vergessen den Widerstand R19 auf Trucki's Platine auszulöten!

Hallo Trucki,
........
falls ich es hinbekomme kann ich den code auch gerne hier einstellen wenn es jemand braucht..............
sehr gerne, da ich mit der yaml von Trucki nicht ganz klar komme.
Habe zwar bereits die
#include <AltSoftSerial.h> ersetzt, aber bringt mir immer noch fehler.
Die komplette yaml wäre daher sehr hilfreich.

Also ich habe auch etwas gebraucht um irgendwie ein ergebnis mit esphome zu bekommen. leider ist die dokumentation mit videos oder ähnlichem oder auch nur einem einfachen lauffähigem beispiel eine gefühlte katastrophe wenn man vorher noch nicht damit gearbeitet hat.

grundsätzlich muss man hier erstmal unterscheiden. soweit ich es verstanden habe ist die "yaml" die konfigurationsdatei bei esphome, sprich das was trucki auch zur verfügung gestellt hat. die altsoftserial.h gehört allerdings in die arduino.ino datei die man natürlich auch auf einen esp hochladen kann, dann aber nix mit esphome zu tun hat. mein erster gedanke war daher die daten vom wemos am stromzähler mit dem wemos an truckis platine anzufordern und auszuwerten. da ich auch mit esphome vorher noch nie etwas zu tun hatte und die abfrage wemos wemos in einem vorherigen versuch schon funktionierte, dachte ich ich spare mir den weg über iobroker. da esphome aber mit dem webserver die daten so schön liefert und ich die möglichkeit habe die schieberegler zu nutzen etc. bin ich erstmal dabei hängen geblieben. auch hier gab es aber das problem, dass die vorgegebene yaml auf truckis github seite nicht einfach eins zu eins übernommen werden kann, da hier keine angaben über den verwendeten esp etc drin sind. man muss also noch eins zwei sachen hinzufügen und selbst dann kamen keine daten in iobroker an. warum? weil es irgend einen bug gibt, und der wemos einfach immer wieder offline geht. die lösung war dann der weg über mqtt anstatt der api und der funktioniert nun bisher gut und mit dem blockly in iobroker läuft es soweit, dass ich die testphase nun erstmal so weiter nutze ;o) sicher gibt es noch verbesserungspotenzial (trucki gibt die werte wenn ich es richtig gelesen habe ja nicht direkt weiter sondern berechnet zwischenwerte um ein aufschwingen zu vermeiden etc.) ich bin froh, dass es erstmal funktioniert, denn jeder möchte ja irgendwann mal ein ergebnis haben. hier als meine "zusammengebastelte" yaml für esphome (die ip und daten bei mqtt sowie die passwörter müssen natürlich angepasst werden).

Viel Spaß beim Ausprobieren :wink:

esphome:
name: "solarcontroller"
esp8266:
board: esp01_1m
web_server:
port: 80

Enable logging

logger:
#level: verbose
#baud_rate: 115200
#hardware_uart: UART1
uart:
id: mod_bus
tx_pin: 1
rx_pin: 3
baud_rate: 9600
stop_bits: 1
modbus:
#flow_control_pin: 5
id: modbus1
modbus_controller:

  • id: sun

the Modbus device addr

address: 0x1
modbus_id: modbus1
update_interval: 1s
setup_priority: -10
sensor:

  • platform: wifi_signal
    name: "WLAN Signal"
    update_interval: 5s
  • platform: modbus_controller
    modbus_controller_id: sun
    name: "AC Output"
    id: ac_output
    register_type: holding
    address: 0x01
    unit_of_measurement: "W"
    value_type: U_WORD
    accuracy_decimals: 1
    filters:
  • multiply: 0.1
  • platform: modbus_controller
    modbus_controller_id: sun
    name: "Grid Voltage"
    id: grid_voltage
    register_type: holding
    address: 0x02
    unit_of_measurement: "V"
    value_type: U_WORD
    accuracy_decimals: 1
    filters:
  • multiply: 0.1
  • platform: modbus_controller
    modbus_controller_id: sun
    name: "Bat Voltage"
    id: bat_voltage
    register_type: holding
    address: 0x03
    unit_of_measurement: "V"
    value_type: U_WORD
    accuracy_decimals: 1
    filters:
  • multiply: 0.1
    number:
  • platform: modbus_controller
    modbus_controller_id: sun
    id: ac_setpoint_number
    name: "AC Setpoint Number"
    address: 0x00
    value_type: U_WORD
    multiply: 10
    unit_of_measurement: "W"
    min_value: 0
    max_value: 2000
  • platform: modbus_controller
    modbus_controller_id: sun
    id: dac_number
    name: "DAC Number"
    address: 0x04
    value_type: U_WORD
    min_value: 0
    max_value: 2000
  • platform: modbus_controller
    modbus_controller_id: sun
    id: calibration_number
    name: "Calibration Number"
    address: 0x05
    value_type: U_WORD
    min_value: 0
    max_value: 1

Enable Home Assistant API

#api:

password: "XXXXXXXX"

mqtt:
broker: "192.168.XXX.XXX" ## IP des Iobroker
port: "6053" ## port im mqtt Adapter
username: "XXXyyy" ## Benutzername in iobroker festlegen
password: "xxxxx" ## Passwort ebenfalls in iobroker im mqtt adapter festlegen"
id: "Sun2000ESP"
ota:
password: "XXXX passwort für ein ota upload XXXX"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
use_address: 192.168.XXX.XXX ## dem Wemos eine feste ip zuweisen

Enable fallback hotspot (captive portal) in case wifi connection fails

ap:
ssid: "Esphome-Web-XXXXXXX"
password: "XXXXXXXXXXXXX"
captive_portal:

Ja das ganze ESP/Arduino ist echt "schwierig" als Anfänger :shock:
@Trucki Geht ein ESP8266 NodeMCU als Regler für die Platine, sonst benötige ich außer Software ja nichts oder?

Ein ESP(Home) ist gut, um den SUN GTIL2 Wechselrichter mit ioBroker oder HomeAssistant zu verbinden. Der Hausstromverbrauch wird hierbei häufig mit einem Shelly EM3 ermittelt und auch an ioBroker oder HomeAssistant geschickt. Statt dem Shelly kann der aktuelle Hausverbrauch auch mit einem IR Lesekopf aus einem modernen Smartmeter Stromzähler ausgelesen werden.

Alternativ zu ioBroker/HomeAssistant/ESP(Home) steht die Arduino Lösung. Hier ließt ein Arduino Nano den aktuellen Hausverbrauch aus z.B. einem SDM630 Smartmeter und gibt den gemittelten Wert an den Wechselrichter weiter.

Je nach dem was einem mehr liegt sind beide Lösungen gut. Ich gehöre eher der Arduino Fraktion an.

Gruß Trucki

Vielen Dank für deine Arbeit Trucki, wie ich sehe hast du die GitHubPage erneut aktualisiert und ich kam nicht umhin die Platinen zu vergleichen. Soweit ich das sehen kann, hast du R19 jetzt als "Jumper Pads" verwirklicht, finde ich gut. Ich habe bei meinem den R19 abgelötet und einseitig versetzt angelötet, damit ich ihn nicht verliere, falls ich ih mal brauch. könntest du sagen welchen wert R19 hat falls er doch mal weg kommt? Könnte auch messen aber da du ja die Quelle bist... :angel:

Ansonsten ist der kleine Kupferlackdraht vom atmega zum R17 verschwunden... ist der in der neuen Version als Leiterbahn integriert? Darf man fragen welche Funktion der hat oder kann der weg?

Gibt es sonst noch gravierende Änderungen die eine neue Bestellung erforderlich machen würde? Ich frage für einen Freund :lol:

Schön, dass das Projekt wächst. Ich freue mich jeden Tag aufs neue, dass es funktioniert.

@MagicSven Hat der Code bei dir funktioniert oder gab es Probleme?

Hallo Zaimaen,

wow bist Du aufmerksam!

Ja, anstelle von R19 auslöten gibt es jetzt den Jumper J5. R19 hat 47Ohm. Das macht man gerne anstelle einer 0Ohm Brücke, damit es im Falle eines Kurzschlusses wenigstens noch einen Widerstand von 47Ohm gibt. An dieser Stelle braucht man das nicht wirklich. Eigentlich garnicht. D.h. falls Du R19 verlierst kannst Du einfach eine 0Ohm Lötbrücke drüberlöten.

Die LED war in der ersten Version an einen Pin angeschlossen, der nicht Output sein kann. Daher der Fädeldraht. Das ist jetzt korrigiert.

Nein die Platinen sind von der Hardware her identisch.

Gruß,
Trucki

@MagicSven Hat der Code bei dir funktioniert oder gab es Probleme?
Hallo Zaimaen,
entschuldige die späte Rückmeldung.
Es gab noch ein paar Komplikationen, da er die ##Textfelder beim kompilieren als Fehler gesehen hat.
Aber nachdem ich alles noch einmal überprüft hatte funktionierte der Upload.
Lediglich das auslesen der Modbus Werte klappt nicht, da ich ja die Platine von Trucki erst nächste Woche erhalte.
Dem zu Folge hat er mir die "Sensor" Werte im ioBroker unter MQTT ja auch noch nicht angelegt und bringt hier entsprechende "Missing" Fehlermeldungen im Debug Fenster.

Ich denke aber, dass dies mit eintreffen der RS485 Platine dann gelöst ist.

Anschließen werde ich wie von Trucki dankenswerter weiße bei Github mit Bildern dargestellten über RX / TX Pins und die Stromversorgung von 5V übernimmt ja auch direkt seine Platine.
Somit kann ich den Wemos D1 Mini direkt im Sun-GTIL2 1000 intern verbauen.

Ich hoffe nur dass es dann alles funktioniert, da ich wohl einen "älteren" Sun-GTIL2 1000" habe ohne RS232 Remote Schnittstelle.

Guten Morgen in die Runde :wink: kurz vor dem Wochenende nochmal ein kurzes Update.

Trucki hat ja die Anleitungen auf seiner GitHubPage um das Update der Steuerplatine mit der Softwareversion 1.04 aktualisiert.
Die Software gleicht wohl einige "Besonderheiten" der SUN2000´er Geräte aus. Freundlicherweise hat er die Software bereit
gestellt und ich war gespannt ob es wohl wirklich alles so funktioniert...

Ich habe das Update nach der Anleitung (com port des usb2ttl adapters in der bat Datei anpassen nicht vergessen!) durchgeführt
und es hat erfreulicherweise sofort beim ersten Versuch geklappt und lief direkt durch.
Anbei ein Foto von dem Vorgang (ich habe für den reset des AVR zwischen gnd und dem resetpin eine dupont steckbrücke benutzt):





Der Wechselrichter läuft bis jetzt ganz normal, Unterschiede wird man wohl erst erkennen, wenn etwas mehr Sonne da ist aber
somit ist zumindest bestätigt, dass das Update möglich ist und problemlos funktioniert, wenn man sich an die Anleitung hält.

An dieser Stelle nochmal Herzlichen Dank an Trucki, für die Arbeit und die Bereitstellung sowie den Support. :clap:

Wünsche Allen ein schönes Wochenende und viel Spaß beim Sonnenenergie anzapfen :thumbup:

@MagicSven Hat der Code bei dir funktioniert oder gab es Probleme?
Somit kann ich den Wemos D1 Mini direkt im Sun-GTIL2 1000 intern verbauen.

Ich hoffe nur dass es dann alles funktioniert, da ich wohl einen "älteren" Sun-GTIL2 1000" habe ohne RS232 Remote Schnittstelle.


Also wenn du den Wemos in den Wechselrichter einbauen solltest, bin ich gespannt, wie gut der WLAN-Empfang dann noch ist.
Berichte gerne und falls du eine Halterung gebastelt oder vielleicht mit dem 3D Drucker ausgedruckt hast, wären Bilder oder
die STL nett ;)

Ich selbst habe den Wemos nach außen geführt mit den 4 DuPont Kabeln und eine Minihalterung ausgedruckt. nicht perfekt aber
der Wemos sitzt außen (und wird nicht von dem ganzen Metall/Alu abgeschirmt und hat empfang, jetzt nachdem ich noch einen
Repeater in die Garage gepackt habe sogar noch besser lol). Außerdem kann ich ihn so schnell wechseln falls er kaputt gehen sollte.

Ich glaube die rs232 Schnittstelle ist unerheblich für die Funktion von Truckis Platine... die war eh nur zum Anzeigen der Werte
über diesen WLAN-Stick aber wer weiß was sich der Herr Nadal, so heißt er glaube ich, dabei gedacht hat :roll:
![49318=8260-wemos-halter.PNG|466x759](upload://1Vdf940gJ1NDGQcEHp1YKgTKoGt.png)