-
Notifications
You must be signed in to change notification settings - Fork 107
Sonnen: deactivate bat control once #3122
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
ndrsnhs
commented
Feb 2, 2026
- Speichersteuerung für Sonnen nur einmalig und nicht in jedem Zyklus deaktivieren
LKuemmel
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Wenn es nur zwei Zustände gibt, passt ein bool-Wert besser. Oder wenn die Zustände in allen Modulen gleich sein soll, ein gemeinsames Enum.
|
Bei Solaredge deaktiviere ich den Remote Modus nur noch nach einer aktiven Steuerung durch openWB. |
|
Danke für den Input @cr0i |
|
Die Idee damals dahinter - und heute noch immer - ist ja aber, dass es einen undefinierten Zustand geben kann, weil eine externe Steuerung gerade eingreift oder aber es z.B. einen Absturz/Update von openWB gab. Woher weiß man dann in welchem Steuermodus der Speicher gerade ist? Ein Abfragen ist auch nicht immer möglich je nach Speicherhersteller. In meinen Augen ist das einmalige Setzen in einen definierten Zustand (so wie es aktuell ja auch passiert) der einzige richtige Weg. Das muss man eben akzeptieren, dass ich auch bei einer gewählten Speichersteuerung durch openWB einmalig beim Neustart einen definierten Zustand setze. |
|
@seaspotter ich sehe den undefinierten Zustand eher als Trick um einen Neustart der openWB zu erkennen. Im laufenden Betrieb tritt er ja nicht mehr auf. |
|
Ich hatte damals absichtlich nicht diese "last_mode" Implementation der anderen Module verwendet, da das Problem einen Schritt vorher gelöst werden muss. Wenn openWB den Speicher nicht regeln soll, dann darf weder bei einem Neustart noch irgendwann zwischendurch der Modus des Speichers gesetzt werden. Das sollte vor dem Aufruf des jeweiligen Speichermoduls bereits geprüft werden und so waren wir damals eigentlich auch verblieben. Wundert mich jetzt etwas, dass es doch anders umgesetzt werden soll. |
|
@benderl du bekommst den last_mode leider nicht komplett aus den Modulen raus (zumindest was den Mode None angeht). Es gibt Speicher bei denen zyklisch geschrieben werden muss, damit sich der Status nicht eigenständig zurücksetzt, es gibt aber ebenso Komponenten bei denen nur einmal auf Eigenregelung gesetzt wird. Über den aktuellen last_mode lässt sich die herstellerspezifische Ansteuerung recht gut umsetzen. Für mich klang es in erster Instanz einfacher dort noch den aktuellen Status der Speichersteuerung (An/ Aus) zu prüfen und entsprechend zu agieren. |
|
Der last_mode hatte ja ursprünglich im ersten Schritt eine ganz andere Bedeutung: Nämlich das ich nicht permanent in die Modbus Register des Speichers schreiben muss, selbst wenn sich gar nichts ändert. Ansonsten wäre im Regelzyklus "none" oder "stop" oder eben ein Wert für Entladung bzw. Ladung regelmäßig geschrieben worden. Das wollte ich damals mit dem last_mode eben vermeiden. Bei Übergabe eines Werts ändert der sich ja erwartungsgemäß auch regelmäig bzw. ist selten identisch über lange Zeit, aber eben bei einer "0" oder dem "none". Zusammengefasst:
Wobei bei letzterem: braucht es dann noch ein "last_mode=undefined"? Ansonsten weiß man ja auch nicht wie der last_mode gerade steht? |
Das war eigentlich der Fall, den ich benötige und gemeint habe. Aktuell wird trotz komplett deaktivierter Steuerung mindestens 1x nach einem Neustart der Speicher auf Eigenregelung gesetzt. Eine eventuell extern laufende Steuerung wird dadurch ausgehebelt. Das sollte dringend übergeordnet in der Regelung behoben werden. Wenn die openWB denn aktiv steuern soll, ist es ja legitim vorauszusetzen, dass es keine externe Steuerung gibt, welche gestört werden kann. |
|
Wenn power_limit = None nur einmalig gesendet wird, um die Steuerung durch openWB zu beenden wäre es ideal. Was ich auch noch für sehr wichtig halte: |
Wie oben schon geschrieben von Andreas, es gibt Speicher die nach Zeit X (timeout) automatisch in den Eigenregelmodbus zurückgesetzt werden wenn keine erneute Anforderung für eine externe Steuerung kommt. Dafür braucht es eben im Regelzyklus ein permanentes power_limit und nicht nur ein einmaliges. Manch andere brauchen das nicht, da kann man es mit dem last_mode abfangen. Die Eigenheit mehrere Speicher an einem WR mit unterschiedlicher Ansteuerung gibt es m.W.n. nur bei Solaredge, alle anderen Hersteller sagen ein Speicher pro WR oder alle angeschlossenen Speicher fungieren nach Aussen als ein Speicher. |
Die openWB "merkt" ja, wenn sich der Speicher nicht wunschgemäß verhält, dann soll der Wert natürlich wieder übergeben werden, bis er "artig" ist. Das meinte ich oben mit (Power <> 0).
2 Speicher an einem WR, wie bei SolarEdge ist unkritisch, da ist immer nur einer gleichzeitig aktiv, bzw. es steuert m.E. der Main-WR den Wert. |
Es gibt aktuell keine Kontrolle ob die übergebenen Werte seitens openWB auch so umgesetzt wird in der Speichersteuerung. Es wird auch kein Fehler ausgegeben und gegengesteuert. Insofern "merkt" da niemand etwas, ausser der User der ggf. davor sitzt und das gegenprüft.
Das ist technisch aktuell gar nicht möglich, da sich 2 Speicher unterschiedlicher Hersteller permanent den Überschuss wegnehmen würden, es würde eine unendliche Regelschleife geben. Weil die beiden Speicher gar nichts voneinander wissen, war auch schon oft Thema im Forum. Das geht nur wenn es ein externen EMS gibt welches die Steuerung beider (oder mehrerer) Speicher komplett übernimmt und steuert welcher Speicher nun lädt und welcher entlädt. Zukunftsmusik für openWB z.B. |
|
Dann macht es vermutlich keinen Sinn, bei power_limit = 0 oder beim Laden Schreibzugriffe zu reduzieren, das werden die Systeme schon überleben, ist ja nur während der Steuerung. Dass es die Überwachung (noch) nicht gibt, ist klar, könnte übergeordnet aber abgefragt werden, da die Werte des Speichers dort ja vorliegen. Aber wenn man alle 60 Sekunden eingreifen muss, braucht man darauf keine Energie zu verschwenden. |