ich versuche verzweifelt zu verstehen, wie die Verbindung zwischen den Hybrid-Invertern (oder auch Batteriespeichern) und dem ctrlEssTimeOfUseTariff Controller funktioniert.
In meinem Log sehe ich:
ctrlEssTimeOfUseTariff0[DELAY_DISCHARGE] - so weit, so gut.
Die zentrale Frage ist, wie denn dem ESS der DELAY_DISCHARGE State übermittelt wird?
Gibt es im Quellcode vielleicht irgendwo ein Beispiel, wo man sich die TimeOfUseTariff Steuerung eines ESS (beispielhaft) anschauen kann?
Ich habe mir den Controller zwar auch noch nicht im Detail angeguckt, aber am Ende setzen alle ESS-Controller ein oder mehrere “Constraints” der Form (Re-)ActivePower = x, (Re-)ActivePower <= x oder (Re-)ActivePower >= x an die ESS. In dem Time-of-use-Tariff-Controller passiert das hier in Zeile 157:
Im Falle eines nicht-hybriden Inverters ist im Zustand Delay-Discharge as.setPoint() == 0, also setzt er die Constraint ActivePower <= 0, und da positive Leistung Entladung entspricht, heißt das in Worten “Entlade die Batterie nicht”.
Bei hybriden Invertern muss dann natürlich für den Setpoint noch die PV-Erzeugung verrechnet werden.
vielen Dank erst einmal für deine Nachricht.
Ich habe im hybriden ESS default eine (CT-Klemmen) “0-Regelung”.
Im ESS Controller für den Batteryinverter erhalte ich bei DELAY_DISCHARGE als ActivePower-Wert ein 0. Dies allerdings auch im BALANCING…
Ich hätte erwartet, dass mir bei ActivePower ein Wert, der dem Wert der angezeigten Abgabe des ESS entspricht (vielleicht mit umgekehrten Vorzeichen) entspricht.
Ich hoffe es wird klar, wo mein Problem ist? Kein Problem dem ESS ein Entladestopp zu setzen, nur weiß ich nicht worauf ich diesen anstoßen soll.
Wenn ich an z.B. DELAY_DISCHARGE kommen würde, alles easy.
Wenn ich es richtig verstehe, würde die Contstraint in meinem Falle also nur greifen, wenn ich auch die 0-Regelung über OpenEMS machen würde?
Mag aber auch sein, dass ich immer noch einen Knoten irgendwo in meinem Verständnis habe…
vielleicht gibt es ja die Möglichkeit, irgendwie aus einem “Gerätetreiber” heraus auf den EssTimeOfUseTariff State (BALANCING, DELAY_DISCHARGE, etc.) zuzugreifen?
Wenn ja, dann würde das auf einen Schlag alle meine Probleme lösen.