Forum

Wenn du Hilfe benötigst, 🔍 suche bitte, bevor du einen neues Thema oder Beitrag erstellst.

Deye 12K über WLAN ...
 
Benachrichtigungen
Alles löschen

Deye 12K über WLAN steuern – Modbus TCP für Batterie-Entladung?

22 Beiträge
8 Benutzer
3 Reactions
2,123 Ansichten
(@greenmike)
Neues Mitglied
Mitglied seit: Vor 1 Jahr
Beiträge: 2
Themenstarter  

Hallo zusammen,

ich habe seit ein paar Tagen den Deye 12K Wechselrichter mit einer Batterieanlage im Haus. Jetzt habe ich mir alles genauer angesehen und die Werte erfolgreich in meinen Home Assistant integriert. Ich nutze dafür die HACS-Integration ha-solarman.

Derzeit läuft alles über WLAN, und ich kann die Werte problemlos auslesen.

Meine Frage:

Kann man auch auf den Wechselrichter schreiben?

Ich möchte die Batterie zu bestimmten Events mit einer definierten Leistung entladen. Konkret geht es um folgendes Szenario:

  • Wenn ein sonniger Tag ansteht und der Akku um 04:00 Uhr morgens noch relativ voll ist, möchte ich den Strom über Nacht in meine Energiegemeinschaft einspeisen.

  • Dadurch habe ich am Tag wieder genügend Speicherplatz, um die Batterie durch die Sonne aufzuladen.

  • Nachts bekomme ich außerdem einen besseren Preis für die Einspeisung als tagsüber.

Ich habe gelesen, dass dies über Modbus (Kabelverbindung) funktionieren soll. Jetzt stellt sich mir die Frage:

  • Kann ich die Register auch über WLAN (Modbus TCP) beschreiben?

  • Falls ja, wie gehe ich dabei am besten vor?

  • Welche Register sind relevant, um die Entladeleistung oder den Arbeitsmodus der Batterie zu ändern?

Ich bin in diesem Bereich noch nicht so erfahren und würde mich über Tipps oder Beispiele freuen! 😊

Vielen Dank im Voraus! 🚀



   
Zitat
(@amiko)
Alter PV Hase
Mitglied seit: Vor 2 Jahren
Beiträge: 776
 

Veröffentlicht von: @greenmike

Kann ich die Register auch über WLAN (Modbus TCP) beschreiben?

ja, kannst du

Veröffentlicht von: @greenmike

Falls ja, wie gehe ich dabei am besten vor?

Dazu müssen die Automationen erstellt werden.

Ob Batterie ins Netz entladen funktioniert, kann ich nicht sagen.
Suche mal im Forum, wenn ich mich nicht täusche wurde das Thema schon mal behandelt.


Deye SUN-12K-SG04LP3-EU, 36 х Trina Vertex S 425W, 2 x Deye RW-M 6.1
Deye SUN-8K-SG04LP3-EU, 10 х Trina Vertex S+ 430W, 2 x Deye RW-M 6.1
2 x Deye SUN 2000, je 4 х Trina Vertex S+ 430W, Netzparallel zu 8kW WR
1 x Deye SUN 600, 2 х Sharp NU-JC 410W, Netzparallel zu 8kW WR


   
greenMikeEU reacted
AntwortZitat
(@greenmikeeu)
Neues Mitglied
Mitglied seit: Vor 1 Jahr
Beiträge: 2
 

Veröffentlicht von: @amiko

Veröffentlicht von: @greenmike

Kann ich die Register auch über WLAN (Modbus TCP) beschreiben?

ja, kannst du

Veröffentlicht von: @greenmike

 

Hast du einen Anhaltspunkt wie ich das machen kann ?

Eine Automation zu erstellen ist für mich kein Problem nur wie schreibe ich die Daten über Modbus ist mir nicht klar. Was muss ich in die Felder eintragen welche ich unten gepostet habe

b

Muss ich da was in der yaml eintragen ?

 

Habe gerade noch bei der Dokumentation von Homeasisstant nachgelesen

HA Dokumentation Modbus

# Example yaml: typical tcp connection
modbus:
- name: modbus_hub
type: tcp
host: IP_ADDRESS_DES_DEYE
port: 502

 

HA Dokumentation Modbus auf Register schrieben

action: modbus.write_register
data:
address: <target register address> Das ist die Modbus Adresse des Deye 
slave: <target slave address>  Das ist mir nicht klar
hub: <hub name>  Das auch nicht oder einfach den namen den Man in der oberen Yaml vergeben hat also modbus_hub
value: [0x4120, 0x0000]    Wie gibt man hier die werte an in welchem Format gibt es da eine Übersicht ?

 

Herzlichen dank für die Hilfe

LG Michael

 



   
AntwortZitat
(@amiko)
Alter PV Hase
Mitglied seit: Vor 2 Jahren
Beiträge: 776
 

Ich benutze die Aktion number.set_value, da braucht man keine IP-Adresse oder Port eingeben, nur den Entitätsnamen. Als Beispiel Ladestrom setzen:

  actions:
  - action: number.set_value
    metadata: {}
    data:
      value: '{{ (states.input_number.max_ladestrom.state) }}'
    target:
      entity_id: number.inverter_battery_max_charging_current

Der gewünschte Ladestrom kann über ein Eingabefeld "input_number.max_ladestrom" vorgegeben werden.


Deye SUN-12K-SG04LP3-EU, 36 х Trina Vertex S 425W, 2 x Deye RW-M 6.1
Deye SUN-8K-SG04LP3-EU, 10 х Trina Vertex S+ 430W, 2 x Deye RW-M 6.1
2 x Deye SUN 2000, je 4 х Trina Vertex S+ 430W, Netzparallel zu 8kW WR
1 x Deye SUN 600, 2 х Sharp NU-JC 410W, Netzparallel zu 8kW WR


   
AntwortZitat
(@greenmikeeu)
Neues Mitglied
Mitglied seit: Vor 1 Jahr
Beiträge: 2
 

@amiko 

Danke für die Antwort. Ich habe mittlerweile rausgefunden welche werte ich wo einstellen muss leider finde ich einen Wert nicht in Homeassitant.

 

Diese Einstellungen müssen gemacht werden

Der Hacken beim Grid Peak Shaving muss entfernt werden. Leider Finde ich die Option nicht in Homeassistant. Ich finde nur wo man den Wattwert Einstellen kann aber keinen Schalter mit ein und aus.

 

Im Github Code habe ich es aber gefunden hier wird das Richtige Register beschrieben aber leider sehe ich den Schalter nicht in Homeassitant 

 

Hier ist der Schalter

https://github.com/davidrapan/ha-solarman/blob/main/custom_components/solarman/inverter_definitions/deye_hybrid.yaml

Zeile 2167

- name: Grid Peak shaving
platform: "switch"
rule: 1
registers: [0x0118]     ----> Register 280
value:
bit: 8

 

Link zur Dokumentation

https://github.com/user-attachments/files/16597960/Deye.Modbus.protocol.V118.pdf

Hier kann man den Watt Wert einstellen 

https://github.com/davidrapan/ha-solarman/blob/main/custom_components/solarman/inverter_definitions/deye_hybrid.yaml#L2194

Zeile 2194

- name: "Grid Peak shaving"
platform: number
class: "power"
uom: "W"
rule: 1
registers: [0x0125]     ----> Register 293
icon: "mdi:transmission-tower"
range:
min: 0
max: 16000

 

 

Wenn ich in Homeassitant nach allen Entitäten mit Switch.D suche finde ich leider nicht den Schalter

 

Freundliche Grüße Michael



   
AntwortZitat
(@amiko)
Alter PV Hase
Mitglied seit: Vor 2 Jahren
Beiträge: 776
 

Veröffentlicht von: @greenmikeeu

Link zur Dokumentation

Das Modbus-Protokoll V118 ist für einphasige Wechselrichter und passt nicht zu deinem Wechselrichter. Der gesuchte Schalter ist Register 178 und nicht 280. Die entsprechende Beschreibung habe ich unten angehängt.

Veröffentlicht von: @greenmikeeu

Wenn ich in Homeassitant nach allen Entitäten mit Switch.D suche finde ich leider nicht den Schalter

Doch, der Schalter ist ganz unten auf deinem Bild, switch.deye_smartload_grid_on


Deye SUN-12K-SG04LP3-EU, 36 х Trina Vertex S 425W, 2 x Deye RW-M 6.1
Deye SUN-8K-SG04LP3-EU, 10 х Trina Vertex S+ 430W, 2 x Deye RW-M 6.1
2 x Deye SUN 2000, je 4 х Trina Vertex S+ 430W, Netzparallel zu 8kW WR
1 x Deye SUN 600, 2 х Sharp NU-JC 410W, Netzparallel zu 8kW WR


   
AntwortZitat
(@walterwachtel)
Neues Mitglied
Mitglied seit: Vor 12 Monaten
Beiträge: 1
 

Hallo zusammen,

ich nutze einen Deye SUN 12K-SG04LP3 Wechselrichter in Kombination mit SolarAssistant und Home Assistant (HA). Die Kommunikation erfolgt aktuell über zwei Wege:


🔹 1. Modbus RTU direkt aus Home Assistant:

  • Verbindung über USB-RS485-Adapter (FT232R)

  • Lesende Zugriffe (z. B. SoC, Last, PV-Leistung) funktionieren problemlos

  • Schreibende Zugriffe über modbus.write_register in HA (z. B. auf Register 128 für „Grid Charge Current“) führen zu keiner Änderung im Gerät

  • Auch über switch:-Entitäten mit verify:-Block → keine Reaktion am Gerät

  • Die Konfiguration ist korrekt, Daten kommen lesend rein, aber der Wechselrichter ignoriert offensichtlich die Schreibversuche


🔹 2. SolarAssistant MQTT-Integration:

  • In HA sind alle Werte (z. B. number.deye_sunsynk_sol_ark_3_phase_max_grid_charge_current) sichtbar

  • Änderungen über den Slider verändern aber nur den Zustand der HA-Entität, nicht den realen Wert im WR

  • Auch im MQTT-Debug sehe ich keinen publish beim Wertwechsel → es wird kein command_topic verwendet

  • Direktes Schreiben im SolarAssistant (z. B. Web-Oberfläche) funktioniert einwandfrei → der WR übernimmt Werte sofort


✅ Was ich ausschließen kann:

  • Kein Schreibschutz im WR – direkte Änderung via SolarAssistant funktioniert

  • Keine Kabelprobleme – Modbus RTU funktioniert lesend stabil

  • Register-Adressen stimmen – durch Abgleich mit Deye-Doku und Tests bestätigt

  • SolarAssistant blockiert auch nicht grundsätzlich den Zugriff – denn parallel laufende Schreibversuche über andere Clients wirken sich auch nicht aus


❓Was ich suche:

  • Gibt es bei Deye bestimmte Register, die nicht über FC6 (Write Single Register) gesetzt werden können?

  • Ist FC16 (Write Multiple Registers) in bestimmten Fällen erforderlich?

  • Gibt es bekannte Einschränkungen beim Schreiben über Modbus RTU bei aktiver Loggerverbindung Solarman oder blockiert eventuell SolarAssistant, die Schreibbefehle aus HomeAssistant heraus? 

  • Hat jemand erfolgreich ein modbus.write_register für Grid Charge Enable, Grid Charge Current oder Feed-In Limit am Deye SUN 12K in Home Assistant verwendet?


Ich bin für jeden Hinweis dankbar, insbesondere:

  • funktionierende Beispielregister

  • funktionierende Steuerung über HA direkt über MQTT an Solar Assistant? Schon komisch das alle Regler etc. vorhanden sind in HA aber kein einziger eine Änderung bewirkt (vllt fehlt eine entsprechende Einstellung in HA selbst?)
  • Bestätigung von FC-Codes

  • Hinweise zu Besonderheiten der Deye-Firmware

Viele Grüße
Andy



   
z34 reacted
AntwortZitat
(@lord_icon)
Neues Mitglied
Mitglied seit: Vor 3 Monaten
Beiträge: 4
 

*push*...

Wie sieht es denn bei euch aus?
Habt Ihr ne Lösung oder Steuerbarkeit über HA gefunden?

Meine "zukunftsmusik" wäre ja eine gewisse Netzdienlichkeit.
Aktuell ist der Akku gegen 11Uhr (+/-) schon wieder voll. Das muß er ja nicht, wenn ich weiß, dass gegen 12Uhr auch noch ausreichend KW vom Dach kommen.

Ich hab den LANMAN RS232 to LAN Adapter. Sprich: übers Netzwerk.
Ich hoffe, dass eine Steuerbarkeit darüber auch gegeben ist (?)

 



   
AntwortZitat
(@amiko)
Alter PV Hase
Mitglied seit: Vor 2 Jahren
Beiträge: 776
 

Veröffentlicht von: @lord_icon

Wie sieht es denn bei euch aus?
Habt Ihr ne Lösung oder Steuerbarkeit über HA gefunden?

Ich habe im April 2025 Automation erstellt, um die Batterie ins Netz zu entladen, sowie einen YAML-Code im Template, um den Ladestrom zu begrenzen. Ich habe ein paar Tage damit gespielt und es dann abgeschaltet. Seitdem habe ich es nicht mehr benutzt.


Deye SUN-12K-SG04LP3-EU, 36 х Trina Vertex S 425W, 2 x Deye RW-M 6.1
Deye SUN-8K-SG04LP3-EU, 10 х Trina Vertex S+ 430W, 2 x Deye RW-M 6.1
2 x Deye SUN 2000, je 4 х Trina Vertex S+ 430W, Netzparallel zu 8kW WR
1 x Deye SUN 600, 2 х Sharp NU-JC 410W, Netzparallel zu 8kW WR


   
AntwortZitat
(@rickk)
Mitglied
Mitglied seit: Vor 9 Monaten
Beiträge: 7
 

Schau dir mal Solar Assistant an. Lässt sich super in HA integrieren.



   
AntwortZitat
(@greenmike)
Neues Mitglied
Mitglied seit: Vor 1 Jahr
Beiträge: 2
Themenstarter  

Hallo, @lord_icon

 

ich habe die Integration Solarman über HACS installiert und habe einen ihn dann mit Wlan verbunden (also keine Zusätzlich Hardware) und kann so gut wie alles Steuern.

 

Habe mir eigene Automatisationen zum Teilentladen oder zum entladen in der Nacht gebaut. Habe auch den Ladestrom der Batterien Dynamisch begrenzt das die Akkus langsamer aufladen zum Beispiel das ich immer 5 KW in das Netz schiebe und den Rest in die Akkus usw. Ist alles relativ gut möglich mit dem Deye und Homeasisstant.

Wenn du ein Beispiel benötigst kannst du dich gerne melden.

 



   
AntwortZitat
Schwarzermann
(@schwarzermann)
Deye Kenner
Mitglied seit: Vor 2 Jahren
Beiträge: 65
 

Hat das jemand auch schon mit einem 20K probiert den wollte ich auslesen bekomme aber keinerlei Werte.


Der mit den Sonnenstrahlen tanzt


   
AntwortZitat
paralex
(@paralex)
PV Profi
Mitglied seit: Vor 2 Jahren
Beiträge: 297
 

@schwarzermann Ja, habe ich. 20 kW Hochvolt über solarman und über Modbus. 

Hier die Modbus Adresse. Solarman greift automatisch auf die Adressen zu, sobald Du deine Büchse dafür frei gibst.

Diese Register steuern Ladeparameter, Kapazität, Limits, BMS‑Typ usw.

98–120: Grundlegende Batterieparameter

  • 98 – Battery control mode (Lead/Lithium)

  • 99 – Equalization voltage

  • 100 – Absorption voltage

  • 101 – Float voltage

  • 102 – Battery capacity (Ah)

  • 103 – Empty voltage

  • 104 – Zero export power threshold

  • 105 – Equalization cycle days

  • 106 – Equalization duration

  • 107 – Temperature compensation

  • 108 – Max charge current

  • 109 – Max discharge current

  • 110 – Parallel Bat1 & Bat2

  • 111 – Battery works by voltage/capacity

  • 112 – Lithium wake‑up flags

  • 113 – Battery internal resistance

  • 114 – Charging efficiency

  • 115 – SOC shutdown

  • 116 – SOC restart

  • 117 – SOC low batt

  • 118 – Voltage shutdown

  • 119 – Voltage restart

  • 120 – Voltage low batt

121–140: Generator & Grid Charging

  • 121–122 – Generator runtime & cooldown

  • 123–125 – Generator charge start V/SOC & current

  • 126–128 – Grid charge start V/SOC & current

  • 129–130 – Generator/Grid charge enable

  • 134–137 – SmartLoad ON/OFF battery V/SOC

141–172: Energy management & TOU battery settings

  • 141 – Energy management mode (battery first, load first)

  • 154–159 – TOU battery discharge power

  • 160–165 – TOU battery target voltages

  • 166–171 – SOC for battery packs 1–6

  • 172–177 – TOU charge enable flags

178–180: Special battery functions

  • 178 – Special function bits (includes lithium‑battery‑lost fault enable)

  • 179 – Force off‑grid

  • 180 – Reconnect time

210–220: Lithium battery live control

  • 210 – Charge voltage

  • 211 – Discharge voltage

  • 212 – Charge current limit

  • 213 – Discharge current limit

  • 214 – Li‑battery SOC

  • 215 – Li‑battery voltage

  • 216 – Li‑battery current

  • 217 – Li‑battery temperature

  • 218 – Off‑grid charge limit

  • 219 – Off‑grid discharge limit

  • 220 – Lithium battery alarm flag

3. Deye Battery Pack Register (10000–10069)

Diese gelten für DeyePack / HV‑Batterien.

10000–10031: Pack general info

  • Device type

  • Protocol version

  • Pack count

  • Voltage, current

  • SOC, SOH

  • Remaining capacity

  • Temperature

  • Charge/discharge voltages

  • Charge/discharge limits

  • Faults & alarms


Diese r Beitrag wurde geändert Vor 3 Wochen 3 mal von paralex

   
AntwortZitat
Schwarzermann
(@schwarzermann)
Deye Kenner
Mitglied seit: Vor 2 Jahren
Beiträge: 65
 

Ja habe es heute hinbekommen habe aber einen 20K LV das funktioniert man kann doch mit einem befehl den micro inverter eingang ein und ausschalten kannst du mir da behilflich sein.da ich 3 Kostal Wechselrichter am GEn port dran hängen habe die würde ich nachts gerne abschalten um 50 W weniger zuverbrauchen


Diese r Beitrag wurde geändert Vor 3 Wochen von Schwarzermann

Der mit den Sonnenstrahlen tanzt


   
AntwortZitat
paralex
(@paralex)
PV Profi
Mitglied seit: Vor 2 Jahren
Beiträge: 297
 

@Schwarzermann

Home‑Assistant Modbus‑Konfiguration für GEN‑Mikroinverter‑Eingang

1. Modbus‑Schreibservice (HA‑Serviceaufruf)

Damit kannst du GEN EIN/AUS schalten:

GEN Mikroinverter EIN (Register 133 = 2)

GEN Mikroinverter AUS (Register 133 = 0)

Wert Bedeutung
0 Nur Generator
1 Smart Load
2 Mikroinverter aktiv

Hier baust Du dir eine Automation, das z.B. um 21 Uhr der MIP ausgeschaltet wird.


Diese r Beitrag wurde geändert Vor 3 Wochen 2 mal von paralex

   
AntwortZitat
Seite 1 / 2