NEWS
Regelung eines Hoymiles Solarinverters (Nulleinspeisung)
-
@ralla66 er hatte den DP mittlerweile nach meinem Hinweis korrekt angelegt. Nun kann er ihn mit "steuere" im Blockly ändern und den WR ein/ausschalten. So steuere ich in meinem Blockly ja auch das Limit.
-
@kymchy
Habe das jetzt mehrfach getestet. Funktioniert auch mit "sendTo". Habe den Befehl reinkopiert. Irgend einen Syntaxfehler hatte ich sicher vorher drin. Kann ich nicht mehr exakt nachvollziehen, weil gelöscht.
Ob das jetzt immer geht, oder ob es darauf ankommt, daß der Hoymiles gerade mit der openDTU verbunden ist, muß ich noch ausgiebig testen.
Aber Danke nochmal für die Unterstützung! -
@Kymchy
Ich habe den ganzen Nachmittag getestet. Das Eigenartige ist, mal funktioniert der sendTo- Befehl, z.B zum Ein/Ausschalten, mal nicht. Bis zum Schluß nicht mal die Steuerung über die OpenDTU- Oberfläche ging. Mußte die Inverter + openDTU stromlos machen und wieder einschalten.
bei "message" trage ich mal 0 und mal 1 ein- zum Testen// Vorlage: //sendTo('mqtt.0', 'sendMessage2Client', {topic: 'solar/11418xxxxxxx/cmd/power', message: '1'}); sendTo('mqtt.0', 'sendMessage2Client', {topic: 'solar/112183227304/cmd/power', message: '1'}); // sendTo('mqtt.0',"sendMessage2Client",{topic: 'solar/112183225956/cmd/power', message: '1'}); // sendTo('mqtt.0',"sendMessage2Client",{topic: 'solar/112183818346/cmd/power', message: '1'});
und:
//sendTo('mqtt.0', 'sendMessage2Client', {topic: 'solar/112183227304/cmd/limit_nonpersistent_absolute', message: '300'}); sendTo('mqtt.0', 'sendMessage2Client', {topic: 'solar/112183225956/cmd/limit_nonpersistent_absolute', message: '300'}); //sendTo('mqtt.0', 'sendMessage2Client', {topic: 'solar/112183818346/cmd/limit_nonpersistent_absolute', message: '400'});
hat evtl. die openDTU eine Macke? Die Befehle kommen nicht beim Inverter an?
Über den MQTT Editor gesendet (published) wirken die Befehle -
@laser ich habe dir nicht gesagt, du sollst den sendTo Befehl nehmen...
-
@kymchy
OK, da gibt es scheinbar doch Probleme. Lieber direkt den Datenpunkt setzen. -
@laser ja, aber nicht mit aktualisiere, sondern mit steuere. Funktioniert bei mir tadellos.
und den mqtt Adapter als Server/Broker.
-
@kymchy OK, dann verabschiede ich mich vom sendTo- Befehl. Unterschied Steuern und Aktualisieren im Script muß ich mir noch ansehen.
-
Den SendTo Befehl habe ich verbannt. Aber das Schreiben auf die Datenpunkte mit
Zielwert = 400; setState("mqtt.1.solar.112183227304.cmd.limit_nonpersistent_absolute", Zielwert); setState("mqtt.1.solar.112183225956.cmd.limit_nonpersistent_absolute", Zielwert);
funktioniert mal, mal nicht. Irgendetwas passt noch nicht. Mal reagiert der Hoymiles, mal nicht.
Auch mit Blockly nicht. -
@laser welcher Inverter ist das?
ich würde die Werte auch immer relativ setzten.
-
@kymchy Hoymiles HM400
relativ 10 % Inverter macht 10 Watt ist das OK? -
@laser was ist, wenn du die Werte händisch in den Objekten änderst?
-
@laser said in Regelung eines Hoymiles Solarinverters (Nulleinspeisung):
@kymchy Hoymiles HM400
relativ 10 % Inverter macht 10 Watt ist das OK?nein
-
@kymchy setze die Werte händisch in den Objekten und schau, ob OpenDTU die annimmt.
-
@kymchy Das Verrückte ist, mal geht es mal nicht! Habe jetzt 50% relativ gesetzt: 200 Watt. 10% : 40 Watt.
Ein/Aus geht auch, aber morgen früh ist der Inverter, den ich heute ausgeschaltet habe, wieder eingeschaltet. Einige Male bleib er aber aus. Ein System kann ich nicht erkennen.
Sind meine Befehle so richtig? "aktualisiere, ohne Bestätigung" -
@laser sagte in Regelung eines Hoymiles Solarinverters (Nulleinspeisung):
aktualisiere, ohne Bestätigung
aktualisiere ist mit Bestätigung und nur für eigene Datenpunkte gedacht.
zum steuern von Geräten über deren Adapter musst du steuere nehmenwie schon gesagt wurde
@kymchy sagte in Regelung eines Hoymiles Solarinverters (Nulleinspeisung):
@laser ja, aber nicht mit aktualisiere, sondern mit steuere. Funktioniert bei mir tadellos.
-
@homoran sorry, sollte natürlich "steuere" heißen!
setState("mqtt.1.solar.112183225956.cmd.limit_nonpersistent_absolute", Zielwert); -
Hallo
@Kymchy und natürlich an die ganzen anderen fleißigen LeuteBisher war ich nur ein stummer Mitlesen und habe soweit alles hinbekommen. Dafür schonmal ein großes Dankeschön an alle.
Aktuell hänge ich aber fest und komme wirklich nicht weiter. Habe dein Blockly genommen und ein wenig verändert. Da ich einen LifePo4-Akku verwende, steuere ich meine Einspeisung bis auf eine bestimmte Voltzahl, danach geht es in eine einfache konstante Nachteinspeisung (unterhalb von 26V geht es in die Konstanteinspeisung, unterhalb von 24V schaltet ein Relais die Stromzufuhr zum Wechselrichter ab -> Batterieschutz)
Zuerst werde ich nicht ganz schlau aus dem Wert: "StoredNeededPower". Aktuell habe ich da einen Datenpunkt angelegt, den das Script füllt und ändert (evtl. ist da schon der Fehler?!) diesen gebe ich insgt. drei mal im Script an:
- "Setze StoredNeededPower auf Wert von Objekt ID XY (Datenpunkt)
- Dann benutze ich diese Objekt ID erneut bei den beiden "...aktualisiere..."
Als letztes kommt noch der Befehl mit entsprechendem Datenpunkt "Steuere...limit_nonpersistent_relative mit SolarLimit" im Ordner "cmd" in dem Ordner der Seriennummer.
Bis dahin scheint alles zu funktionieren, denn beide erzeugten Datenpunkte ändern sich entsprechend des Scriptes, sofern eine Änderung ansteht. Was sich allerdings nicht ändert: Der Wert in OpenDTU. Der relative Wert bleibt immer konstant der Wert, der zuletzt z.B. über den Browser ausgewählt wurde.
Ändere ich allerdings IRGENDETWAS in den MQTT Einstellungen in der OpenDTU, z.B.: Veröffentlichungsintervall (von 5 auf 6Sek), übernimmt OpenDTU das Relative Limit, welches im IO-Broker im Datenpunkt liegt. Also irgendwie ist die Verbindung vorhanden, nur eben nicht dann, wenn ich das will :D!OpenDTU läuft über einen ESP32 und habe ich heute noch geupdatet auf 7e28336.
Ich hoffe ich habe mich da verständlich ausgedrückt und freue mich auf ein paar Tips von euch.
Wünsche euch einen entspannten Restsonntag.
Liebe Grüße,
Ollie
-
@olliele Hab es wohl gefunden. Es war eine Einstellung im MQTT-Adapter im IO-Broker.
Und zwar musste ein Haken bei: "Nachrichten ohne retain-Flag senden" gesetzt werden!!! -
Jetzt war ein bischen Sonne, das Script läuft, aber die Regelung wird nicht an den WR weitergegeben. Irgenwas stimmt nicht. MQTT Datenpunkte ?
-
@trudeludes
Welchen Nutzen bringt das Ganze eigentlich? Ich drossele den Wechselrichter und verschenke teuer erzeugte (theoretisch) Elektroenergie anstatt sie einzuspeisen. Wenn ich diese Energie in einen Akku laden würde, könnte ich noch einen Sinn darin erkennen.