NEWS
Regelung eines Hoymiles Solarinverters (Nulleinspeisung)
-
@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. -
@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. -
@tigger66 Ich bin auch gerade dabei, mich hier einzufuchsen, und wenn es dann mal läuft, sollen am Ende 2-5 Wechselrichter gesteuert werden, daher antworte ich mal auf die Frage "zweiten Hoymiles einbinden":
Grundsätzlich sehe ich zwei Regelungsprobleme (#1 gilt auch schon bei einem einzigen Wechselrichter):
- Liegen die Module eines Wechselrichters im Schatten und produziert er z.B. gerade nur 100W, dann wird eine Drosselung von 600W auf 300W überhaupt nichts daran ändern, was dieser Wechselrichter produziert. Hat man also vorher schon Teillastbetrieb, dann ist die Berechnung des Zielwerts für Nulleinspeisung ungenau. Macht aber auch nichts, denn eine ungenaue Regelung ist ja besser als gar keine Regelung.
- Bei mehreren Wechselrichtern käme es dann darauf an, ob deren Module alle ähnlich ausgerichtet sind oder ob bei einer Ost-West-Ausrichtung die einen gerade auf Vollast laufen und die anderen dahintrödeln. Wenn alle ähnlich ausgerichtet sind, könnte ich für "maxSolarPower" und "measuredSolarPower" jeweils die Summe aller Wechselrichter nehmen. Aber das Problem von 1) besteht dann ja weiterhin. D.h. angenommen ich müsste die tatsächliche Produktion auf 50% senken, WR1 läuft auf 600W, WR2 läuft auf 100W, ich schicke an beide das Signal "senke auf 50%", dann läuft WR1 auf 300W und WR2 weiterhin bei 100W. Summe also 400W statt der gewünschten 350W. Aber es geht in die richtige Richtung und diesen Fehler auszumerzen, würde ja alles nur unnötig kompliziert machen.
Wenn ich oben so herauslese, ist das große Ziel ja eh bloß, am Jahresende keinen allzu hohen Wert auf dem 2.8.0-Zähler stehen zu haben, damit es nicht auffällt, dass die Anlage deutlich größer als die angemeldeten 600W ist. Also muß man nur schaffen, die großen Einspeiseleistungen zu verringern, es muß ja nicht genau auf Null ausgeregelt werden. So ein Zielwert von vielleicht -200W wäre eh geschickter im Sinne des Eigenverbrauchs, weil die Regelung ja doch nicht die schnellste ist, bis sie dann mal alle Schritte bis zur Umsetzung im Hoymiles durchlaufen hat. Ich bekomme z.B. 1x pro Minute die Werte des Hauszählers, kann dann reagieren, und die Änderung im Hoymiles hat bei direkter Steuerung via Ahoy auch schon ne Minute gedauert.
Aber wie gesagt, ich stehe ganz am Anfang (der Rasp ist erst einen halben Tag alt und ich mache die ersten Schritte im iobroker usw.), d.h. bis jetzt bin ich eh überrascht, wie gut und mit wie wenig Hindernissen alles läuft. Ein Powerfox liest den Hauszähler, und zur Verifikation lasse ich die Wechselrichterleistungen und die Zählerleistungen via influxdb und grafana anzeigen. Ob das mit der Abregelung jetzt auch vom iobroker aus funktioniert und ob das mit dem Topic geklappt hat, sehe ich hoffentlich heute... Auf jeden Fall schon mal vielen Dank für die Tipps hier!
Lars
-
@lars72
naja, du könntest die Leistung der einzelnen WR ins Verhältnis setzen und die Drosselung entsprechend aufteilen. Wäre ja kein allzu komplizierter Algorhythmus. -
@lars72 vielen Dank für Deine ausführliche Antwort. Auch bei mir misst ein Powerfox, aber auch noch ein Shelly 3EM. Die zwei meiner Anlagen die dies betrifft, sind tatsächlich in Ost/West ausgerichtet. Die Regelung funktioniert mit dem Blockly von @Kymchy mit einem WR bei mir sehr gut. Tatsächlich ist es mein Wunsch, auf dem 2.8.0 Zähler so wenig wie möglich stehen zu haben. Dafür würde ich sogar einen leicht höheren Bezug, als unbedingt nötig in Kauf nehmen. Meine Anlagen passen nämlich auf keinen Balkon mehr. Da sich meine Kentnisse mit dem Script schreiben leider sehr in Grenzen halten, ist der Hinweis von @Kymchy zwar sicher für den einen oder anderen hier hilfreich, hilft mir aber eher weniger. Eventuell hat ja mal noch einer Bedarf dieses umzusetzen und teil dies dann wie @Kymchy hier mit uns.
-
Ich würde meine zukünftige Lösung ja gerne veröffentlichen, aber ich hänge noch fest, weil ich die Drosselung nicht vom iobroker zum Ahoy schicken kann.
Wenn ich das Topic mit mqtt explorer veröffentliche, kann ich es ohne "/" vor ahoy in das Verzeichnis 0 schreiben, und wenn ich den / davor setze, dann kann ich ins Verzeichnis ahoy schreiben. Im Verzeichnis ahoy liegen alle Dinge, die ich von der Ahoy-DTU geschickt bekomme. D.h. die ahoy-DTU sendet unter dem Topic ahoy.
In welchen Ordner muß das rein?Das hier ist das ganz kurze Testskript:
Wenn das gelaufen ist, dann sehe ich zwar in den Objekten, dass der Wert auf 50 geändert wurde, aber der ist rot und beim Maus-over steht auch "bestätigt: false".Muß ich irgendwo noch die IP der Ahoy-DTU eintragen? Oder woher weiß das iobroker-Skript, wo es hin geschickt werden soll?
PS: Habe nun in den Objekten den / am Anfang rausgelöscht, dann erscheint nach dem Durchlaufen des Skripts die "50" kurz grün und dann gleich wieder rot.
Hier der Code des Objekts:
-
@lars72 zum Ahoy kann ich nicht viel beitragen. Da ich ständig das Problem hatte, dass sich das Teil "aufhing" bin ich zu OpenDTU gewechselt und finde es läuft stabiler. Außerdem gibt es dafür einen Adapter, der in den Objekten die nötigen Datenpunkte anlegt die man dann gut ansteuern kann. Hat die Sache für mich viel einfacher gemacht.
-
@lars72 die dürfen gerne rot sein...
-
@lars72 said in Regelung eines Hoymiles Solarinverters (Nulleinspeisung):
Muß ich irgendwo noch die IP der Ahoy-DTU eintragen? Oder woher weiß das iobroker-Skript, wo es hin geschickt werden soll?
das regelt doch alles der MQTT Broker!
-
@tigger66
Danke,aber wie installiere ich denn den OpenDTU-Adapter?
Erledigt, habe es mit Hilfe geschafft... -
@tigger66 sagte in Regelung eines Hoymiles Solarinverters (Nulleinspeisung):
zum Ahoy kann ich nicht viel beitragen. Da ich ständig das Problem hatte, dass sich das Teil "aufhing" bin ich zu OpenDTU gewechselt und finde es läuft stabiler. Außerdem gibt es dafür einen Adapter, der in den Objekten die nötigen Datenpunkte anlegt die man dann gut ansteuern kann. Hat die Sache für mich viel einfacher gemacht.
Hi tigger66,
heißt das wenn du im openDTU Adapter die Leistung reduzierst (set the inverter limit ....) die Werte auch an die openDTU übertragen werden?
Bei mir funktioniert das nicht nur wenn ich über openDTU die Leistung reduziere wird das auch direkt im openDTU Adapter angezeigt.
Viele Grüße