@beowolf
update 14.10.2025 10:45h
MQTT-Datenpunkte
Die Steuerung erfolgt ausschließlich über MQTT.
Dabei gilt:
1. Automatisch angelegt:
mqtt.x.<baseTopic>.dpl.dplState
wird automatisch erstellt
Liefert den aktuellen Status des Dynamic Power Limiters
Werte: 0 = aus, 1 = ein (nur lesbar)
2. Manuell anlegen (Pflicht!)
mqtt.x.<baseTopic>.dpl.dplCmd
Datenpunkt dplCmd muss manuell erstellt werden, sonst funktioniert die MQTT-Steuerung nicht.
❗ Sollte dplCmd automatisch angelegt worden sein → löschen und manuell neu anlegen!
Beispiel-Einstellungen:
"common": {
"name": "dplCmd",
"desc": "DPL on: 1, off: 0",
"role": "state",
"type": "number",
"read": true,
"write": true,
"min": -1,
"max": 1,
"def": -1
}
⚠️ Nicht als Boolean anlegen!
⚙️ Funktionsweise
dplCmd: 1 → DPL-Steuerung aktiv
dplCmd: 0 → DPL deaktiviert, alle "solarbetriebenen" WR gehen automatisch auf maximale Leistung.
Nach jedem Schaltvorgang setzt sich dplCmd automatisch wieder auf -1 zurück.
Damit wird sichergestellt, dass auch bei ioBroker über Blockly oder Scripts mehrfach derselbe Befehl zuverlässig gesendet werden kann –
selbst wenn der vorherige Wert identisch war.
Hintergrund:
In ioBroker kann über Blockly kein ack: false gesetzt werden.
Ohne den automatischen Rücksprung auf -1 würde der identische Wert daher nicht erneut übertragen.
Der Mechanismus sorgt also für sauberes und wiederholbares Schalten – auch bei Blockly!
oDTUoB-maxLimit-mqtt_DPLonOff.png
Schritt-für-Schritt für ioBroker-Nutzer
WebUI OpenDTU-oB-Patch öffnen → Dynamic Power Limiter einmal ein- oder ausschalten
→ dplState wird automatisch angelegt.
iobroker Objekte → Expertenmodus aktivieren → manuell neuen Datenpunkt anlegen:
mqtt.x.<baseTopic>.dpl.dplCmd
Typ: state, Zahl (number), siehe Einstellungen oben.
DPL erneut in der WebUI schalten → danach ist MQTT-Steuerung aktiv.
Ablesen des Status
→ Nur über dplState (0/1)
→ dplCmd wird nach dem Senden automatisch auf -1 gesetzt.
Nach DPL-Deaktivierung
→ "solarbetriebene" Wechselrichter gehen automatisch auf volle Leistung (kein manuelles Setzen nötig)
→ "batteriebetriebene" Wechselrichter verhalten sich wie im original Repo.
Hinweise zur Nutzung
Jeder Schaltvorgang schreibt in den Flash-Speicher → nicht wie ein Blinker ständig ein-/ausschalten!
Etwas Geduld nach jedem Wechsel schont Hardware & Nerven. 😉
Patch ist minimalinvasiv:
Keine Zusatzdatenpunkte
Kein Eingriff in nicht benötigte Codebereiche
MQTT-Race-Conditions werden sauber abgefangen
Rückkehr zur Original-Firmware jederzeit über Web-Firmware möglich.
⚠️ Lizenz & Haftung
Diese Firmware basiert auf OpenDTU-onBattery (GPLv2, Fork von OpenDTU).
Sie enthält eigene Anpassungen und wird nicht offiziell unterstützt.
Verwendung auf eigene Verantwortung – keine Haftung für Schäden oder Fehlfunktionen.
OpenDtu-OnBattery_2025.09.16DplOff-maxLimit-MQTT.generic_esp32s3.zip
Hier im Thread finden sich weitere Firmware-Builds; direkte Links dazu sind im Eingangspost zu finden.