NEWS
Hoymiles steuern über MQTT
-
Ich habe einen Hoymiles HM-600 und der sendet erfolgreich seine Daten in den IO-Broker über die OpenDTU
Laut Dokumentation von openDTU kann ich die Leistungsbegrenzung auch auf dem Weg in den Wechselrichter schreiben.
https://github.com/tbnobody/OpenDTU/blob/master/docs/MQTT_Topics.mdWenn ich das aber mache, dann erscheint der neue Wert nur kurz beim Objekt in IOBroker und wird danach dann wieder von der DTU überschrieben.
Was habe ich übersehen?lg
-
@sven-schumacher sagte in Hoymiles steuern über MQTT:
Wenn ich das aber mache, dann erscheint der neue Wert nur kurz beim Objekt in IOBroker und wird danach dann wieder von der DTU überschrieben.
Ist es etwas ungenau. Wo genau setzt Du den Wert, bzw. welchen Datenpunkt (genau) sprichst Du an? Ggf. mal die Datenstruktur zeigen und den Datenpunkt darin.
Ich habe zwar AhoyDTU im Einsatz, aber das Prinzip sollte ähnlich sein.
Vermutung:
Du änderst den Datenpunkt für die aktuell angezeigte Leistung bzw. versuchst diesen zu ändern und benutzt nicht den dafür vorgesehen Steuerdatenpunkt. -
@samson71 tatsächlich habe ich nicht gesehen, dass es bei OpenDTU extra eingabe- und Ausgaberegister gibt.
Bei homematic-IP ist das anders. Da kann ich das gleiche Register mit einem neuen Sollwert überschreiben, wo auch der Sollwert angezeigt wird.Allerdings bin ich nicht wirklich weiter gekommen damit:
ich habe jetzt den Ordner "cmd" unter der Seriennummer angelegt und dort den gewünschten state als "variable"
mqtt.1.114183173xxx.cmd.limit_nonpersistent_absolute
mit dem Namen:
DTU/114183173xxx/cmd/limit_nonpersistent_absoluteDTU/ ist in der OpenDTU auch so hinterlegt und alle states werden so angezeigt, die von der DTU kommen.
aber was auch immer ich dort als Wert hinterlege, es wird jetzt nicht überschrieben, sondern ignoriert.also unter DTU/114183173xxx/status/limit_nonpersistant_absolute steht der aktuelle Wert 600 (W)
Ich kann in der DTU direkt dieser Wert ändern und der WR übernimmt es dann und schreibt es in "status"Hier ein Beispiel:
{ "common": { "name": "DTU/114183173xxx/cmd/limit_nonpersistent_relative", "desc": "Manuell erzeugt", "role": "variable", "type": "number", "read": true, "write": true, "def": 0, "unit": "%" }, "type": "state", "native": {}, "_id": "mqtt.1.114183173xxx.cmd.limit_nonpersistent_relative_", "acl": { "object": 1638, "state": 1638, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1684674691xxx }
ich benutze den "MQTT Broker/Client" Adapter. Vielleicht sind da noch Einstellungen falsch? Was sollte da angehakt sein?
-
@Sven-Schumacher
wenn Du Open DTU verwendest, hast Du auch den OpenDTU Adapter installiert? Der legt Dir die Datenpunkte an die Du brauchst um den WR rauf oder runter zu regeln. Für eine Nulleinspeisung gibt es von @Kymchy ein super Script was auf diesen Adapter aufbaut. -
@tigger66 es gibt zwei Wege. Der opendtu Adapter oder matt. Wobei letzteres eigentlich der universellere Ansatz ist und der opendtu Adapter über die Weboberfläche improvisiert.
Es sollte nicht nötig sein beides zu installieren. Über mqtt werden auch die toppics angelegt, allerdings nicht die 4 "cmd" toppics, die ich für die Leistungsregelung brauche.
-
@sven-schumacher sagte in Hoymiles steuern über MQTT:
Über mqtt werden auch die toppics angelegt, allerdings nicht die 4 "cmd" toppics, die ich für die Leistungsregelung brauche.
Guck Dir ggf mal die Doku dazu im Github an. Bei AhoyDTU war das genauso. Da konnte ich aber den notwendigen Steuerdatenpunkt über den MQTT Explorer per publish selber anlegen. Dann war der auch vorhanden und nutzbar.