Skip to content

Commit 1407201

Browse files
committed
recognize priority for switch on delay
1 parent 391b96f commit 1407201

5 files changed

Lines changed: 16 additions & 17 deletions

File tree

packages/control/algorithm/algorithm.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ def calc_current(self) -> None:
3333
common.reset_current_to_target_current()
3434
self.additional_current.set_additional_current()
3535
counter.limit_raw_power_left_to_surplus(self.evu_counter.calc_raw_surplus())
36-
self.surplus_controlled.check_switch_on()
3736
if self.evu_counter.data.set.surplus_power_left > 0:
3837
log.info("**PV-geführten Strom setzen**")
3938
common.reset_current_to_target_current()

packages/control/algorithm/integration_test/pv_charging_test.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ def assert_counter_set(params: ParamsExpectedCounterSet):
115115
def test_start_pv_delay(all_cp_pv_charging_3p, all_cp_not_charging, monkeypatch):
116116
# alle 3 im PV-laden, keine Ladung -> bei zwei die Verzögerung starten, für den 3. reicht es nicht
117117
# setup
118-
data.data.counter_data["counter0"].data.set.raw_power_left = 31775
118+
data.data.counter_data["counter0"].data.set.raw_power_left = 31975
119119
data.data.counter_data["counter0"].data.set.raw_currents_left = [32, 30, 31]
120120
data.data.counter_data["counter6"].data.set.raw_currents_left = [16, 12, 14]
121121
data.data.counter_data["counter0"].data.set.reserved_surplus = 0
@@ -127,13 +127,13 @@ def test_start_pv_delay(all_cp_pv_charging_3p, all_cp_not_charging, monkeypatch)
127127
for i in range(3, 6):
128128
assert data.data.cp_data[f"cp{i}"].data.set.current == 0
129129
assert data.data.cp_data[
130-
"cp3"].data.control_parameter.timestamp_switch_on_off == 1652683252.0
130+
"cp3"].data.control_parameter.timestamp_switch_on_off is None
131131
assert data.data.cp_data[
132132
"cp4"].data.control_parameter.timestamp_switch_on_off == 1652683252.0
133133
assert data.data.cp_data[
134-
"cp5"].data.control_parameter.timestamp_switch_on_off is None
135-
assert data.data.counter_data["counter0"].data.set.raw_power_left == 31775
136-
assert data.data.counter_data["counter0"].data.set.surplus_power_left == 9890
134+
"cp5"].data.control_parameter.timestamp_switch_on_off == 1652683252.0
135+
assert data.data.counter_data["counter0"].data.set.raw_power_left == 31975
136+
assert data.data.counter_data["counter0"].data.set.surplus_power_left == 10090.0
137137
assert data.data.counter_data["counter0"].data.set.reserved_surplus == 9000
138138

139139

packages/control/algorithm/min_current.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
import logging
22

3+
from control import data
34
from control.algorithm import common
4-
from control.algorithm.chargemodes import CONSIDERED_CHARGE_MODES_MIN_CURRENT
5+
from control.algorithm.chargemodes import CONSIDERED_CHARGE_MODES_MIN_CURRENT, CONSIDERED_CHARGE_MODES_PV_ONLY
6+
from control.chargepoint.chargepoint_state import ChargepointState
57
from control.loadmanagement import Loadmanagement
68
from control.algorithm.filter_chargepoints import get_chargepoints_by_mode_and_counter
79

@@ -41,5 +43,12 @@ def set_min_current(self) -> None:
4143
cp.data.control_parameter.min_current,
4244
cp)
4345
else:
46+
if mode_tuple in CONSIDERED_CHARGE_MODES_PV_ONLY:
47+
try:
48+
if (cp.data.control_parameter.state == ChargepointState.NO_CHARGING_ALLOWED or
49+
cp.data.control_parameter.state == ChargepointState.SWITCH_ON_DELAY):
50+
data.data.counter_all_data.get_evu_counter().switch_on_threshold_reached(cp)
51+
except Exception:
52+
log.exception(f"Fehler in der PV-gesteuerten Ladung bei {cp.num}")
4453
cp.data.set.current = 0
4554
preferenced_chargepoints.pop(0)

packages/control/algorithm/surplus_controlled.py

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -181,15 +181,6 @@ def phase_switch_necessary() -> bool:
181181
except Exception:
182182
log.exception(f"Fehler in der PV-gesteuerten Ladung bei {cp.num}")
183183

184-
def check_switch_on(self) -> None:
185-
for cp in get_chargepoints_by_chargemodes(CONSIDERED_CHARGE_MODES_PV_ONLY):
186-
try:
187-
if (cp.data.control_parameter.state == ChargepointState.NO_CHARGING_ALLOWED or
188-
cp.data.control_parameter.state == ChargepointState.SWITCH_ON_DELAY):
189-
data.data.counter_all_data.get_evu_counter().switch_on_threshold_reached(cp)
190-
except Exception:
191-
log.exception(f"Fehler in der PV-gesteuerten Ladung bei {cp.num}")
192-
193184
def set_required_current_to_max(self) -> None:
194185
for cp in get_chargepoints_by_chargemodes(CONSIDERED_CHARGE_MODES_SURPLUS):
195186
try:

packages/control/counter.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -262,7 +262,7 @@ def get_usable_surplus(self, feed_in_yield: float) -> float:
262262
SWITCH_ON_MAX_PHASES = "Der Überschuss ist ausreichend, um direkt mit {} Phasen zu laden."
263263

264264
def calc_switch_on_power(self, chargepoint: Chargepoint) -> Tuple[float, float]:
265-
surplus = self.data.set.surplus_power_left - self.data.set.reserved_surplus
265+
surplus = self.calc_raw_surplus() - self.data.set.reserved_surplus
266266
control_parameter = chargepoint.data.control_parameter
267267
pv_config = data.data.general_data.data.chargemode_config.pv_charging
268268

0 commit comments

Comments
 (0)