NEWS
Modbus schreiben, wird wieder zurückgesetzt
-
Hallo,
mein Modbus funktioniert gut zum Lesen von Parametern. Aber das Schreiben funktioniert nicht. Der Wechselrichter reagiert nicht und im Modbus-Objekt wird der Wert wieder zurückgesetzt (null).
Folgende Parameterliste:

Wieso dass da fürs Laden und Entladen je zwei Register sind, weiss ich nicht, ich hab beide ausprobiert.
Was mir aufgefallen ist: Beim Schreiblevel steht, wenn ich mit der Maus darüber fahr, "installateur". Das Installateur-Passwort kenn ich, aber ich wüsste nicht wie man mit Modbus einloggen, oder sich als Installateur anmelden kann.
Tatsache ist, dass wenn ich das so konfiguriere:

dass ich dann in den Objekten einen Eintrag bekomme, bei welchem ich dann den Wert folgendermassen setze:

Ich sehe dann den Wert 4000 für ca, 2 Sekunden aber der geht wieder auf "(null)".
Wenn ich bei der Konfiguration "Abfrage" ancklicke geht der Wert nach ca. 2s auf maxUINT32 (4294967295)Im Log sehe ich im Debug Level folgende Einträge:
modbus.0 2024-10-27 12:15:35.630 debug Write successfully [40795]: 4000 modbus.0 2024-10-27 12:15:35.626 debug state Changed ack=false: modbus.0.holdingRegisters.40795_Maximale_Batterieladeleistung: {"val":4000,"ack":false,"ts":1730027735626,"q":0,"from":"system.adapter.admin.0","user":"system.user.admin","lc":1730027735626}Da fällt mir auf, dass da bei ack=false steht. Kann es sein, dass das nicht angenommen wird? Ev. wegen diesem Schreiblevel "installateur"?
@delphinis sagte in Modbus schreiben, wird wieder zurückgesetzt:
im Modbus-Objekt wird der Wert wieder zurückgesetzt (null).
wenn du Holdingregister nutzst und nicht Abfrage anhakst ist das korrekt.
Dann bleibt der eingegebene Wert nur so lange sichtbar, bis das Gerät diesen abgeholt hat. -
Hallo,
mein Modbus funktioniert gut zum Lesen von Parametern. Aber das Schreiben funktioniert nicht. Der Wechselrichter reagiert nicht und im Modbus-Objekt wird der Wert wieder zurückgesetzt (null).
Folgende Parameterliste:

Wieso dass da fürs Laden und Entladen je zwei Register sind, weiss ich nicht, ich hab beide ausprobiert.
Was mir aufgefallen ist: Beim Schreiblevel steht, wenn ich mit der Maus darüber fahr, "installateur". Das Installateur-Passwort kenn ich, aber ich wüsste nicht wie man mit Modbus einloggen, oder sich als Installateur anmelden kann.
Tatsache ist, dass wenn ich das so konfiguriere:

dass ich dann in den Objekten einen Eintrag bekomme, bei welchem ich dann den Wert folgendermassen setze:

Ich sehe dann den Wert 4000 für ca, 2 Sekunden aber der geht wieder auf "(null)".
Wenn ich bei der Konfiguration "Abfrage" ancklicke geht der Wert nach ca. 2s auf maxUINT32 (4294967295)Im Log sehe ich im Debug Level folgende Einträge:
modbus.0 2024-10-27 12:15:35.630 debug Write successfully [40795]: 4000 modbus.0 2024-10-27 12:15:35.626 debug state Changed ack=false: modbus.0.holdingRegisters.40795_Maximale_Batterieladeleistung: {"val":4000,"ack":false,"ts":1730027735626,"q":0,"from":"system.adapter.admin.0","user":"system.user.admin","lc":1730027735626}Da fällt mir auf, dass da bei ack=false steht. Kann es sein, dass das nicht angenommen wird? Ev. wegen diesem Schreiblevel "installateur"?
@delphinis welcher WR ist das ?
-
@delphinis welcher WR ist das ?
-
@delphinis hab mir schon gedacht
-
@delphinis Wie wurde das Problem jetzt final gelöst?
Bisher habe ich folgendes dazu heir gefundenHolding Registers: _address deviceId name description unit type len factor offset formula role room poll wp cw isScale 40149 3 Wirkleistungvorgabe W int32be 2 1 0 level false false false false 40151 3 Kommunikation uint32be 2 1 0 state false false false false 40189 3 max Ladeleistung BatWR BatConv.WMaxCha W uint32be 2 1 0 level true false false 40191 3 max Entladeleistung BatWR BatConv.WMaxDsch W uint32be 2 1 0 level true false false 40795 3 max Batterieladeleistung CmpBMS.BatChaMaxW W uint32be 2 1 0 level false false false 44433 3 max Batterieladeleistung CmpBMS.BatChaMaxW W uint32be 2 1 0 value.battery true false false false 40799 3 max Batterieentladeleistung CmpBMS.BatDschMaxW W uint32be 2 1 0 level false false false 44437 3 max Batterieentladeleistung CmpBMS.BatDschMaxW W uint32be 2 1 0 value.battery false false false 31393 3 Momentane Batterieladung BatChrg.CurBatCha W uint32be 2 1 0 value.battery true false false falseMOD-EDIT: Code in code-tags gesetzt!
- anhaken von : nur "Write multiple Register" verwenden
- Abfrage nicht anhaken
- zyklisches Schreiben alle 10 Sekunden
-
@delphinis Wie wurde das Problem jetzt final gelöst?
Bisher habe ich folgendes dazu heir gefundenHolding Registers: _address deviceId name description unit type len factor offset formula role room poll wp cw isScale 40149 3 Wirkleistungvorgabe W int32be 2 1 0 level false false false false 40151 3 Kommunikation uint32be 2 1 0 state false false false false 40189 3 max Ladeleistung BatWR BatConv.WMaxCha W uint32be 2 1 0 level true false false 40191 3 max Entladeleistung BatWR BatConv.WMaxDsch W uint32be 2 1 0 level true false false 40795 3 max Batterieladeleistung CmpBMS.BatChaMaxW W uint32be 2 1 0 level false false false 44433 3 max Batterieladeleistung CmpBMS.BatChaMaxW W uint32be 2 1 0 value.battery true false false false 40799 3 max Batterieentladeleistung CmpBMS.BatDschMaxW W uint32be 2 1 0 level false false false 44437 3 max Batterieentladeleistung CmpBMS.BatDschMaxW W uint32be 2 1 0 value.battery false false false 31393 3 Momentane Batterieladung BatChrg.CurBatCha W uint32be 2 1 0 value.battery true false false falseMOD-EDIT: Code in code-tags gesetzt!
- anhaken von : nur "Write multiple Register" verwenden
- Abfrage nicht anhaken
- zyklisches Schreiben alle 10 Sekunden
-
- Modbus schreiben bei SMA-WR -
Dieses Problem ist ja schon mehrfach beschrieben worden:
@manni072 @tuning
https://forum.iobroker.net/post/885251 - Schreiben in das holding register (40795 bzw. 44433), aber kein Veränderung von 31393:
31393 3 Momentane Batterieladung BatChrg.CurBatCha W uint32be 2 1 0 value.battery true false false false
40795 3 max Batterieladeleistung CmpBMS.BatChaMaxW W uint32be 2 1 0 level false false false false
44433 3 max Batterieladeleistung CmpBMS.BatChaMaxW W uint32be 2 1 0 value.battery false false false falseIch hol mal aus:
HW: SMA Tripower Wechselrichter STP6.0-3SE-40 und Batteriespeicher BYD HVS 10.2
Problem Batteriespeicher-Degradation:
Für eine minimale Degradation (SoH) sollte der SoC vom Speicher die meiste Zeit zwischen 20 und 80% liegen.
Des weiteren sollte die Batterieladung möglichst 0.2C nicht überschreiten, zwecks schonendem Laden.
D.h. bei einem Speicher von ca. 10 kWh -> max. Batterieladeleistung von 2000 W.
Der Batteriespeicher wird aktuell jedoch mit teilweise über 5000 W beladen und hat schon ab 10 Uhr den SoC von 100%.
Dieser SoC von 100% wird dann bis in die Abendstunden beibehalten.
Festgestellt wurde auch, dass des SMA-Wechselrichter die Batterieladeleistung auch bei hohem SoC (>80%) nicht reduziert.- Deshalb benötige ich zwei Punkte:
- Reduktion der Batterieladeleistung (z.B. max. 2000 W) bis 13 Uhr und auf max. SoC 80%.
- Reduktion der Batterieladeleistung (z.B. 1000 W) bei SoC > 90%
Modbus schreiben - holding registers:
_address deviceId name description unit type len factor offset formula role room poll wp cw isScale
30845 3 Batterie SoC Prozent Bat.ChaStt % uint32be 2 1 0 value.battery true false false false
31393 3 Momentane Batterieladung BatChrg.CurBatCha W uint32be 2 1 0 value.battery true false false false
40149 3 Wirkleistungvorgabe Inverter.WModCfg.WCtlComCfg.WSpt W int32be 2 1 0 level false false false false
40151 3 Kommunikation 802: aktiv (Act) 803: inaktiv (Ina) uint32be 2 1 0 state false false false false
40189 3 max Ladeleistung BatWR BatConv.WMaxCha W uint32be 2 1 0 level true false false false
40795 3 max Batterieladeleistung CmpBMS.BatChaMaxW W uint32be 2 1 0 level false false false false
44433 3 max Batterieladeleistung CmpBMS.BatChaMaxW W uint32be 2 1 0 value.battery false false false falseUnd es geht um diese Parameter und Messwerte:
STP5.0-3SE-40 / STP6.0-3SE-40 / STP8.0-3SE-40 / STP10.0-3SE-40CmpBMS.BatChaMaxW Sollwert Maximale Batterieladeleistung 1 Installateur 40795 2 U32 FIX0 WO
CmpBMS.BatChaMaxW Sollwert Maximale Batterieladeleistung 1 Installateur 44433 2 U32 FIX0 WOWie wurde das Problem jetzt gelöst?
Mit dem direkt ins Objekt schreiben funktioniert es nicht:

Der Wert wird nur für ca. 2 Sekunden angezeigt und nicht vom SMA weiterverarbeitet.
Der Wert ändert sich nicht (Anm.: im screenshot steht 0W, da SoC schon auf 100%),
aber heute morgen war der SoC unter 100% und 31393 war ständig zwischen 2500 bis 5000 W:
31393 3 Momentane Batterieladung BatChrg.CurBatCha W uint32be 2 1 0 value.battery true false false false

Hängt das doch noch mit der Kommunikation zusammen?
40151 3 Kommunikation 802: aktiv (Act) 803: inaktiv (Ina) uint32be 2 1 0 state false false false false@arteck schreibt:
..
der Modbus löscht die Werte wieder wenn der WR es abgeholt hat... ja es IST SO
sonst hier
https://forum.iobroker.net/topic/39786/gelöst-sma-stp10-0-modbus-registerprobleme?_=1730104806989
https://forum.iobroker.net/topic/59950/modbus-register-für-sma/3?page=1 - Modbus schreiben bei SMA-WR -
-
- Modbus schreiben bei SMA-WR -
Dieses Problem ist ja schon mehrfach beschrieben worden:
@manni072 @tuning
https://forum.iobroker.net/post/885251 - Schreiben in das holding register (40795 bzw. 44433), aber kein Veränderung von 31393:
31393 3 Momentane Batterieladung BatChrg.CurBatCha W uint32be 2 1 0 value.battery true false false false
40795 3 max Batterieladeleistung CmpBMS.BatChaMaxW W uint32be 2 1 0 level false false false false
44433 3 max Batterieladeleistung CmpBMS.BatChaMaxW W uint32be 2 1 0 value.battery false false false falseIch hol mal aus:
HW: SMA Tripower Wechselrichter STP6.0-3SE-40 und Batteriespeicher BYD HVS 10.2
Problem Batteriespeicher-Degradation:
Für eine minimale Degradation (SoH) sollte der SoC vom Speicher die meiste Zeit zwischen 20 und 80% liegen.
Des weiteren sollte die Batterieladung möglichst 0.2C nicht überschreiten, zwecks schonendem Laden.
D.h. bei einem Speicher von ca. 10 kWh -> max. Batterieladeleistung von 2000 W.
Der Batteriespeicher wird aktuell jedoch mit teilweise über 5000 W beladen und hat schon ab 10 Uhr den SoC von 100%.
Dieser SoC von 100% wird dann bis in die Abendstunden beibehalten.
Festgestellt wurde auch, dass des SMA-Wechselrichter die Batterieladeleistung auch bei hohem SoC (>80%) nicht reduziert.- Deshalb benötige ich zwei Punkte:
- Reduktion der Batterieladeleistung (z.B. max. 2000 W) bis 13 Uhr und auf max. SoC 80%.
- Reduktion der Batterieladeleistung (z.B. 1000 W) bei SoC > 90%
Modbus schreiben - holding registers:
_address deviceId name description unit type len factor offset formula role room poll wp cw isScale
30845 3 Batterie SoC Prozent Bat.ChaStt % uint32be 2 1 0 value.battery true false false false
31393 3 Momentane Batterieladung BatChrg.CurBatCha W uint32be 2 1 0 value.battery true false false false
40149 3 Wirkleistungvorgabe Inverter.WModCfg.WCtlComCfg.WSpt W int32be 2 1 0 level false false false false
40151 3 Kommunikation 802: aktiv (Act) 803: inaktiv (Ina) uint32be 2 1 0 state false false false false
40189 3 max Ladeleistung BatWR BatConv.WMaxCha W uint32be 2 1 0 level true false false false
40795 3 max Batterieladeleistung CmpBMS.BatChaMaxW W uint32be 2 1 0 level false false false false
44433 3 max Batterieladeleistung CmpBMS.BatChaMaxW W uint32be 2 1 0 value.battery false false false falseUnd es geht um diese Parameter und Messwerte:
STP5.0-3SE-40 / STP6.0-3SE-40 / STP8.0-3SE-40 / STP10.0-3SE-40CmpBMS.BatChaMaxW Sollwert Maximale Batterieladeleistung 1 Installateur 40795 2 U32 FIX0 WO
CmpBMS.BatChaMaxW Sollwert Maximale Batterieladeleistung 1 Installateur 44433 2 U32 FIX0 WOWie wurde das Problem jetzt gelöst?
Mit dem direkt ins Objekt schreiben funktioniert es nicht:

Der Wert wird nur für ca. 2 Sekunden angezeigt und nicht vom SMA weiterverarbeitet.
Der Wert ändert sich nicht (Anm.: im screenshot steht 0W, da SoC schon auf 100%),
aber heute morgen war der SoC unter 100% und 31393 war ständig zwischen 2500 bis 5000 W:
31393 3 Momentane Batterieladung BatChrg.CurBatCha W uint32be 2 1 0 value.battery true false false false

Hängt das doch noch mit der Kommunikation zusammen?
40151 3 Kommunikation 802: aktiv (Act) 803: inaktiv (Ina) uint32be 2 1 0 state false false false false@arteck schreibt:
..
der Modbus löscht die Werte wieder wenn der WR es abgeholt hat... ja es IST SO
sonst hier
https://forum.iobroker.net/topic/39786/gelöst-sma-stp10-0-modbus-registerprobleme?_=1730104806989
https://forum.iobroker.net/topic/59950/modbus-register-für-sma/3?page=1Ich hol mal aus:
Ich fürchte du mischst hier zwei Dinge:
- Bedienung und Einstellung des Adapters
- Reaktion des WR darauf.
Solange du nicht die richtigen Einstellungen hast, funktioniert Punkt 1 nicht (so wie du dir das scheinbar vorgestellt hast).
Jedesmal bei einer expliziten Nachfrage dazu dann ausschweifend auf das andere Thema zu schwenken ist nicht hilfreich!
Wie @arteck und ich bereits sagten, hast du leicht variiert hier gesagt
der Modbus löscht die Werte wieder wenn der WR es abgeholt hat... ja es IST SO
Jedoch ist es nicht der Modbus, sondern nur die GUI des Adaptes bei den Holdingregistern.
Also nochmal, und nur eine Frage
Warum hast du Abfrage/Polling nicht angehakt.
Und weil ich es nicht lassen kann:
Was passiert dann, wenn du den Haken setztst in der GUI? - Modbus schreiben bei SMA-WR -
-
Das Erebnis ist das gleiche, egal ob man den Haken setzt oder nicht:
Der Wert (hier: 2000) für 40795 wird nur für ca. 2 Sekunden angezeigt und vom SMA-WR nicht weiterverarbeitet.
31393 - Momentane Batterieladung - BatChrg.CurBatCha wird nicht auf 2000 W begrenzt.ioBroker_holdreg_Aufzeichnung 2026-04-21 093541.iphone5.mp4

-
Das Erebnis ist das gleiche, egal ob man den Haken setzt oder nicht:
Der Wert (hier: 2000) für 40795 wird nur für ca. 2 Sekunden angezeigt und vom SMA-WR nicht weiterverarbeitet.
31393 - Momentane Batterieladung - BatChrg.CurBatCha wird nicht auf 2000 W begrenzt.ioBroker_holdreg_Aufzeichnung 2026-04-21 093541.iphone5.mp4

und vom SMA-WR nicht weiterverarbeitet.
Das ist jetzt nicht das Thema!
Im Moment prüfen wir nur den Adapter!Warum schreibst du mit "bestätigt".
Damit erzählst du dem Adapter dass du bereits alles erledigt hast, und er nichts mehr tun muss!Außerdem:
31393 - Momentane Batterieladung - BatChrg.CurBatCha wird nicht auf 2000 W begrenzt.
31xxx ist auch kein Holdingregister!
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden