Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion packages/control/algorithm/filter_chargepoints.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@

from control import data
from control.chargemode import Chargemode
from control.chargepoint.chargepoint import Chargepoint
from control.consumer.consumer import Consumer
from control.consumer.usage import ConsumerUsage
from control.load import get_load_str
Expand Down Expand Up @@ -62,7 +63,8 @@ def filter_loads_by_chargemodes(grouped_loads: List[Load],
def filter_active_loads(grouped_loads: List[Load]) -> List[Load]:
active_loads: List[Load] = []
for load in grouped_loads:
if load.data.control_parameter.required_current != 0:
if ((isinstance(load, Chargepoint) and load.data.control_parameter.required_current != 0) or
(isinstance(load, Consumer) and load.data.set.switch_interval_elapsed)):
active_loads.append(load)

return active_loads
Expand Down
1 change: 1 addition & 0 deletions packages/control/algorithm/filter_chargepoints_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -207,6 +207,7 @@ def test_filter_active_loads_removes_loads_with_zero_required_current(
mock_cp1.data.control_parameter.required_current = 0
mock_cp2.data.control_parameter.required_current = 6
mock_consumer3.data.control_parameter.required_current = 1
mock_consumer3.data.set.switch_interval_elapsed = True

# evaluation
active_loads = filter_chargepoints.filter_active_loads([mock_cp1, mock_cp2, mock_consumer3])
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,13 @@ def all_cp_instant_charging_1p():
control_parameter.required_current = 16
control_parameter.chargemode = Chargemode.INSTANT_CHARGING
control_parameter.submode = Chargemode.INSTANT_CHARGING
control_parameter = data.data.consumer_data["consumer7"].data.control_parameter
control_parameter.min_current = 0.5
control_parameter.required_current = 0.5
control_parameter.required_currents = [0.5, 0, 0]
control_parameter.chargemode = Chargemode.INSTANT_CHARGING
control_parameter.submode = Chargemode.INSTANT_CHARGING
consumer = data.data.consumer_data["consumer7"]
consumer.data.control_parameter.min_current = 0.5
consumer.data.control_parameter.required_current = 0.5
consumer.data.control_parameter.required_currents = [0.5, 0, 0]
consumer.data.control_parameter.chargemode = Chargemode.INSTANT_CHARGING
consumer.data.control_parameter.submode = Chargemode.INSTANT_CHARGING
consumer.data.set.switch_interval_elapsed = True


@pytest.fixture()
Expand Down
17 changes: 9 additions & 8 deletions packages/control/algorithm/integration_test/pv_charging_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,14 +25,15 @@ def all_cp_pv_charging_3p():
control_parameter.chargemode = Chargemode.PV_CHARGING
control_parameter.submode = Chargemode.PV_CHARGING
control_parameter.phases = 3
control_parameter = data.data.consumer_data["consumer7"].data.control_parameter
control_parameter.min_current = 0.5
control_parameter.required_current = 0.5
control_parameter.required_currents = [0.5, 0, 0]
control_parameter.phases = 1
control_parameter.chargemode = Chargemode.PV_CHARGING
control_parameter.submode = Chargemode.PV_CHARGING
control_parameter.state = ChargepointState.CHARGING_ALLOWED
consumer = data.data.consumer_data["consumer7"]
consumer.data.control_parameter.min_current = 0.5
consumer.data.control_parameter.required_current = 0.5
consumer.data.control_parameter.required_currents = [0.5, 0, 0]
consumer.data.control_parameter.phases = 1
consumer.data.control_parameter.chargemode = Chargemode.PV_CHARGING
consumer.data.control_parameter.submode = Chargemode.PV_CHARGING
consumer.data.control_parameter.state = ChargepointState.CHARGING_ALLOWED
consumer.data.set.switch_interval_elapsed = True


@pytest.fixture()
Expand Down
3 changes: 2 additions & 1 deletion packages/control/algorithm/surplus_controlled.py
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,8 @@ def set_required_current_to_max(self, grouped_loads: List[Load]) -> None:
CONSIDERED_CHARGE_MODES_BIDI_DISCHARGE):
try:
control_parameter = load.data.control_parameter
if control_parameter.required_current != 0:
if ((isinstance(load, Chargepoint) and control_parameter.required_current != 0) or
(isinstance(load, Consumer) and load.data.set.switch_interval_elapsed)):
required_currents = control_parameter.required_currents
if isinstance(load, Chargepoint):
charging_ev_data = load.data.set.charging_ev_data
Expand Down
2 changes: 1 addition & 1 deletion packages/control/consumer/consumer.py
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ def is_switch_interval_elapsed(self):
def get_parameter(self) -> Tuple[float, Optional[str], Optional[Chargemode], Chargemode]:
if self.data.set.switch_interval_elapsed is False:
log.debug("Intervall für neuen Schaltbefehl nicht abgelaufen.")
return (0,
return (max(self.data.get.currents),
None,
self.data.control_parameter.chargemode,
self.data.control_parameter.submode)
Comment on lines +126 to 129
Expand Down
Loading