Steuerung Mikrowechselrichter SG-Serie NETek (2,4GHz Variante)

Micro Wechselrichter, die direkt an die 230V Steckdose angeschlossen werden können.

Moderator: Ulrich

Antworten
Ichirou
Beiträge: 8
Registriert: Mi 17. Jul 2019, 08:43

Steuerung Mikrowechselrichter SG-Serie NETek (2,4GHz Variante)

Beitrag von Ichirou »

Moin zusammen,

meine jüngste Anschaffung war ein Mikrowechselrichter der Firma Newenergytek (NETek) mit DataBox.
der WR: http://www.newenergytek.com/index.php/content-48
die Databox: http://www.newenergytek.com/index.php/content-57
Treiber und Software: http://www.newenergytek.com/index.php/about-23

Benötigt wird nur der WR. Dieser kann auf 2 Kanälen jeweils bis ca. 350W DC verarbeiten. Die Databox mit Software ist der interessante Teil.

Verwendet wird in der Databox der USB-RS232 Konverter PL2303SA. Weiterhin findet sich darin ein PIC16F1947-I/PT.
Der PIC verarbeitet die gesendeten Befehle und empfangenen Daten und gibt diese über eine 2,4GHz serielle Luftbrücke weiter.

Damit der aber überhaupt erstmal reden möchte, muss man ihn Initialisieren. Das wird normal über die Software NETMS gemacht.
Wird diese verwendet, im übrigen für Einsteiger einfach zu bedienen und relativ umfangreich, gibt es keine Probleme mit Installation und Einrichtung.
Einzig sollte man beachten, wenn man es in den normalen x86-Programmordner installiert, werden Adminrechte für das Programm benötigt, da in diesem Verzeichnis auch div. Daten geschrieben werden.

Ich weiß, wir arbeiten auf einem Raspi o.ä. trotzdem hier auch verweise auf Windows-Konfigurationen zum besseren Verständnis :)

Die Initialisierung:
Nach der Installation des Databox-Treiber unter Win10 sind alle nötigen Einstellungen gemacht. 9600/8/N/1 ist gesetzt, Flowcontrol zwar anwesend, aber von der Software nicht verwendet.

Bei meinem Raspi 4B mit einem 8er oder 9er Raspbian war die Installation noch einfacher: dranstecken, Device taucht als ttyUSB1 auf (habe noch einen LiPo-Balancer auf ttyUSB0, dazu später).

Als Software nutze ich aktuell NodeRed. Ein wechsel auf Solaranzeige folgt sicher noch :)

Die ganze Kommunikation findet auf HEX statt.
Der Einfachheit halber lasse ich erstmal das 0x weg. Je nach verwendeter Software ist das nötig oder eben nicht.

Die Databox benötigt das folgende Kommando zum reden:

Code: Alles auswählen

43 fc 00 00 00 00 00 00 00 00 00 00 00 00 3f
Der Rückgabewert ist:

Code: Alles auswählen

43 fc 10 88 00 00 00 00 00 00 00 00 00 00 d7
Die 10 88 sind die Klartext-ID 1088 der Databox und müssen später immer wieder verwendet werden.

Den Status kriegt man mit diesem Befehl:

Code: Alles auswählen

43 C0 10 88 00 00 41 00 15 03 00 00 00 00 F4
Die 43 ist ein Datenpaket-Init und taucht in jeder Abfrage auf.
C0 ist der Befehlssatz, hier kommen noch C1 (reboot, turn on/off) und C3 (Leistungsanpassung). C2 habe ich bisher nicht gesehen.
10 88 ist die Databox-ID
00 00 konnte ich bisher nicht zuordnen
41 00 15 03 ist die ID des WR, diese findet sich so auch auf der Seite des Gerät. Es sind mehrere WR mit der Databox ansprechbar.
00 00 00 00 F4 ist offenbar der Request zur Statusabfrage.

Der Response:

Code: Alles auswählen

43 C0 10 88 00 00 41 00 15 03 3F 03 E3 00 19 09 78 00 00 59 F7 00 00 00 00 37 11
43 - Daten Init
C0 - Befehlssatz
10 88 - Databox-ID
00 00 - unbekannt
41 00 15 03 - WR-ID
3F - bisher unbekannt* anderer Wert 3E
03 - bisher unbekannt* anderer Wert C8
E3 - bisher unbekannt* anderer Wert 4E
00 - bisher unbekannt* anderer Wert 00
19 - bisher unbekannt* anderer Wert 48
09 78 - Spannung PV /100 enspricht hier 2424 mV = 24,24 V
00 00 - Strom DC /100 entspricht hier 0, 0x02 0xDC wären 748 = 7,48 A
59 F7 - Spannung AC /100 entspricht hier 23031 mV = 230,31 V
00 00 - Strom AC /100, Beispiel 00 64 = 100 = 1 A
00 00 - bisher unbekannt* bislang unverändert
37 - bisher unbekannt* anderer Wert 32
11 - bisher unbekannt* anderer Wert 1e

Der WR speichert seine geleisteten Wh/kWh und gibt diese auch aus. An welcher Stelle kann ich noch nicht erkennen.
Von dem China-BMS kenne ich div. kuriose Berechnungsmethoden um auf die Werte zu kommen, die man haben will.
Ob und in wie weit hier etwas Intelligenz drin steckt, kann ich bisher nicht sagen.
Stand bisher im Test sind ca. 0,42kWh produziert worden.

Die Leistungsanzeige an sich (in der Software NETMS) wird berechnet.

Code: Alles auswählen

P=U*I
Aktuell sind 1s-Abfragen kein Problem, wie sich das bei mehreren Invertern verhält, müsste man mal testen...wenn mein 2. dann demnächst da ist :)

Turn On Request:

Code: Alles auswählen

43 c1 10 88 00 00 41 00 15 03 00 00 00 01 f6
Hier finden wir jetzt c1 als Steuerbefehl und das 01 F6 für "Schalte ein".

Turn On Response:

Code: Alles auswählen

43 c1 10 88 00 00 41 00 15 03 00 00 00 01 f6 00
Ebenfalls C1 als Steuerbefehl, die Antwort, welcher Befehl ausgeführt wurde.

Turn Off Request:

Code: Alles auswählen

43 c1 10 88 00 00 41 00 15 03 00 00 00 02 f7
02 F7 für "Schalte aus"...

Turn Off Response:

Code: Alles auswählen

43 c1 10 88 00 00 41 00 15 03 00 00 00 02 f7 00
...und die Bestätigung.
Was das 00 dahinter bedeutet, weiß ich bislang nicht.

Reboot Inverter Request:

Code: Alles auswählen

43 c1 10 88 00 00 41 00 15 03 00 00 00 03 f8
Code 03 F8 für "Neustart"

Reboot Inverter Response:

Code: Alles auswählen

43 c1 10 88 00 00 41 00 15 03 00 00 00 03 f8 00
Die Antwort.

Kommen wir zur Leistungssteuerung:
Die letzten beiden Byte geben jeweils die Leistung in hex (64 ist 100) sowie dezimal 9 weniger (5b ist 91) an.
Der Abstand von 9 ist immer gleich.

100% Request

Code: Alles auswählen

43 c3 10 88 00 00 41 00 15 03 00 00 00 64 5b
100% Response

Code: Alles auswählen

43 c3 10 88 00 00 41 00 15 03 00 00 00 64 5b 00
95% Request

Code: Alles auswählen

43 c3 10 88 00 00 41 00 15 03 00 00 00 5f 56
95% Response

Code: Alles auswählen

43 c3 10 88 00 00 41 00 15 03 00 00 00 5f 56 00
50% Request

Code: Alles auswählen

43 c3 10 88 00 00 41 00 15 03 00 00 00 32 29
50% Response

Code: Alles auswählen

43 c3 10 88 00 00 41 00 15 03 00 00 00 32 29 00
25% Request

Code: Alles auswählen

43 c3 10 88 00 00 41 00 15 03 00 00 00 19 10
25% Response

Code: Alles auswählen

43 c3 10 88 00 00 41 00 15 03 00 00 00 19 10 00
10% Request

Code: Alles auswählen

43 c3 10 88 00 00 41 00 15 03 00 00 00 0a 01
10% Response

Code: Alles auswählen

43 c3 10 88 00 00 41 00 15 03 00 00 00 0a 01 00
1% Request

Code: Alles auswählen

43 c3 10 88 00 00 41 00 15 03 00 00 00 01 f8
1% Response

Code: Alles auswählen

43 c3 10 88 00 00 41 00 15 03 00 00 00 01 f8 00
2% Request

Code: Alles auswählen

43 c3 10 88 00 00 41 00 15 03 00 00 00 02 f9
3% Request

Code: Alles auswählen

43 c3 10 88 00 00 41 00 15 03 00 00 00 03 fa
4% Request

Code: Alles auswählen

43 c3 10 88 00 00 41 00 15 03 00 00 00 04 fb
5% Request

Code: Alles auswählen

43 c3 10 88 00 00 41 00 15 03 00 00 00 05 fc
6% Request

Code: Alles auswählen

43 c3 10 88 00 00 41 00 15 03 00 00 00 06 fd
7% Request

Code: Alles auswählen

43 c3 10 88 00 00 41 00 15 03 00 00 00 07 fe
8% Request

Code: Alles auswählen

43 c3 10 88 00 00 41 00 15 03 00 00 00 08 ff
9% Request

Code: Alles auswählen

43 c3 10 88 00 00 41 00 15 03 00 00 00 09 00
Wie wir hier sehen, ist bei 9 die Differenz 0, bei weniger als 9% starten wir bei dez. 255. Daher mal alle Requests für 1-10%. Die Response sind nur um eine 00 am Ende ergänzt.

Zu NodeRed:
Für den ersten Teil habe ich einen serialnode konfiguriert:
Port:

Code: Alles auswählen

/dev/ttyUSB1
settings:

Code: Alles auswählen

9600 8 N 1
flowcontrol komplett auf auto (DTR, RTS,CTS,DSR)
Für den Input habe ich: wait for start character 0x43, then Split Input after a silence of 200ms and deliver binary buffers
Der Request timeout steht auf 1000ms.

Weiter verwende ich zum Testen:
einen Inject-Node mit einem buffer für Init:

Code: Alles auswählen

["0x43", "0xfc", "0x00", "0x00", "0x00", "0x00", "0x00", "0x00", "0x00", "0x00", "0x00", "0x00", "0x00", "0x00", "0x3f"]
sowie einen 2. Inject für Status:

Code: Alles auswählen

["0x43", "0xc0 ", "0x10", "0x88", "0x00", "0x00", "0x41", "0x00", "0x15", "0x03", "0x00", "0x00", "0x00", "0x00", "0xf4"]
Einen Funktionsblock dafür erstelle ich derzeit, wo auch die hier Dokumentierten Dinge einfließen.

Bilder gibt es später auch noch.

Ich hoffe, ihr könnt mit den Infos was anfangen. Die Inverter sind relativ günstig, machen aber von der Elektronik einen guten Eindruck.
Der 700MD (2x350W DC) kostet ca. 140€ bei Y&H, die Databox ca. 42€ und das passende Schuko-Kabel (nur bei Verwendung von 1x Inverter möglich, da an der Weiterleitung zum nächsten Inverter angeschlossen!) kostet ca. 19€.
Leider kommen diese Inverter nicht mit einem Wielandstecker oder Schuko direkt, verwendet wird hier ein M25 3Pol. RC-H19. Diese Stecker/Buchse-Sets findet mal bei Aliexpress für 2-3 USD.
Ändert man den Stecker, ist natürlich nix mehr mit Garantie. Der Stecker ist natürlich angegossen...

Ich hoffe auf viele Antworten und natürlich (Er)Klärung der noch offenen Bytes. :)

Wer bis hier her gelesen hat: Respekt!
Bonus:
Oben erwähnte ich ein BMS aus China, dieses kann bis 100A Ausgang und ist aktiv mit RS232 über USB. In einem anderen Thread wurde dieses kleine Biest bereits erwähnt.
Mein Akku ist ein LG18650-MH1 7S10P selbstbau. Die Daten aus dem BMS sind soweit gut, es schaltet ab und ist komplett konfigurierbar.
Der Preis ist stolz: ca. 70€ zzgl. Bluetooth-Adapter uns USB-Box.
Das Protokoll ist nicht ganz ohne, letztlich aber auch nur RS232.
Entsprechende NodeRed-Blöcke kann ich auf Wunsch bereitstellen, vielleicht kann man sowas auch in die Solaranzeige mit ingegrieren.
Bei Bedarf, unten in die Antworten :)

Viel Spaß beim basteln!

HJF
Beiträge: 1
Registriert: Mo 22. Feb 2021, 22:40

Re: Steuerung Mikrowechselrichter SG-Serie NETek (2,4GHz Variante)

Beitrag von HJF »

Hallo,
ich habe den Beitrag mit Interesse gelesen, nachdem ich mir einen SG600MD zugelegt hatte. Ich habe zwei links gefunden die vielleicht weiterhelfen.

https://github.com/atc1441/NETSGPClient
https://github.com/awysocki/databox24

Databox24 habe ich probiert. Es funktioniert bei mir, allerdings ist das Prog. in einer Endlosschleife.

Da ich vom Programmieren wenig Ahnung habe kannst du mit dem Code vielleicht etwas anfangen.
Mir würde eigentlich die Übergabe der Daten in ein MQTT Topic reichen.
Vieleicht kannst du mir ja deine Node Red Lösung schicken.
mfg HJF.

thebiglebowski
Beiträge: 2
Registriert: Mi 18. Mai 2022, 11:32
Hat sich bedankt: 1 Mal

Re: Steuerung Mikrowechselrichter SG-Serie NETek (2,4GHz Variante)

Beitrag von thebiglebowski »

Hi,

sehr interessant.
Betreibst Du den Wechselrichter an einer Batterie oder direkt an den Solarzellen.
Ich finde nichts zum Thema MPPT abschalten.
Wenn der Wechselrichter an einer Batterie hängt müßtest Du MPPT abschalten.
Wie hast Du das gemacht?

Gruß
Alexander

HomoSolaris
Beiträge: 1
Registriert: So 25. Sep 2022, 22:03

Re: Steuerung Mikrowechselrichter SG-Serie NETek (2,4GHz Variante)

Beitrag von HomoSolaris »

Hi,

bin letzte Woche auf diesen Thread gestoßen. Habe seit 2 Wochen einen NETek SG600 mit 2 Modulen à 200 Wp laufen und suche aktuell nach einer Lösung zur Speicherung und Anzeige von Leistung und erzeugten KWh, sowie von Wetterdaten in einer Datenbank. Habe hier sowohl die NETek-DataBox, als auch einen Eltek-Einphasenzähler mit S0-Impulsschnittstelle bei 2000 Imp./KWh zur Verfügung.
Die DataBox mit NetMS unter Windows ist wenig brauchbar, stelle mir hier eher einen kleinen Server auf Raspi-Basis für Aufzeichnung und Visualisierung wie z.B. hier die Solaranzeige vor.

Hast du die Databox irgendwie an die InfluxDB von solaranzeige anbinden können?
Wie hast du das hinbekommen? Oder bist du zu einer anderen Lösung gekommen?

Hat evtl. noch jemand SG600 oder ähnlich im Einsatz?

Jede Info willkommen.
Danke.

ulihuber
Beiträge: 1
Registriert: Sa 4. Feb 2023, 15:33

Re: Steuerung Mikrowechselrichter SG-Serie NETek (2,4GHz Variante)

Beitrag von ulihuber »

Ich habe den SC600MD in der WiFi Variante mal genauer unter die Lupe genommen.
Die Kommunikation macht ein TUYA-Modul CBU-IPEX. Das ist mit neun Pins an einer 2mm Pitch Sterleiste innen verbaut. Es kommuniziert mit dem Umrichter über UART (3,3V - Seriell 9.6kbps,8,1).
Die Belegung der Steckerleiste zum IPEX-Modul ist P24, P26, GND, GND, GND, CEN(Reset), TX, RX, 3.3V
Bei der Initialisierung gibt es Signalwechsel vom IPEX-Modul zum Umrichter auf P24 und P26 sowie CEN, die aber für eine Ausgabe der Daten offensichtlich nicht nötig sind.
SG600MD_init_nur_RXTX.jpg
Die Initialisierung nach Power-Up (Solarstrom vorhanden) sendent vom IPEX-Modul abwechselnd 0xF1 und 0x55, 0xAA, 0x00, 0x00, 0x00, 0x00, 0xFF bis der Umrichter mit 0x55, 0xAA, 0x03, 0x00, 0x00, 0x01, 0x00, 0x03 antwortet. Das ist wohl ein Aknowledge mit 'not Ready`.
Das IPEX-Modul sendet dann alle 15 Sekunden 0x55, 0xAA, 0x00, 0x00, 0x00, 0x00, 0xFF und bekommt die Antwort 0x55, 0xAA, 0x03, 0x00, 0x00, 0x01, 0x00, 0x03 bis der Umrichter am Netzt synchronisiert hat. Dann kommt statt dessen 0x55, 0xAA, 0x03, 0x00, 0x00, 0x01, 0x01,0x04 zurück.
Alle 60 Sekunden schickt der Umrichter mehrere Pakete in einer Sequenz, die die aktuellen Daten enthalten.
Gesammelte kWh, A(in), V(in), V(out), A(out), kW(out). Manchmal kommt zusätzlich auch der Inverter-Typ und die Seriennummer, offensichtlich aber nur nach der Initialisierung.
Auf die Sequenz 0x55, 0xAA, 0x00, 0x01, 0x00, 0x00, 0x00 antwortet der Umrichter mit einer längeren Sequenz die ich nicht entschlüsseln konnte (siehe xls)
Auf die Sequenz 0x55, 0xAA, 0x00, 0x02, 0x00, 0x00, 0x01 antwortet der Umrichter mit 0x55, 0xAA, 0x03, 0x02, 0x00, 0x02, 0x58, 0x1A, 0x38 was ich ebenfalls nicht dekodiert habe.

Ich habe eine Reihe anderer Sequenzen ausprobiert, aber keine Reaktion vom Umrichter erzeugen können.

Unter dem Strich kann man damit den Umrichter von der TUYA-Cloud befreien und eine eigene Lösung z.B. auf Basis ESP32 einbauen.

Gruß
Uli
Dateianhänge
SG600 Protokoll.xls
(91 KiB) 160-mal heruntergeladen

Antworten

Zurück zu „Balkonkraftwerke ( PV-Kleinanlage DIN VDE 0100-551 / -1 )“