Skip to content

Commit 7988945

Browse files
committed
move retry_failed_phase_switches and phase_switch_delay to pv charging settings
1 parent 241e2be commit 7988945

File tree

7 files changed

+45
-35
lines changed

7 files changed

+45
-35
lines changed

packages/control/chargepoint/chargepoint.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -382,7 +382,7 @@ def _is_phase_switch_required(self) -> bool:
382382
if phase_switch_required:
383383
# Umschaltung fehlgeschlagen
384384
if self.data.set.phases_to_use != self.data.get.phases_in_use:
385-
if data.data.general_data.data.chargemode_config.retry_failed_phase_switches:
385+
if data.data.general_data.data.chargemode_config.pv_charging.retry_failed_phase_switches:
386386
if self.data.control_parameter.failed_phase_switches > self.MAX_FAILED_PHASE_SWITCHES:
387387
phase_switch_required = False
388388
self.set_state_and_log(
@@ -911,9 +911,9 @@ def hw_supports_phase_switch(self) -> bool:
911911
self.data.set.log.imported_since_plugged == 0))
912912

913913
def failed_phase_switches_reached(self) -> bool:
914-
if ((data.data.general_data.data.chargemode_config.retry_failed_phase_switches and
914+
if ((data.data.general_data.data.chargemode_config.pv_charging.retry_failed_phase_switches and
915915
self.data.control_parameter.failed_phase_switches > self.MAX_FAILED_PHASE_SWITCHES) or
916-
(data.data.general_data.data.chargemode_config.retry_failed_phase_switches is False and
916+
(data.data.general_data.data.chargemode_config.pv_charging.retry_failed_phase_switches is False and
917917
self.data.control_parameter.failed_phase_switches == 1)):
918918
self.set_state_and_log(
919919
"Keine Phasenumschaltung, da die maximale Anzahl an Fehlversuchen erreicht wurde. ")

packages/control/chargepoint/chargepoint_test.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,10 @@ def test_is_phase_switch_required(params: Params):
135135
cp.data.get.charge_state = params.charge_state
136136
cp.data.control_parameter.failed_phase_switches = params.failed_phase_switches
137137
data.data_init(Mock())
138-
data.data.general_data.data.chargemode_config.retry_failed_phase_switches = params.retry_failed_phase_switches
138+
# Zeile aufteilen, um Lesbarkeit zu verbessern
139+
data.data.general_data.data.chargemode_config.pv_charging.retry_failed_phase_switches = (
140+
params.retry_failed_phase_switches
141+
)
139142

140143
# evaluation
141144
ret = cp._is_phase_switch_required()

packages/control/ev/ev.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -314,13 +314,12 @@ def auto_phase_switch(self,
314314
phases_to_use = control_parameter.phases
315315
phases_in_use = control_parameter.phases
316316
pv_config = data.data.general_data.data.chargemode_config.pv_charging
317-
cm_config = data.data.general_data.data.chargemode_config
318317
if charge_template.data.chargemode.pv_charging.feed_in_limit:
319318
feed_in_yield = pv_config.feed_in_yield
320319
else:
321320
feed_in_yield = 0
322321
all_surplus = data.data.counter_all_data.get_evu_counter().get_usable_surplus(feed_in_yield)
323-
delay = cm_config.phase_switch_delay * 60
322+
delay = pv_config.phase_switch_delay * 60
324323
if phases_in_use == 1:
325324
direction_str = f"Umschaltung von 1 auf {max_phases}"
326325
required_reserved_power = (control_parameter.min_current * max_phases * 230 -

packages/control/general.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,9 @@ class PvCharging:
3838
"topic": "chargemode_config/pv_charging/max_bat_soc"})
3939
bat_mode: BatConsiderationMode = field(default=BatConsiderationMode.EV_MODE.value, metadata={
4040
"topic": "chargemode_config/pv_charging/bat_mode"})
41+
retry_failed_phase_switches: bool = field(
42+
default=False,
43+
metadata={"topic": "chargemode_config/pv_charging/retry_failed_phase_switches"})
4144
switch_off_delay: int = field(default=60, metadata={
4245
"topic": "chargemode_config/pv_charging/switch_off_delay"})
4346
switch_off_threshold: int = field(default=0, metadata={
@@ -54,12 +57,7 @@ def pv_charging_factory() -> PvCharging:
5457

5558
@dataclass
5659
class ChargemodeConfig:
57-
phase_switch_delay: int = field(default=5, metadata={
58-
"topic": "chargemode_config/phase_switch_delay"})
5960
pv_charging: PvCharging = field(default_factory=pv_charging_factory)
60-
retry_failed_phase_switches: bool = field(
61-
default=False,
62-
metadata={"topic": "chargemode_config/retry_failed_phase_switches"})
6361
unbalanced_load_limit: int = field(
6462
default=18, metadata={"topic": "chargemode_config/unbalanced_load_limit"})
6563
unbalanced_load: bool = field(default=False, metadata={

packages/helpermodules/create_debug.py

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -111,21 +111,22 @@ def config_and_state():
111111
if secondary is False:
112112
with ErrorHandlingContext():
113113
chargemode_config = data.data.general_data.data.chargemode_config
114-
parsed_data += ("\n## General Charge Config/ PV ##\n"
115-
f"Phase_Switch_Delay: {chargemode_config.phase_switch_delay} min\n"
116-
f"Retry_Failed_Phase_Switches: {chargemode_config.retry_failed_phase_switches}\n"
117-
f"Control_Range: {chargemode_config.pv_charging.control_range}W\n"
118-
f"Switch_On_Threshold: {chargemode_config.pv_charging.switch_on_threshold}W\n"
119-
f"Switch_On_Delay: {chargemode_config.pv_charging.switch_on_delay}s\n"
120-
f"Switch_Off_Threshold: {chargemode_config.pv_charging.switch_off_threshold}W\n"
121-
f"Switch_Off_Delay: {chargemode_config.pv_charging.switch_off_delay}s\n"
122-
f"Feed_In_Yield: {chargemode_config.pv_charging.feed_in_yield}W\n"
123-
f"Bat_Mode: {chargemode_config.pv_charging.bat_mode}\n"
124-
f"Min_Bat_SoC: {chargemode_config.pv_charging.min_bat_soc}%\n"
125-
f"Bat_Power_Reserve_Active: {chargemode_config.pv_charging.bat_power_reserve_active}\n"
126-
f"Bat_Power_Reserve: {chargemode_config.pv_charging.bat_power_reserve}W\n"
127-
f"Bat_Power_Discharge_Active: {chargemode_config.pv_charging.bat_power_discharge_active}\n"
128-
f"Bat_Power_Discharge: {chargemode_config.pv_charging.bat_power_discharge}W\n")
114+
parsed_data += (
115+
"\n## General Charge Config/ PV ##\n"
116+
f"Phase_Switch_Delay: {chargemode_config.pv_charging.phase_switch_delay} min\n"
117+
f"Retry_Failed_Phase_Switches: {chargemode_config.pv_charging.retry_failed_phase_switches}\n"
118+
f"Control_Range: {chargemode_config.pv_charging.control_range}W\n"
119+
f"Switch_On_Threshold: {chargemode_config.pv_charging.switch_on_threshold}W\n"
120+
f"Switch_On_Delay: {chargemode_config.pv_charging.switch_on_delay}s\n"
121+
f"Switch_Off_Threshold: {chargemode_config.pv_charging.switch_off_threshold}W\n"
122+
f"Switch_Off_Delay: {chargemode_config.pv_charging.switch_off_delay}s\n"
123+
f"Feed_In_Yield: {chargemode_config.pv_charging.feed_in_yield}W\n"
124+
f"Bat_Mode: {chargemode_config.pv_charging.bat_mode}\n"
125+
f"Min_Bat_SoC: {chargemode_config.pv_charging.min_bat_soc}%\n"
126+
f"Bat_Power_Reserve_Active: {chargemode_config.pv_charging.bat_power_reserve_active}\n"
127+
f"Bat_Power_Reserve: {chargemode_config.pv_charging.bat_power_reserve}W\n"
128+
f"Bat_Power_Discharge_Active: {chargemode_config.pv_charging.bat_power_discharge_active}\n"
129+
f"Bat_Power_Discharge: {chargemode_config.pv_charging.bat_power_discharge}W\n")
129130
if secondary is False:
130131
with ErrorHandlingContext():
131132
parsed_data += f"\n## Hierarchy ##\n{get_hierarchy(data.data.counter_all_data.data.get.hierarchy)}\n"

packages/helpermodules/setdata.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -731,7 +731,7 @@ def process_general_topic(self, msg: mqtt.MQTTMessage):
731731
elif "openWB/set/general/chargemode_config/unbalanced_load_limit" in msg.topic:
732732
self._validate_value(msg, int, [(10, 32)])
733733
elif ("openWB/set/general/chargemode_config/unbalanced_load" in msg.topic or
734-
"openWB/set/general/chargemode_config/retry_failed_phase_switches" in msg.topic or
734+
"openWB/set/general/chargemode_config/pv_charging/retry_failed_phase_switches" in msg.topic or
735735
"openWB/set/general/chargemode_config/pv_charging/bat_power_discharge_active" in msg.topic or
736736
"openWB/set/general/chargemode_config/pv_charging/bat_power_reserve_active" in msg.topic):
737737
self._validate_value(msg, bool)
@@ -742,7 +742,7 @@ def process_general_topic(self, msg: mqtt.MQTTMessage):
742742
self._validate_value(msg, int, [(0, float("inf"))])
743743
elif "openWB/set/general/chargemode_config/pv_charging/switch_off_threshold" in msg.topic:
744744
self._validate_value(msg, float)
745-
elif "openWB/set/general/chargemode_config/phase_switch_delay" in msg.topic:
745+
elif "openWB/set/general/chargemode_config/pv_charging/phase_switch_delay" in msg.topic:
746746
self._validate_value(msg, int, [(5, 60)])
747747
elif "openWB/set/general/chargemode_config/pv_charging/control_range" in msg.topic:
748748
self._validate_value(msg, int, collection=list)

packages/helpermodules/update_config.py

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040
from control.ev.charge_template import EcoCharging, get_charge_template_default
4141
from control.ev import ev
4242
from control.ev.ev_template import EvTemplateData
43-
from control.general import ChargemodeConfig, Prices
43+
from control.general import Prices, PvCharging
4444
from control.optional_data import Ocpp
4545
from modules.common.abstract_vehicle import GeneralVehicleConfig
4646
from modules.common.component_type import ComponentType
@@ -57,7 +57,7 @@
5757

5858
class UpdateConfig:
5959

60-
DATASTORE_VERSION = 100
60+
DATASTORE_VERSION = 101
6161

6262
valid_topic = [
6363
"^openWB/bat/config/bat_control_permitted$",
@@ -230,15 +230,15 @@ class UpdateConfig:
230230
"^openWB/general/chargemode_config/pv_charging/switch_on_delay$",
231231
"^openWB/general/chargemode_config/pv_charging/switch_off_threshold$",
232232
"^openWB/general/chargemode_config/pv_charging/switch_off_delay$",
233-
"^openWB/general/chargemode_config/phase_switch_delay$",
233+
"^openWB/general/chargemode_config/pv_charging/phase_switch_delay$",
234234
"^openWB/general/chargemode_config/pv_charging/control_range$",
235235
"^openWB/general/chargemode_config/pv_charging/min_bat_soc$",
236236
"^openWB/general/chargemode_config/pv_charging/max_bat_soc$",
237237
"^openWB/general/chargemode_config/pv_charging/bat_power_discharge$",
238238
"^openWB/general/chargemode_config/pv_charging/bat_power_discharge_active$",
239239
"^openWB/general/chargemode_config/pv_charging/bat_power_reserve$",
240240
"^openWB/general/chargemode_config/pv_charging/bat_power_reserve_active$",
241-
"^openWB/general/chargemode_config/retry_failed_phase_switches$",
241+
"^openWB/general/chargemode_config/pv_charging/retry_failed_phase_switches$",
242242
# obsolet, Daten hieraus müssen nach prices/ überführt werden
243243
"^openWB/general/price_kwh$",
244244
"^openWB/general/prices/bat$",
@@ -546,9 +546,9 @@ class UpdateConfig:
546546
("openWB/general/chargemode_config/pv_charging/switch_on_delay", 30),
547547
("openWB/general/chargemode_config/pv_charging/switch_on_threshold", 1500),
548548
("openWB/general/chargemode_config/pv_charging/feed_in_yield", 0),
549-
("openWB/general/chargemode_config/phase_switch_delay", 7),
550-
("openWB/general/chargemode_config/retry_failed_phase_switches",
551-
ChargemodeConfig().retry_failed_phase_switches),
549+
("openWB/general/chargemode_config/pv_charging/phase_switch_delay", 7),
550+
("openWB/general/chargemode_config/pv_charging/retry_failed_phase_switches",
551+
PvCharging().retry_failed_phase_switches),
552552
("openWB/general/chargemode_config/unbalanced_load", False),
553553
("openWB/general/chargemode_config/unbalanced_load_limit", 18),
554554
("openWB/general/control_interval", 10),
@@ -2600,3 +2600,12 @@ def upgrade_datastore_99(self) -> None:
26002600

26012601
self.__update_topic("openWB/general/chargemode_config/pv_charging/max_bat_soc", min_bat_soc)
26022602
self.__update_topic("openWB/system/datastore_version", 100)
2603+
2604+
def upgrade_datastore_100(self) -> None:
2605+
def upgrade(topic: str, payload) -> Optional[dict]:
2606+
if "openWB/set/general/chargemode_config/retry_failed_phase_switches" == topic:
2607+
return {"openWB/set/general/chargemode_config/pv_charging/retry_failed_phase_switches": payload}
2608+
if "openWB/set/general/chargemode_config/pv_charging/phase_switch_delay" == topic:
2609+
return {"openWB/set/general/chargemode_config/phase_switch_delay": payload}
2610+
self._loop_all_received_topics(upgrade)
2611+
self.__update_topic("openWB/system/datastore_version", 101)

0 commit comments

Comments
 (0)