ESS Cluster Konfiguration / komisches Verhalten des Clusters?

Hallo,

Habe ein komisches Verhalten bei einem ESS-Cluster, oder ich verstehe es einfach nicht wie man es richtig konfiguriert oder wie man es konfigurieren sollte.

Mein Wunsch wäre ja dass beide Speicher gleichmäßig Entladen und auch bei Sonne wieder laden. Verluste sind für mich da eher zweitrangig.

Habe mittlerweile den Fronius Gen24 steuerbar eingebunden als ESS2. Dieser liegt als Komponente als Managed Symmetric ESS vor.

Der Alte Sunny Island ist ESS1.

Und die beiden sind über den ESS Cluster miteinander verbunden.
meter0 sitzt am Netzanschlusspunkt. Zähler für die Lasten gibt es keinen.

sonst hab ich folgendes Konfiguriert:

Auf ESS0 greifen:
ctrlBalancing0 mit Meter0
ctrlEssTimeOfUseTariff0

auf ESS1 greifen:
EmergencyCapacityReserve0
FixActivePower0
Limit Total Discharge0

auf ESS2
FixActivePower1

zu den Speichern selbst sei noch gesagt. jeder alleine mit meter0 Funktioniert.

Je nachdem was man bei ESS Power einstellt entlädt entweder ein ESS in den Anderen oder einer macht überhaupt nichts.

Das mit dem Laden/Entladen geht meist dann Sogar nach oben bis aufs Leistungsende des Gen24 also 9,4kw.

Vielleicht hat wer eine Idee. was ich Falsch mache oder falsch verstehe.

MFG Daniel

Hallo Daniel,

verantwortlich für die Verteilung der Leistung auf mehrere ESS ist die konfigurierte strategy. Siehe: openems/io.openems.edge.ess.core/src/io/openems/edge/ess/core/power/Config.java at develop · OpenEMS/openems · GitHub

Gruß,
Stefan

Hallo Stefan.

Danke für den Link.

Leider führt diese Einstellung nicht zum gewünschten Effekt. Werd da auch nicht schlau draus welche Strategie zu was führen soll.

Hab heut morgen alles mal durchprobiert. Was das Ergebnis war ist, dass der Fronius auf volle 9,2kw Ladeleistung hochregelt. habs dann nach 10Prozent anstieg vom SOC beendet.

Der PID ändert nur die Geschwindigkeit bis der Fronius dann auf Anschlag läuft.

Könnt es sein dass dem Controller irgendwelche infos Fehlen dass es zu solch einer Reaktion kommt? Bzw Welche brauchen diese Solver denn?

Nach meinem Verständnis sollte Optimize_BY_KEEPING_ALL_EQUAL zum gewünschten Ergebnis einer gleichmäßigen Ladung/Entladung führen.

mfg Daniel

Ja, OPTIMIZE_BY_KEEPING_ALL_EQUAL wäre wohl das, was du möchtest. Aus verschiedenen Gründen kann das aber nicht klappen - z. B. wenn die aktiven Constraints die gleiche Verteilung nicht erlauben. Dann greifen Fallback-Strategien → openems/io.openems.edge.ess.core/src/io/openems/edge/ess/core/power/Solver.java at develop · OpenEMS/openems · GitHub

Im Channel SOLVE_STRATEGY steht, welche Strategy zum jeweiligen Zeitpunkt tatsächlich verwendet wurde.

Hallo Stefan danke für die Antwort.

Leider gibt es noch keine Besserung.

Der Fronius ist voll geladen und natürlich aus dem SMA Speicher raus.

Die Solve Strategy steht auf Optimize by keeping all Equal.

Das einzige Szenario wo die Entladung beider Speicher wirklich funktioniert ist wenn es zu großen Lastwechseln kommt. Also wenn als bsp der Herd 2kw zieht dann wird die Last auch geteilt auf 1,4kw und 0,7kw.

Auszug aus dem Log:
Also es Scheint mal zu arbeiten nur halt leider nicht wie gewünscht.

Channel SET_ACTIVE_POWER2 value: null
6.1.2025, 22:21:16
INFO
io.openems.edge.ess.fronius.ess.FroniusEssImpl
Channel SET_ACTIVE_POWER value: 1
6.1.2025, 22:21:16
INFO
io.openems.edge.ess.fronius.ess.FroniusEssImpl
applyPower(int activePower, int reactivePower) called with activePower=-194, reactivePower=0
6.1.2025, 22:21:16
INFO
io.openems.edge.ess.core.power.Solver

  • Channel [SetActivePowerEquals]+ess0P EQUALS -388
    6.1.2025, 22:21:16
    INFO
    io.openems.edge.ess.core.power.Solver
    Currently active EQUALS constraints
    6.1.2025, 22:21:16
    INFO
    io.openems.edge.controller.debuglog.ControllerDebugLogImpl
    [ctrlDebugLog0] _sum[State:Ok Ess SoC:49 %|L:921 W Grid:-286 W Production:1 W Consumption:636 W] charger0[PV Production Power: 1 W] ctrlEssTimeOfUseTariff0[BALANCING|No Schedule available] ess1[SoC:36 %|L:920 W|Allowed:-18000;18000 W|On-Grid] ess2[SoC:100 %|L:1 W|Allowed:-9200;9200 W|On-Grid/10000 VA] meter0[L:-286 W] timeOfUseTariff0[Price:0.0999 EUR/kWh]

Vielleicht hat noch wer eine Idee wie ich da auf den Fehler drauf komme, oder obs keiner ist und ich das nur falsch verstehe.

oder ist das das Problem dass da bei Konfiguration binding ein Fragezeichen steht?

LG Daniel

Hallo,

ich erinnere mich an diesen Post

Und ich denke, dass genau das hier das Problem beschreibt.

@c.lehne kannst du das bestätigen?

Grüße !

Hallo Sn0w3y, danke dafür.

Nachtrag:
Habe gestern noch ein bisschen Ursachenforschung betrieben. Habe dabei auch den Modbus Parallel zu Openems ausgelesen. Also das was Openems dem Fronius als Befehle schickt und für mich siehts so aus, als wenn der Fronius wirklich das macht was er als vorgabe bekommt. Vorallem dann wenn er lädt steht auch wirklich in den Registern dazu passende Werte.

mfg Daniel

Das heisst nun? Funktioniert aber trotzdem nicht, oder?

Hallo.

Sorry die ungenaue Ausführung.

Testszenario:

  • Konstante last von ca 700w im Haus ohne Laständerung. Haus war komplett aus nur der Server und ein Heizlüfter waren an.
  • Openems ein mit ESS-Cluster aktiv.

Der Sunny Island hat dann als Befehl 900w bekommen. Und der Fronius hat als vorgabe -200 bekommen.

Zum Zeitpunkt des Tests waren beide Ess bei 50Prozent SOC, hab die da händisch hingeladen und damit openems es nicht mitbekommt war zur dem Zeitpunkt der Server aus.

Lg Daniel

Hallo Daniel,

es ist leider schwer nachvollziehbar, woran es konkret scheitert. Finde ich irgendwo den vollständigen Quellcode und die Konfiguration (/etc/openems.d), die gerade läuft?

Wir nutzen den Cluster in vielen Systemen produktiv, d.h. wenn man alles richtig macht, funktioniert es eigentlich auch… :wink:

Zum Testen wäre ggf. auch noch nützlich alle Controller auszuschalten und nur einen Fix Active Power Controller auf den Cluster (vermutlich ess0) wirken zu lassen. Dann hat man weniger Werte, die sich ständig verändern. Alternativ kannst du auch einmal mit dem Fix Active Power Controller Werte jeweils nur für einen Wechselrichter/Speicher vorgeben um zu schauen, ob dieser die Werte einwandfrei übernimmt.

Gruß,
Stefan

die versuche ich gerade wo hochzuladen.

Habe gerade alle Controller gelöscht die unnötig waren und noch ESS0-2, ESS-Cluster und Fix Active Power am laufen gehabt.

Mit FixActivePower auf 6kw lädt der Sunny Island mit 40kwh Speicher mit 2,1kw und der Fronius mit 10kwh Speicher mit 3,1kw was dann am Netzanschlusspunkt genau 6kw ergibt.

Wenn das System nur aus Ess1 oder Ess2 mit dem Balancing controller besteht ohne ESS Cluster dann wird der Speicher auch tadellos gesteuert.also Netzanschlusspunkt ziemlich gut auf 0w.

Quellcode des SunnyIsland ist der unveränderte aus dem Repo.

Fronius Quellcode und Config reich ich noch nach.

Danke für die Antwort.

LG Daniel

Hallo.

hab jetzt endlich mal Zeit gefunden, die gewünschte Konfig, also alles was testweise geändert wurde in Github hochzuladen.

Entschuldigt dass das noch nicht sehr sauber programmiert ist, lerne diese Programmiersprache gerade seit ich mit OpenEms begonnen hab von Grund auf.

Damit eventuell nicht alles durchgesehen werden muss die Änderungen in Kurzform:
SMA: Diverse Werte als Fixwerte vorgegeben, da diese beim Sunny Island 8.0h-11 nicht per modbus übertragen werden.

Fronius ist Mischung aus HTTP Abfrage und Steuerung per Modbus.

Interessant an der Thematik ist zudem wenn der PID Regler von ESS_Power auf aus steht werden beide Speicher einigermaßen gleich geregelt, wenn auch nicht auf 0 des Netzanschlusses. Da wird dann immer auf irgendeinen Wert hin geregelt, wo ich noch nicht weiss wo der herkommt.

mfg Daniel

Ich erinnere nochmal an das hier:

Wäre aber toll, wenn du eine Lösung findest! :slight_smile:

danke Sn0w3y nochmals für den Hinweis.

Wäre mir auch ein Anliegen das gelöst zu bekommen sonst wird’s leider ziemlich teuer beim Netzbetreiber, Thema Zukauf Leistung am Netzanschluss.

das lese ich zum wiederholten male. müsste ich wohl mal mit dem Amperemeter kontrollieren ob ein Lastwechsel sofort passiert. lt anzeige Zähler ist die Ausregelung zum mindest im Cycle fertig und es funktioniert ja wenn ich die jeweiligen ESS standalone betreibe.

Was aber sicher einen Einfluss drauf hat ist der geänderte Länderdatensatz. (andere Regelgeschwindigkeit)

Hättest du eine Idee wie ich das verifizieren könnte ob es sich um das selbe Problem handelt?

Zumindest Reagiert der Fronius schneller als der Sonny Island.

Danke schonmal.

Mit freundlichen Grüßen
Daniel