Repository navigation
Improve active bat control - #3395
Conversation
There was a problem hiding this comment.
Pull request overview
Diese PR soll verhindern, dass die konfigurierte “erlaubte Entladeleistung” (bat_power_discharge) bei aktivierter Speichersteuerung zusätzlich in die verfügbare Ladeleistung einfließt (und dadurch die resultierende Ladeleistung zu hoch ausfällt).
Changes:
- Einführung einer Erkennung “aktive Speichersteuerung” in
_get_charging_power_left(), um die Berücksichtigung vonbat_power_discharge_activein diesem Fall zu unterdrücken. - Anpassung der Berechnung von
charging_power_leftin zwei SoC/Hysterese-Zweigen.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| if self.data.set.power_limit is None: | ||
| if config.bat_power_discharge_active: | ||
| active_bat_control = (self.data.config.bat_control_permitted and | ||
| self.data.config.bat_control_activated) | ||
| if config.bat_power_discharge_active and not active_bat_control: |
| if self.data.set.power_limit is None: | ||
| if config.bat_power_discharge_active: | ||
| active_bat_control = (self.data.config.bat_control_permitted and | ||
| self.data.config.bat_control_activated) | ||
| if config.bat_power_discharge_active and not active_bat_control: |
| else: | ||
| if self.data.set.power_limit is None: | ||
| if config.bat_power_discharge_active: | ||
| if config.bat_power_discharge_active and not self.data.config.bat_control_activated: |
Ich gehe davon aus, dass das dann genau entgegen dem Verhalten funktioniert, das man eigentlich haben möchte. Ich hatte das Problem hier gemeldet: Es wäre Zeit für eine Grundsatzdiskussion hierzu, da das Problem schon von einigen bemerkt wurde. |
…hs/core into improve-active-bat-control
| if (self.data.config.bat_control_activated and | ||
| self.data.config.power_limit_mode == BatPowerLimitMode.MODE_CHARGE_PV_PRODUCTION.value): | ||
| charging_power_left = 0 | ||
| else: | ||
| charging_power_left = self.data.get.power |
| # set allowed power | ||
| if (self.data.config.bat_control_activated and | ||
| self.data.config.power_limit_mode == | ||
| BatPowerLimitMode.MODE_CHARGE_PV_PRODUCTION.value): | ||
| base_power = 0 | ||
| else: | ||
| base_power = self.data.get.power | ||
|
|
||
| # Aktive Steuerung nicht konfiguriert oder | ||
| # Aktive Steuerung + Preisgrenze aktiv + Grenze nicht unterschritten | ||
| # -> dann erlaubte Speicherentladeleistung addieren | ||
| power_discharge_allowed = (self.data.config.bat_control_activated is False or | ||
| (self.data.config.power_limit_condition == | ||
| BatPowerLimitCondition.PRICE_LIMIT.value and | ||
| self.data.set.power_limit is None)) | ||
| if config.bat_power_discharge_active and power_discharge_allowed: |
| # set allowed power | ||
| if (self.data.config.bat_control_activated and | ||
| self.data.config.power_limit_mode == BatPowerLimitMode.MODE_CHARGE_PV_PRODUCTION.value): | ||
| base_power = 0 | ||
| else: | ||
| base_power = self.data.get.power | ||
|
|
||
| # Aktive Steuerung nicht konfiguriert oder | ||
| # Aktive Steuerung + Preisgrenze aktiv + Grenze nicht unterschritten | ||
| # -> dann erlaubte Speicherentladeleistung addieren | ||
| power_discharge_allowed = (self.data.config.bat_control_activated is False or | ||
| (self.data.config.power_limit_condition == | ||
| BatPowerLimitCondition.PRICE_LIMIT.value and | ||
| self.data.set.power_limit is None)) | ||
| if config.bat_power_discharge_active and power_discharge_allowed: |
| # wenn aktive Speichersteuerung in Höhe PV-Leistung lädt | ||
| # hat Speicher Priorität vor EV-Ladung | ||
| if (self.data.config.bat_control_activated and | ||
| self.data.config.power_limit_mode == BatPowerLimitMode.MODE_CHARGE_PV_PRODUCTION.value): | ||
| charging_power_left = 0 |
|
@cr0i
Doch genau das war die Idee. Die Aktive Speichersteuerung verhindert die Entladung des Speichers. Wenn sie das nicht soll wird sie deaktiviert. Dein Text sagt faktisch , dass die aktive Speichersteuerung im PV-Modus komplett ignoriert werden soll. Deinen Regelwunsch kann man ja ganz einfach lösen indem man Speicher aktiv steuern auf "Nein" setzt. Außer ich übersehe hier etwas essentielles? |
|
Hallo @ndrsnhs , wenn es komplett konfigurierbar wird, ob man den Netzbezug aus dem Speicher oder dem Netz bedienen möchte, ist es natürlich genau richtig. P.S.: Es gibt eine Diskussion, die ggf. dazu passt #3437 |
|
Hi @cr0i ,
Nicht ganz. Mit diesem PR erhält die Aktive Speichersteuerung wirklich Vorrang vor der Passiven. Das ist aus meiner Sicht logisch stringent. Es wird schwer zu erklären warum sich die aktive Speichersteuerung je nach eingestelltem Lademodus komplett anders verhält. Auch Abweichung je nach Einstellung der aktiven Steuerung ist schwer vermittelbar. Nach Preisgrenze hat die aktive Speichersteuerung Vorrang, nach angestecktem Fahrzeug nicht... -> unschön. Die obere Entladeschranke die du angesprochen hast halte ich hier für den besseren Weg. Befindet sich der Speicher in einem definierten Bereich der die Entladung erlaubt, dann tut er das. |
* erlaubte Entladeleistung ignorieren wenn aktive Speichersteuerung eingestellt wurde * remove bat_control_permitted * improve passive bat control * fix identation * better pv handling * fix identation * improve passive bat discharge while active bat control
* erlaubte Entladeleistung ignorieren wenn aktive Speichersteuerung eingestellt wurde * remove bat_control_permitted * improve passive bat control * fix identation * better pv handling * fix identation * improve passive bat discharge while active bat control
Die erlaubte Entladeleistung des Speichers (Speicherbeachtung) wird ignoriert sobald die aktive Speichersteuerung genutzt wird.
So wird verhindert, dass die Ladeleistung zu hoch eingestellt wird (Speicherentladung soll ja aktiv begrenzt werden)