NEWS
Modbus schreiben, wird wieder zurückgesetzt
-
@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!
-
Ich 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?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?- Wo soll ich Abfrage/Polling in der GUI anhaken?
Ich kenne bisher nur das Feld "Bestätigt", was ich ja dann ohne Ergebnis wahlweise an- und abgehakt hatte.
Warum schreibst du mit "bestätigt".
Damit erzählst du dem Adapter dass du bereits alles erledigt hast, und er nichts mehr tun muss!Wie gesagt, ich kenne bisher nur das Feld "Bestätigt",
war das nicht deine Frage (..den Haken setztst in der GUI?..) von oben?31xxx ist auch kein Holdingregister!
Das ist klar, 31393 ist nur RO. Aber ich habe das zwecks Übersicht (Rückmeldung vom WR) zusätzlich in die holding Registers eingetragen und frage das auch nur lesend ab.
-
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?- Wo soll ich Abfrage/Polling in der GUI anhaken?
Ich kenne bisher nur das Feld "Bestätigt", was ich ja dann ohne Ergebnis wahlweise an- und abgehakt hatte.
Warum schreibst du mit "bestätigt".
Damit erzählst du dem Adapter dass du bereits alles erledigt hast, und er nichts mehr tun muss!Wie gesagt, ich kenne bisher nur das Feld "Bestätigt",
war das nicht deine Frage (..den Haken setztst in der GUI?..) von oben?31xxx ist auch kein Holdingregister!
Das ist klar, 31393 ist nur RO. Aber ich habe das zwecks Übersicht (Rückmeldung vom WR) zusätzlich in die holding Registers eingetragen und frage das auch nur lesend ab.
Wo soll ich Abfrage/Polling in der GUI anhaken?
In der Tabelle der Holdingregister hinter dem entsprechenden Register!

Ich wundere mich nur, dass diese Frage erst jetzt kommt mt

Wie gesagt, ich kenne bisher nur das Feld "Bestätigt",
war das nicht deine Frage (..den Haken setztst in der GUI?..) von oben?Nein, das sind zwei verschiedene Dinge!
, 31393 ist nur RO. Aber ich habe das zwecks Übersicht (Rückmeldung vom WR) zusätzlich in die holding Registers eingetrage
Das sollte bei sauberer Anwendung des Modbusprotokolls seitens des Geräteherstellers nicht funktionieren, da Inputregister (3xxxx) mit einem anderen FunctioCode aufgerufen werden als Holdingregister (4xxxx)!
Die 3xxxx müsste also als Inputregister abgefragt werden. - Wo soll ich Abfrage/Polling in der GUI anhaken?
-
Wir können diesen Punkt schliessen, die Lösung ist hier beschrieben:
Antwort von SMA:
..
Alternative können die folgenden Register genutzt werden.
In diesem Fall regelt der Wechselrichter den Netzanschlusspunkt auf den Sollwert CmpBMS.GridWSpt
unter Einhaltung der angegebenen Grenzen.
Dabei müssen immer alle Werte zyklisch (max. 300s) gesendet werden
und innerhalb von 10s gesetzt werden.CmpBMS.BatChaMinW 40793 --> Wert: 0 CmpBMS.BatChaMaxW 40795 --> Wert: Maximal gewünschte Ladeleistung CmpBMS.BatDschMinW 40797 --> Wert: 0 CmpBMS.BatDschMaxW 40799 --> Wert: Maximal gewünschte Entladeleistung CmpBMS.GridWSpt 40801 --> Wert: 0 CmpBMS.OpMod 41259 --> Wert: 1438Wenn diese Möglichkeit genutzt wird, dann muss beim Homemanager das prognosebasierte Laden abgeschaltet werden,
da dieser ebenfalls diese Werte für die Steuerung verwendet. -
Wir können diesen Punkt schliessen, die Lösung ist hier beschrieben:
Antwort von SMA:
..
Alternative können die folgenden Register genutzt werden.
In diesem Fall regelt der Wechselrichter den Netzanschlusspunkt auf den Sollwert CmpBMS.GridWSpt
unter Einhaltung der angegebenen Grenzen.
Dabei müssen immer alle Werte zyklisch (max. 300s) gesendet werden
und innerhalb von 10s gesetzt werden.CmpBMS.BatChaMinW 40793 --> Wert: 0 CmpBMS.BatChaMaxW 40795 --> Wert: Maximal gewünschte Ladeleistung CmpBMS.BatDschMinW 40797 --> Wert: 0 CmpBMS.BatDschMaxW 40799 --> Wert: Maximal gewünschte Entladeleistung CmpBMS.GridWSpt 40801 --> Wert: 0 CmpBMS.OpMod 41259 --> Wert: 1438Wenn diese Möglichkeit genutzt wird, dann muss beim Homemanager das prognosebasierte Laden abgeschaltet werden,
da dieser ebenfalls diese Werte für die Steuerung verwendet.
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