NEWS
Regelung eines Hoymiles Solarinverters (Nulleinspeisung)
Regelung eines Hoymiles Solarinverters (Nulleinspeisung)
-
@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 -
@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. -
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. -
@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" -
@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.
-
@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.
-
Hallo
@Kymchy und natürlich an die ganzen anderen fleißigen Leute
Bisher 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
-
Hallo
@Kymchy und natürlich an die ganzen anderen fleißigen Leute
Bisher 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
-
Hallo,
ich habe mich mal daran versucht, ein Blockly zu erstellen, welches dazu dient, einen Hoymiles Wechselrichter für ein Balkonkraftwerk zu regeln.
Dazu gibt es im Netz schon einige, aber die, die ich gefunden hatte, gingen immer von dem Ansatz aus, das reagiert wird, wenn die Anlage in die Einspeisung geht, also mehr Strom erzeugt wird, als benötigt wird.
Mein Ansatz verfolgt einen anderen Weg. Und zwar den, dass die Anlage immer maximal soviel Strom liefert, wie von den Verbrauchern verlangt wird. Meinen Stromzähler lese ich mit einem Hichi aus, der negative Werte anzeigt, wenn eingespeist wird. Die benötigte Strommenge ergibt sich aus der Summe dessen, was der Hichi ausliest und der momentanen Leistung der PV-Anlage.
Meine Regelung erfolgt alle 30 Sekunden und nur zwischen Sonnenauf- und Sonnenuntergang. Um zu häufige Regelungen zu vermeiden, habe ich eine Hysterese eingebaut, wobei die Regelung nur dann erfolgt, wenn der gemessene Strombedarf mehr als 10% vom vorher eingestellten abweicht. Den eingestellten Wert speichere ich dazu in einem Datenpunkt. Die Regelung erfolgt über MQTT non-persistent und in Prozent, also relativ.
Ich hoffe, das Skript ist einigermaßen lesbar und würde mich mich über Hinweise zu Fehlern oder Verbesserungsvorschläge freuen.
Hier nun das Blockly;
viele Grüße
KymchyJetzt war ein bischen Sonne, das Script läuft, aber die Regelung wird nicht an den WR weitergegeben. Irgenwas stimmt nicht. MQTT Datenpunkte ?
-
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. -
@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.@laser
z.B das bei einem Zweirichtungszähler nicht zu viel auf dem Einspeisewert gesamt steht, wenn z.B mehr als ein 600 Watt BKW in Betrieb ist ?
Würde doch wahrscheinlich irgenwann Ärger geben wenn die Einspeisung im Jahr viel zu hoch ausfällt oder meinst du nicht ? -
@laser
z.B das bei einem Zweirichtungszähler nicht zu viel auf dem Einspeisewert gesamt steht, wenn z.B mehr als ein 600 Watt BKW in Betrieb ist ?
Würde doch wahrscheinlich irgenwann Ärger geben wenn die Einspeisung im Jahr viel zu hoch ausfällt oder meinst du nicht ?@trudeludes OK, an sowas hatte ich jetzt nicht gedacht...Ich tütele immer noch an meiner Akku- Ladegeschichte rum.
-
@Kymchy erst mal vielen Dank für Deine Arbeit und das Teilen.
Das hat mir und sicher auch anderen Zeit und Mühe gespart. Mal ne Frage in die Runde, hat schon jemand einen zweiten Hoymiles mit in diese Regelung eingebunden? Ist das sinnvoll überhaupt möglich? Wenn der eine runter oder rauf regelt, ändern sich ja auch schon wieder die Werte für den anderen WR.