Skip to content

Commit 4e03cb2

Browse files
committed
Revert "scheduled charging: consider soc request interval for 1p3p decision (openWB#2496)"
This reverts commit de81b67.
1 parent 549fc43 commit 4e03cb2

3 files changed

Lines changed: 15 additions & 21 deletions

File tree

packages/control/ev/charge_template.py

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -308,8 +308,7 @@ def scheduled_charging_recent_plan(self,
308308
phase_switch_supported: bool,
309309
charging_type: str,
310310
chargemode_switch_timestamp: float,
311-
control_parameter: ControlParameter,
312-
soc_request_interval_offset: int) -> Optional[SelectedPlan]:
311+
control_parameter: ControlParameter) -> Optional[SelectedPlan]:
313312
plans_diff_end_date = []
314313
for p in self.data.chargemode.scheduled_charging.plans:
315314
if p.active:
@@ -342,7 +341,7 @@ def scheduled_charging_recent_plan(self,
342341

343342
remaining_time, missing_amount, phases, duration = self._calc_remaining_time(
344343
plan, plan_end_time, soc, ev_template, used_amount, max_hw_phases, phase_switch_supported,
345-
charging_type, control_parameter.phases, soc_request_interval_offset)
344+
charging_type, control_parameter.phases)
346345

347346
return SelectedPlan(remaining_time=remaining_time,
348347
duration=duration,
@@ -361,8 +360,7 @@ def _calc_remaining_time(self,
361360
max_hw_phases: int,
362361
phase_switch_supported: bool,
363362
charging_type: str,
364-
control_parameter_phases: int,
365-
soc_request_interval_offset: int) -> SelectedPlan:
363+
control_parameter_phases) -> SelectedPlan:
366364
if plan.phases_to_use == 0:
367365
if max_hw_phases == 1:
368366
duration, missing_amount = self._calculate_duration(
@@ -382,9 +380,7 @@ def _calc_remaining_time(self,
382380
duration_1p, missing_amount = self._calculate_duration(
383381
plan, soc, ev_template.data.battery_capacity, used_amount, 1, charging_type, ev_template)
384382
remaining_time_1p = plan_end_time - duration_1p
385-
# Kurz vor dem nächsten Abfragen des SoC, wenn noch der alte SoC da ist, kann es sein, dass die Zeit
386-
# für 1p nicht mehr reicht, weil die Regelung den neuen SoC noch nicht kennt.
387-
if remaining_time_1p - (soc_request_interval_offset if plan.limit.selected == "soc" else 0) < 0:
383+
if remaining_time_1p < 0:
388384
# Zeit reicht nicht mehr für einphasiges Laden
389385
remaining_time = remaining_time_3p
390386
duration = duration_3p
@@ -470,8 +466,6 @@ def scheduled_charging_calc_current(self,
470466
else:
471467
plan_current = plan.dc_current
472468
max_current = ev_template.data.dc_max_current
473-
if plan.limit.selected != "soc":
474-
soc_request_interval_offset = 0
475469
log.debug("Verwendeter Plan: "+str(plan.name))
476470
if limit.selected == "soc" and soc >= limit.soc_limit and soc >= limit.soc_scheduled:
477471
message = self.SCHEDULED_CHARGING_REACHED_LIMIT_SOC

packages/control/ev/charge_template_test.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ def test_scheduled_charging_recent_plan(params: Params, monkeypatch):
158158

159159
# execution
160160
remaining_time, missing_amount, phases, duration = ct._calc_remaining_time(
161-
plan, 6000, 50, evt, 3000, max_hw_phases, phase_switch_supported, ChargingType.AC.value, 2, 0)
161+
plan, 6000, 50, evt, 3000, max_hw_phases, phase_switch_supported, ChargingType.AC.value, 2)
162162
# end time 16.5.22 10:00
163163

164164
# evaluation
@@ -211,7 +211,7 @@ def test_search_plan(check_duration_return1: Tuple[Optional[float], bool],
211211

212212
# execution
213213
selected_plan = ct.scheduled_charging_recent_plan(
214-
60, EvTemplate(), 3, 200, 3, True, ChargingType.AC.value, 1652688000, Mock(spec=ControlParameter), 0)
214+
60, EvTemplate(), 3, 200, 3, True, ChargingType.AC.value, 1652688000, Mock(spec=ControlParameter))
215215

216216
# evaluation
217217
if expected_plan_num is None:
@@ -235,7 +235,7 @@ def test_scheduled_charging_recent_plan_fulfilled(monkeypatch):
235235

236236
# execution
237237
selected_plan = ct.scheduled_charging_recent_plan(
238-
60, EvTemplate(), 3, 1200, 3, True, ChargingType.AC.value, 1652688000, Mock(spec=ControlParameter), 0)
238+
60, EvTemplate(), 3, 1200, 3, True, ChargingType.AC.value, 1652688000, Mock(spec=ControlParameter))
239239

240240
# evaluation
241241
if selected_plan:

packages/control/ev/ev.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -147,12 +147,6 @@ def get_required_current(self,
147147
required_current, submode, message = charge_template.stop()
148148
phases = control_parameter.phases or max_phases_hw
149149
else:
150-
# Wenn der SoC ein paar Minuten alt ist, kann der Termin trotzdem gehalten werden.
151-
# Zielladen kann nicht genauer arbeiten, als das Abfrageintervall vom SoC.
152-
if self.soc_module:
153-
soc_request_interval_offset = self.soc_module.general_config.request_interval_charging
154-
else:
155-
soc_request_interval_offset = 0
156150
if charge_template.data.chargemode.selected == "scheduled_charging":
157151
plan_data = charge_template.scheduled_charging_recent_plan(
158152
self.data.get.soc,
@@ -163,9 +157,15 @@ def get_required_current(self,
163157
phase_switch_supported,
164158
charging_type,
165159
chargemode_switch_timestamp,
166-
control_parameter,
167-
soc_request_interval_offset)
160+
control_parameter)
161+
soc_request_interval_offset = 0
168162
if plan_data:
163+
# Wenn der SoC ein paar Minuten alt ist, kann der Termin trotzdem gehalten werden.
164+
# Zielladen kann nicht genauer arbeiten, als das Abfrageintervall vom SoC.
165+
if (self.soc_module and
166+
charge_template.data.chargemode.
167+
scheduled_charging.plans[str(plan_data.plan.id)].limit.selected == "soc"):
168+
soc_request_interval_offset = self.soc_module.general_config.request_interval_charging
169169
control_parameter.current_plan = plan_data.plan.id
170170
else:
171171
control_parameter.current_plan = None

0 commit comments

Comments
 (0)