Skip to content

Commit 7380a6c

Browse files
authored
fix control parameter phases if phase switch is not supported (#2727)
* fix control parameter phases if phase switch is not supported * condition for charging ist charge_state * pytest
1 parent 77c6355 commit 7380a6c

File tree

7 files changed

+20
-14
lines changed

7 files changed

+20
-14
lines changed

packages/control/algorithm/common_test.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ def test_set_current_counterdiff(diff: float,
5151
cp.data.control_parameter.required_currents = required_currents
5252
cp.data.set.charging_ev_data = ev
5353
cp.data.set.current = 6
54+
cp.data.get.charge_state = True
5455
cp.data.get.currents = [10]*3
5556
get_counters_to_check_mock = Mock(return_value=["cp0", "cp6"])
5657
monkeypatch.setattr(CounterAll, "get_counters_to_check", get_counters_to_check_mock)

packages/control/algorithm/filter_chargepoints.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ def get_preferenced_chargepoint_charging(
4444
log.info(
4545
f"LP {cp.num}: Keine Zuteilung des Mindeststroms, daher keine weitere Berücksichtigung")
4646
preferenced_chargepoints_without_set_current.append(cp)
47-
elif max(cp.data.get.currents) == 0:
47+
elif cp.data.get.charge_state is False:
4848
log.info(
4949
f"LP {cp.num}: Lädt nicht, daher keine weitere Berücksichtigung")
5050
preferenced_chargepoints_without_set_current.append(cp)

packages/control/algorithm/integration_test/instant_charging_test.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ def all_cp_charging_1p():
2929
for i in range(3, 6):
3030
data.data.cp_data[f"cp{i}"].data.get.currents = [0]*3
3131
data.data.cp_data[f"cp{i}"].data.get.currents[i-3] = 16
32+
data.data.cp_data[f"cp{i}"].data.get.charge_state = True
3233

3334

3435
@pytest.fixture()
@@ -40,6 +41,7 @@ def all_cp_instant_charging_3p():
4041
control_parameter.required_currents = [16]*3
4142
control_parameter.required_current = 16
4243
control_parameter.chargemode = Chargemode.INSTANT_CHARGING
44+
data.data.cp_data[f"cp{i}"].data.get.charge_state = True
4345
data.data.cp_data[f"cp{i}"].data.get.currents = [16]*3
4446

4547

packages/control/algorithm/integration_test/pv_charging_test.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -295,10 +295,13 @@ def test_phase_switch_1p_3p(all_cp_pv_charging_1p, monkeypatch):
295295
data.data.counter_data["counter0"].data.set.raw_power_left = cases_phase_switch[1].raw_power_left
296296
data.data.counter_data["counter0"].data.set.raw_currents_left = cases_phase_switch[1].raw_currents_left_counter0
297297
data.data.counter_data["counter6"].data.set.raw_currents_left = cases_phase_switch[1].raw_currents_left_counter6
298+
data.data.cp_data["cp3"].data.get.charge_state = True
298299
data.data.cp_data["cp3"].data.get.currents = [32, 0, 0]
299300
data.data.cp_data["cp3"].data.get.power = 7360
300301
data.data.cp_data["cp3"].data.control_parameter.timestamp_last_phase_switch = 1652682252
302+
data.data.cp_data["cp4"].data.get.charge_state = False
301303
data.data.cp_data["cp4"].data.get.currents = [0, 0, 0]
304+
data.data.cp_data["cp5"].data.get.charge_state = False
302305
data.data.cp_data["cp5"].data.get.currents = [0, 0, 0]
303306
for i in range(3, 6):
304307
data.data.cp_data[f"cp{i}"].data.control_parameter.template_phases = 0

packages/control/algorithm/surplus_controlled_test.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@ def test_add_unused_evse_current(evse_current: float,
115115
expected_current: float):
116116
# setup
117117
c = Chargepoint(0, None)
118+
c.data.get.charge_state = True
118119
c.data.get.currents = [13]*3
119120
c.data.get.evse_current = evse_current
120121
c.data.control_parameter.required_current = 16

packages/control/chargepoint/chargepoint.py

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -576,18 +576,17 @@ def set_phases(self, phases: int, template_phases: int) -> int:
576576
if phases != self.data.get.phases_in_use:
577577
# Wenn noch kein Eintrag im Protokoll erstellt wurde, wurde noch nicht geladen und die Phase kann noch
578578
# umgeschaltet werden.
579-
if self.data.set.log.imported_since_plugged != 0:
580-
if charging_ev.ev_template.data.prevent_phase_switch:
581-
log.info(f"Phasenumschaltung an Ladepunkt {self.num} nicht möglich, da bei EV"
582-
f"{charging_ev.num} nach Ladestart nicht mehr umgeschaltet werden darf.")
583-
if self.data.get.phases_in_use != 0:
584-
phases = self.data.get.phases_in_use
585-
else:
586-
phases = self.data.control_parameter.phases
587-
elif self.hw_supports_phase_switch() is False:
588-
# sonst passt die Phasenzahl nicht bei Autos, die eine Phase weg schalten.
589-
log.info(f"Phasenumschaltung an Ladepunkt {self.num} wird durch die Hardware nicht unterstützt.")
590-
phases = phases
579+
if self.data.set.log.imported_since_plugged != 0 and charging_ev.ev_template.data.prevent_phase_switch:
580+
log.info(f"Phasenumschaltung an Ladepunkt {self.num} nicht möglich, da bei EV"
581+
f"{charging_ev.num} nach Ladestart nicht mehr umgeschaltet werden darf.")
582+
if self.data.get.phases_in_use != 0:
583+
phases = self.data.get.phases_in_use
584+
else:
585+
phases = self.data.control_parameter.phases
586+
elif self.hw_supports_phase_switch() is False:
587+
# sonst passt die Phasenzahl nicht bei Autos, die eine Phase weg schalten.
588+
log.info(f"Phasenumschaltung an Ladepunkt {self.num} wird durch die Hardware nicht unterstützt.")
589+
phases = self.data.get.phases_in_use
591590
if phases != self.data.control_parameter.phases:
592591
self.data.control_parameter.phases = phases
593592
self.data.control_parameter.template_phases = template_phases

packages/control/chargepoint/get_phases_test.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ def __init__(self,
152152
SetPhasesParams(name="Switch phases", phases=1, phases_in_use=3, prevent_phase_switch=False,
153153
imported_since_plugged=1, phase_switch_supported=True, expected_phases=1),
154154
SetPhasesParams(name="Phase switch not supported by cp", phases=1, phases_in_use=3, prevent_phase_switch=False,
155-
imported_since_plugged=1, phase_switch_supported=False, expected_phases=1)
155+
imported_since_plugged=1, phase_switch_supported=False, expected_phases=3)
156156
]
157157

158158

0 commit comments

Comments
 (0)