Skip to content

Commit 72bf0b5

Browse files
committed
move retry_failed_phase_switches and phase_switch_delay to pv charging settings
1 parent e08c0c6 commit 72bf0b5

7 files changed

Lines changed: 45 additions & 35 deletions

File tree

packages/control/chargepoint/chargepoint.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -381,7 +381,7 @@ def _is_phase_switch_required(self) -> bool:
381381
if phase_switch_required:
382382
# Umschaltung fehlgeschlagen
383383
if self.data.set.phases_to_use != self.data.get.phases_in_use:
384-
if data.data.general_data.data.chargemode_config.retry_failed_phase_switches:
384+
if data.data.general_data.data.chargemode_config.pv_charging.retry_failed_phase_switches:
385385
if self.data.control_parameter.failed_phase_switches > self.MAX_FAILED_PHASE_SWITCHES:
386386
phase_switch_required = False
387387
self.set_state_and_log(
@@ -935,9 +935,9 @@ def chargemode_support_phase_switch(self) -> bool:
935935
return (pv_auto_switch or scheduled_auto_switch)
936936

937937
def failed_phase_switches_reached(self) -> bool:
938-
if ((data.data.general_data.data.chargemode_config.retry_failed_phase_switches and
938+
if ((data.data.general_data.data.chargemode_config.pv_charging.retry_failed_phase_switches and
939939
self.data.control_parameter.failed_phase_switches > self.MAX_FAILED_PHASE_SWITCHES) or
940-
(data.data.general_data.data.chargemode_config.retry_failed_phase_switches is False and
940+
(data.data.general_data.data.chargemode_config.pv_charging.retry_failed_phase_switches is False and
941941
self.data.control_parameter.failed_phase_switches == 1)):
942942
self.set_state_and_log(
943943
"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
@@ -307,13 +307,12 @@ def auto_phase_switch(self,
307307
phases_to_use = control_parameter.phases
308308
phases_in_use = control_parameter.phases
309309
pv_config = data.data.general_data.data.chargemode_config.pv_charging
310-
cm_config = data.data.general_data.data.chargemode_config
311310
if charge_template.data.chargemode.pv_charging.feed_in_limit:
312311
feed_in_yield = pv_config.feed_in_yield
313312
else:
314313
feed_in_yield = 0
315314
all_surplus = data.data.counter_all_data.get_evu_counter().get_usable_surplus(feed_in_yield)
316-
delay = cm_config.phase_switch_delay * 60
315+
delay = pv_config.phase_switch_delay * 60
317316
if phases_in_use == 1:
318317
direction_str = f"Umschaltung von 1 auf {max_phases}"
319318
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
@@ -36,6 +36,9 @@ class PvCharging:
3636
"topic": "chargemode_config/pv_charging/min_bat_soc"})
3737
bat_mode: BatConsiderationMode = field(default=BatConsiderationMode.EV_MODE.value, metadata={
3838
"topic": "chargemode_config/pv_charging/bat_mode"})
39+
retry_failed_phase_switches: bool = field(
40+
default=False,
41+
metadata={"topic": "chargemode_config/pv_charging/retry_failed_phase_switches"})
3942
switch_off_delay: int = field(default=60, metadata={
4043
"topic": "chargemode_config/pv_charging/switch_off_delay"})
4144
switch_off_threshold: int = field(default=0, metadata={
@@ -52,12 +55,7 @@ def pv_charging_factory() -> PvCharging:
5255

5356
@dataclass
5457
class ChargemodeConfig:
55-
phase_switch_delay: int = field(default=5, metadata={
56-
"topic": "chargemode_config/phase_switch_delay"})
5758
pv_charging: PvCharging = field(default_factory=pv_charging_factory)
58-
retry_failed_phase_switches: bool = field(
59-
default=False,
60-
metadata={"topic": "chargemode_config/retry_failed_phase_switches"})
6159
unbalanced_load_limit: int = field(
6260
default=18, metadata={"topic": "chargemode_config/unbalanced_load_limit"})
6361
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
@@ -103,21 +103,22 @@ def config_and_state():
103103
if secondary is False:
104104
with ErrorHandlingContext():
105105
chargemode_config = data.data.general_data.data.chargemode_config
106-
parsed_data += ("\n## General Charge Config/ PV ##\n"
107-
f"Phase_Switch_Delay: {chargemode_config.phase_switch_delay} min\n"
108-
f"Retry_Failed_Phase_Switches: {chargemode_config.retry_failed_phase_switches}\n"
109-
f"Control_Range: {chargemode_config.pv_charging.control_range}W\n"
110-
f"Switch_On_Threshold: {chargemode_config.pv_charging.switch_on_threshold}W\n"
111-
f"Switch_On_Delay: {chargemode_config.pv_charging.switch_on_delay}s\n"
112-
f"Switch_Off_Threshold: {chargemode_config.pv_charging.switch_off_threshold}W\n"
113-
f"Switch_Off_Delay: {chargemode_config.pv_charging.switch_off_delay}s\n"
114-
f"Feed_In_Yield: {chargemode_config.pv_charging.feed_in_yield}W\n"
115-
f"Bat_Mode: {chargemode_config.pv_charging.bat_mode}\n"
116-
f"Min_Bat_SoC: {chargemode_config.pv_charging.min_bat_soc}%\n"
117-
f"Bat_Power_Reserve_Active: {chargemode_config.pv_charging.bat_power_reserve_active}\n"
118-
f"Bat_Power_Reserve: {chargemode_config.pv_charging.bat_power_reserve}W\n"
119-
f"Bat_Power_Discharge_Active: {chargemode_config.pv_charging.bat_power_discharge_active}\n"
120-
f"Bat_Power_Discharge: {chargemode_config.pv_charging.bat_power_discharge}W\n")
106+
parsed_data += (
107+
"\n## General Charge Config/ PV ##\n"
108+
f"Phase_Switch_Delay: {chargemode_config.pv_charging.phase_switch_delay} min\n"
109+
f"Retry_Failed_Phase_Switches: {chargemode_config.pv_charging.retry_failed_phase_switches}\n"
110+
f"Control_Range: {chargemode_config.pv_charging.control_range}W\n"
111+
f"Switch_On_Threshold: {chargemode_config.pv_charging.switch_on_threshold}W\n"
112+
f"Switch_On_Delay: {chargemode_config.pv_charging.switch_on_delay}s\n"
113+
f"Switch_Off_Threshold: {chargemode_config.pv_charging.switch_off_threshold}W\n"
114+
f"Switch_Off_Delay: {chargemode_config.pv_charging.switch_off_delay}s\n"
115+
f"Feed_In_Yield: {chargemode_config.pv_charging.feed_in_yield}W\n"
116+
f"Bat_Mode: {chargemode_config.pv_charging.bat_mode}\n"
117+
f"Min_Bat_SoC: {chargemode_config.pv_charging.min_bat_soc}%\n"
118+
f"Bat_Power_Reserve_Active: {chargemode_config.pv_charging.bat_power_reserve_active}\n"
119+
f"Bat_Power_Reserve: {chargemode_config.pv_charging.bat_power_reserve}W\n"
120+
f"Bat_Power_Discharge_Active: {chargemode_config.pv_charging.bat_power_discharge_active}\n"
121+
f"Bat_Power_Discharge: {chargemode_config.pv_charging.bat_power_discharge}W\n")
121122
if secondary is False:
122123
with ErrorHandlingContext():
123124
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
@@ -706,7 +706,7 @@ def process_general_topic(self, msg: mqtt.MQTTMessage):
706706
elif "openWB/set/general/chargemode_config/unbalanced_load_limit" in msg.topic:
707707
self._validate_value(msg, int, [(10, 32)])
708708
elif ("openWB/set/general/chargemode_config/unbalanced_load" in msg.topic or
709-
"openWB/set/general/chargemode_config/retry_failed_phase_switches" in msg.topic or
709+
"openWB/set/general/chargemode_config/pv_charging/retry_failed_phase_switches" in msg.topic or
710710
"openWB/set/general/chargemode_config/pv_charging/bat_power_discharge_active" in msg.topic or
711711
"openWB/set/general/chargemode_config/pv_charging/bat_power_reserve_active" in msg.topic):
712712
self._validate_value(msg, bool)
@@ -717,7 +717,7 @@ def process_general_topic(self, msg: mqtt.MQTTMessage):
717717
self._validate_value(msg, int, [(0, float("inf"))])
718718
elif "openWB/set/general/chargemode_config/pv_charging/switch_off_threshold" in msg.topic:
719719
self._validate_value(msg, float)
720-
elif "openWB/set/general/chargemode_config/phase_switch_delay" in msg.topic:
720+
elif "openWB/set/general/chargemode_config/pv_charging/phase_switch_delay" in msg.topic:
721721
self._validate_value(msg, int, [(5, 60)])
722722
elif "openWB/set/general/chargemode_config/pv_charging/control_range" in msg.topic:
723723
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 = 96
60+
DATASTORE_VERSION = 97
6161

6262
valid_topic = [
6363
"^openWB/bat/config/bat_control_permitted$",
@@ -228,14 +228,14 @@ class UpdateConfig:
228228
"^openWB/general/chargemode_config/pv_charging/switch_on_delay$",
229229
"^openWB/general/chargemode_config/pv_charging/switch_off_threshold$",
230230
"^openWB/general/chargemode_config/pv_charging/switch_off_delay$",
231-
"^openWB/general/chargemode_config/phase_switch_delay$",
231+
"^openWB/general/chargemode_config/pv_charging/phase_switch_delay$",
232232
"^openWB/general/chargemode_config/pv_charging/control_range$",
233233
"^openWB/general/chargemode_config/pv_charging/min_bat_soc$",
234234
"^openWB/general/chargemode_config/pv_charging/bat_power_discharge$",
235235
"^openWB/general/chargemode_config/pv_charging/bat_power_discharge_active$",
236236
"^openWB/general/chargemode_config/pv_charging/bat_power_reserve$",
237237
"^openWB/general/chargemode_config/pv_charging/bat_power_reserve_active$",
238-
"^openWB/general/chargemode_config/retry_failed_phase_switches$",
238+
"^openWB/general/chargemode_config/pv_charging/retry_failed_phase_switches$",
239239
# obsolet, Daten hieraus müssen nach prices/ überführt werden
240240
"^openWB/general/price_kwh$",
241241
"^openWB/general/prices/bat$",
@@ -542,9 +542,9 @@ class UpdateConfig:
542542
("openWB/general/chargemode_config/pv_charging/switch_on_delay", 30),
543543
("openWB/general/chargemode_config/pv_charging/switch_on_threshold", 1500),
544544
("openWB/general/chargemode_config/pv_charging/feed_in_yield", 0),
545-
("openWB/general/chargemode_config/phase_switch_delay", 7),
546-
("openWB/general/chargemode_config/retry_failed_phase_switches",
547-
ChargemodeConfig().retry_failed_phase_switches),
545+
("openWB/general/chargemode_config/pv_charging/phase_switch_delay", 7),
546+
("openWB/general/chargemode_config/pv_charging/retry_failed_phase_switches",
547+
PvCharging().retry_failed_phase_switches),
548548
("openWB/general/chargemode_config/unbalanced_load", False),
549549
("openWB/general/chargemode_config/unbalanced_load_limit", 18),
550550
("openWB/general/control_interval", 10),
@@ -2553,3 +2553,12 @@ def upgrade(topic: str, payload) -> Optional[dict]:
25532553
return {topic: payload}
25542554
self._loop_all_received_topics(upgrade)
25552555
self.__update_topic("openWB/system/datastore_version", 96)
2556+
2557+
def upgrade_datastore_96(self) -> None:
2558+
def upgrade(topic: str, payload) -> Optional[dict]:
2559+
if "openWB/set/general/chargemode_config/retry_failed_phase_switches" == topic:
2560+
return {"openWB/set/general/chargemode_config/pv_charging/retry_failed_phase_switches": payload}
2561+
if "openWB/set/general/chargemode_config/pv_charging/phase_switch_delay" == topic:
2562+
return {"openWB/set/general/chargemode_config/phase_switch_delay": payload}
2563+
self._loop_all_received_topics(upgrade)
2564+
self.__update_topic("openWB/system/datastore_version", 97)

0 commit comments

Comments
 (0)