Kategorien
Allgemein

OpenDTU – Limit setzen über MQTT

In diesem Artikel möchte ich ein relativ neues Feature von OpenDTU vorstellen: Limit setzen über MQTT

Werte des Hoymiles via MQTT weiter zuleiten wird ja bereits von vielen genutzt. Wer mit MQTT noch nicht vertraut ist, dem empfehle ich den Artikel MQTT Starthilfe.

Die einzelnen Topics sind hier beschrieben: MQTT Topics.
Wenn man sich die Tabelle ansieht, dann findet man am Ende der Liste bei Inverter limit specific topics folgenden Hinweis: „cmd topics are used to set values„. Also können die „cmd“ Topics zum Verändern der Werte am Wechselrichter via MQTT verwendet werden. Im Detail sind das folgende Topics:

Topic R / W Description Value / Unit
[serial]/cmd/limit_persistent_relative W Set the inverter limit as a percentage of total production capability. The value will survive the night without power. The updated value will show up in the web GUI and limit_relative topic immediatly. %
[serial]/cmd/limit_persistent_absolute W Set the inverter limit as a absolute value. The value will survive the night without power. The updated value will show up in the web GUI and limit_relative topic after around 4 minutes. Watt (W)
[serial]/cmd/limit_nonpersistent_relative W Set the inverter limit as a percentage of total production capability. The value will reset to the last persistent value at night without power. The updated value will show up in the web GUI and limit_relative topic immediatly. %
[serial]/cmd/limit_nonpersistent_absolute W Set the inverter limit as a absolute value. The value will reset to the last persistent value at night without power. The updated value will show up in the web GUI and limit_relative topic after around 4 minutes. Watt (W)
[serial]/cmd/power W Turn the inverter on (1) or off (0) 0 or 1

Ich verwende im Beispiel folgende Daten:
– Wechselrichter Model: HM-700
– Seriennummer Wechselrichter: 114455667780
– Name des Wechselrichters (definiert in OpenDTU): Meine PV
– Base Topic: (definiert in OpenDTU): solar/
– IP des MQTT-Brokers: 192.168.35.216
– IP des WiB-DTU Moduls: 192.168.35.129

Sehen wir uns vor dem Test das aktuelle Limit an:
Symbol befindet sich auf der Seite „Live Data“„Current Limit: 100%“, also derzeit kein Limit gesetzt.

Setzen wir nun ein temporäres (nonpersistent) Limit von 350W:
Im MQTT-Explorer (siehe auch MQTT Starthilfe) sieht das vor dem Setzen so aus:
Wichtig: die Option „Retain“ sollte nicht verwendet werden beim Publishen, da der Wert dadurch am MQTT-Broker gespeichert wird und immer wieder abgefragt werden kann!
Das wird zwar von OpenDTU erkannt, ich hatte aber beim Testen trotzdem Probleme und musste den Cache des MQTT-Brokers löschen um das Limit loszuwerden 🙁

Der Topic zum temporären Setzen lautet in unserem Beispiel:
solar/114455667780/cmd/limit_nonpersistent_absolute
Publishen wir das jetzt mit MQTT-Explorer:
Es kann nun bis zu 4 Minuten dauern, bis das Limit ersichtlich ist.
Danach sehen wir das gesetzte Limit auch im MQTT-Explorer:

Nachdem wir es nur temporär gesetzt haben, wird das Limit nach einem Wechselrichter Neustart wieder zurückgesetzt!

Beispiel: Begrenzung HM-1200
Wir möchten unserem HM-1200 fix auf 800W limitieren, jedoch temporär auf 350W setzen.

  1. Permanentes Limit auf 800W mit Topic:
    solar/114455667780/cmd/limit_persistent_absolute
    Wert: 800
  2. Temporäres Limit auf 350W mit Topic:
    solar/114455667780/cmd/limit_nonpersistent_absolute
    Wert: 350

Bei einem Neustart des Wechselrichters wird somit immer die Begrenzung auf 800W gesetzt.

Happy testing,
WiB

PS: Ich habe keine Verbindung zur Entwicklung der OpenDTU Software, sondern bin nur ein großer Fan 🙂

Eine Antwort auf „OpenDTU – Limit setzen über MQTT“

Danke für die gute Beschreibung. Das hilft bei der Umsetzung einer Leistungslimitierung für meine BKWs. Wenn man Linux einsetzt ist übrigens mosquitto_pub dein Freund. Damit kann man MQTT Nachrichten aus der Kommandozeile versehen. Mit ein paar Zeilen Shellscript lassen sich auch mehrere Wechselrichter Leistungsmäßig automatisiert limitieren 🙂

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert