Firmwareupdate Deye SUN-12K-SG04LP3-EU selber durchführen Anleitung mit FW-Dateien

Ich habe diese hier.

MODBUS RTU 105.3-20240710.pdf (1,7 MB)

Das liest sich ja so wie das, was der Deye Support bei mir gesetzt hat. Hört sich gut an. :slight_smile: Hast du da von Deye bekommen, oder wie kommt man auf so was?

Gibt es irgendwo eine Erklärung der Deye Modbus Syntax? Also wie sich das Kommando 01 10 01 55 00 01 02 00 14 BA 9A zusammensetzt. Ich meine da mal was gesehen zu haben, finde es aber nicht mehr.

Aus den Posts oben entnehme ich, dass es um das Register 341 geht. Ich würde das gerne bei mir auslesen und vergleichen.

Ich habe es schon einmal gepostet.

01100068000102FFEBAF07

01 - Device Nr. 01
10 - function code: 03 - lesen oder 10 - schreiben (1 byte, 2 Stellen)
0068 - die Adresse des ersten zu lesenden oder zu schreibenden Registers wird in Hex eingegeben. (2 Byte, 4 Stellen)
0001 - Anzahl der zu lesenden oder zu schreibenden Register (2 Byte, 4 Stellen)
02 - byte count, Anzahl der zu schreibenden Bytes (1 Byte, 2 Stellen)
FFEB - Wert für das Register in Hex (2 Byte, 4 Stellen)
AF07 - CRC Code, wird für jede Befehl berechnet

Danke, habe es mir jetzt mal notiert.

Wenn ich das Register 341 abfrage bekomme ich 16 (0x10), also hex 10 zurück.

Bit 4 ist also bei mir gesetzt, das hat vermutlich der Deye Support dann gesendet.

Hex 14 würde dann noch Bit 2 setzen. MPPT-Scan habe ich bei mir aus, würde mit der Erklärung oben passen und auch im pdf steht bei Bit 2 MPPT.

Bin zufrieden mit dem Ergebnis. :slight_smile:

Ich habe noch die ziemlich alte Firmware 1135. Wenn ich das Register 341 auslese, erhalte ich die 0 zurück, d. h., bei mir ist kein Bit gesetzt. Ich habe auch kein Problem mit dem Lüfter, wenn ich auf „no Batt” setze. Aber es ist gut zu wissen, wie man den Lüfter bei Bedarf abschalten kann.

Ist “klassisches” ModBUS RTU: Modbus RTU einfach gemacht - mit detaillierten Beschreibungen und Beispielen

mit einem USB zu RS485 Adapter kann man auch mit einem PC lesen/schreiben: GitHub - maisvendoo/qmaster: QMaster - Modbus RTU master PC emulator

Ansonsten ESPHome ein ESP32 + TTL/ModBus Adapter, kann man da auch fleißig lesen / schreiben.

Damit kann man auch mal für den Deye einen SDM630 “simulieren”. Oder andere schöne MobBus Applikationen: OneWire ot RS485, 0-10V oder 4-10mA to RS485, Powermeter mit RS485. Gibt’s viele tolle Spielereien…

Zum Thema ModBus, wäre natürlich schön zu Wissen mit welchem FW Stand welche Register / Bits hinzugefügt wurden. Aber leider gibt’s ja keine Changelog..

1 „Gefällt mir“

Frage an die Experten, ich lese und steuere den 12k Deye mit Solar Assistante der Deye hängt mit Kabel an einem Raspi mit SA drauf, seit neustem kann man den Deye mit SA auch über den W-Lan Dongle auslesen und steuern,

Jetzt die Frage, wie kann ich den Lüfter bei No Bat ohne Zusatzsoftware steuern?…

Über die Deye Cloud besteht die Möglichkeit, benutzerdefinierte Befehle an Deye zu senden. Bevor das Register 341 überschrieben wird, würde ich empfehlen, es mit dem Befehl 01030155000195E6 auszulesen. Anschließend nur das Bit 4 aktivieren und den oben beschriebenen Befehl anpassen, einen CRC generieren und das Kommando an Deye senden.

1 „Gefällt mir“

Ein Freund von mir kennt sich gut mit Modbus aus und ist darauf gestoßen. Da das Thema hier mehrere Tage lang diskutiert wurde, dachte ich, ich teile es hier.

In meinem vorherigen Post fehlten noch einige Details: Ein Freund hat mir bei der Erstellung der Befehle geholfen. Gemeinsam sind wir Schritt für Schritt vorgegangen, um den Lüfter beim Start des Inverters auszuschalten, speziell für den Betrieb ohne Akkumulator.

Das waren die Schritte bei mir. Bitte beachtet, dass bei anderen Geräten eventuell andere Befehle notwendig sein könnten – ich selbst bin kein Experte auf diesem Gebiet.

Hier ist der Ablauf über Modbus RTU:

  1. Abfrage beim Start: Gesendet: 01 03 01 55 00 01 95 E6 Antwort: 01 03 02 00 04 B9 87 (Der Wert im Register war zu diesem Zeitpunkt noch 04.)

  2. Befehl zum Ausschalten (Wert auf 14 ändern): Gesendet: 01 10 01 55 00 01 02 00 14 BA 9A Antwort: 01 10 01 55 00 01 10 25 (Der Inverter hat den Befehl akzeptiert, der Lüfter hat gestoppt.)

  3. Überprüfung, ob die Änderung erfolgreich war: Gesendet: 01 03 01 55 00 01 95 E6 Antwort: 01 03 02 00 14 B8 4B (Der Wert ist nun stabil auf 14, die Einstellung ist aktiv.)

Hat das schon jemand ausprobiert in Bezug auf die Leistungs-Einstellung / Power-Setting?
Hier der entsprechende Commit:

Bei mir funktioniert es einwandfrei:

Die Leistung lässt sich von 5 kW auf 12 kW erhöhen.

1 „Gefällt mir“

Bist du sicher, dass alle Mossfets wie bei der 12k Version auch bei den kleineren verbaut sind? Das ist schon klar, dass die Umschaltung möglich ist, ist ja die gleich FW, aber wenn die Hälfte an Leistungselektronik verbaut ist, dann raucht der ab. Ich kenne das z.B. von Growatt, da kann man das machen, ist komplett das gleiche Gerät nur gedrosselt…

Danke dir, muss ich kurz mal in der FB wieder freigeben, in der Hoffnung, dass nicht gesperrt wird :zany_face:

Alles ist identisch, es gibt nur eine softwareseitige Begrenzung.

Es lohnt sich für sie nicht, viele unterschiedliche Wechselrichter-Varianten zu produzieren.

1 „Gefällt mir“

Die 8k-, 10k- und 12k-Modelle sollen die gleiche Hardware haben und, wie du schreibst, nur gedrosselt sein.

Zuerst muss am Wechselrichter selbst die Leistung eingestellt werden (Power Range Setting).
Danach gibt es zwei Möglichkeiten:

– Entweder wird die Leistung in Home Assistant über „Grid Max Export Power“ angepasst,
z. B. 8000 W bei einem 8-kW-Wechselrichter oder 12.000 W bei einem 12-kW-Wechselrichter,
oder es wird ein Factory-Reset durchgeführt.

Wird die Leistung korrekt in Home Assistant gesetzt, ist kein Factory-Reset erforderlich.

2 „Gefällt mir“

Nur beim C059 HMI lässt sich die Leistung nicht umstellen.

Mit C050 oder älter funktioniert es, sogar mit C070 ebenfalls.

0103020000B844

Das hat der geantwortet

Ich habe C037 und komme damit in das entsprechende Menü. Morgen werde ich ausprobieren, aus meinem 8k einen 12k WR zu machen.

Meiner antwortet auch so.
0103020000B844

Fett markiert ist der Inhalt des Registers 341, d. h. alle Bits sind auf FALSE gesetzt.
Um nur Bit 4 auf TRUE zu setzen, musst du folgenden Befehl an WR senden:
011001550001020008BB53

amiko bevor ich was kaputt mache, 0103020000B844 ändere ich BIT 4 von 0 auf 1? Mir fehlt leider die Zeit mich in das Thema einzulesen…

ah danke du warst schneller