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
1 change: 0 additions & 1 deletion packages/control/algorithm/algorithm.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ def calc_current(self) -> None:
common.reset_current_to_target_current()
self.additional_current.set_additional_current()
counter.limit_raw_power_left_to_surplus(self.evu_counter.calc_raw_surplus())
self.surplus_controlled.check_switch_on()
if self.evu_counter.data.set.surplus_power_left > 0:
log.info("**PV-geführten Strom setzen**")
common.reset_current_to_target_current()
Expand Down
10 changes: 5 additions & 5 deletions packages/control/algorithm/integration_test/pv_charging_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ def assert_counter_set(params: ParamsExpectedCounterSet):
def test_start_pv_delay(all_cp_pv_charging_3p, all_cp_not_charging, monkeypatch):
# alle 3 im PV-laden, keine Ladung -> bei zwei die Verzögerung starten, für den 3. reicht es nicht
# setup
data.data.counter_data["counter0"].data.set.raw_power_left = 31775
data.data.counter_data["counter0"].data.set.raw_power_left = 31975
data.data.counter_data["counter0"].data.set.raw_currents_left = [32, 30, 31]
data.data.counter_data["counter6"].data.set.raw_currents_left = [16, 12, 14]
data.data.counter_data["counter0"].data.set.reserved_surplus = 0
Expand All @@ -127,13 +127,13 @@ def test_start_pv_delay(all_cp_pv_charging_3p, all_cp_not_charging, monkeypatch)
for i in range(3, 6):
assert data.data.cp_data[f"cp{i}"].data.set.current == 0
assert data.data.cp_data[
"cp3"].data.control_parameter.timestamp_switch_on_off == 1652683252.0
"cp3"].data.control_parameter.timestamp_switch_on_off is None
assert data.data.cp_data[
"cp4"].data.control_parameter.timestamp_switch_on_off == 1652683252.0
assert data.data.cp_data[
"cp5"].data.control_parameter.timestamp_switch_on_off is None
assert data.data.counter_data["counter0"].data.set.raw_power_left == 31775
assert data.data.counter_data["counter0"].data.set.surplus_power_left == 9890
"cp5"].data.control_parameter.timestamp_switch_on_off == 1652683252.0
assert data.data.counter_data["counter0"].data.set.raw_power_left == 31975
assert data.data.counter_data["counter0"].data.set.surplus_power_left == 10090.0
assert data.data.counter_data["counter0"].data.set.reserved_surplus == 9000


Expand Down
11 changes: 10 additions & 1 deletion packages/control/algorithm/min_current.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
import logging

from control import data
from control.algorithm import common
from control.algorithm.chargemodes import CONSIDERED_CHARGE_MODES_MIN_CURRENT
from control.algorithm.chargemodes import CONSIDERED_CHARGE_MODES_MIN_CURRENT, CONSIDERED_CHARGE_MODES_PV_ONLY
from control.chargepoint.chargepoint_state import ChargepointState
from control.loadmanagement import Loadmanagement
from control.algorithm.filter_chargepoints import get_chargepoints_by_mode_and_counter

Expand Down Expand Up @@ -41,5 +43,12 @@ def set_min_current(self) -> None:
cp.data.control_parameter.min_current,
cp)
else:
if mode_tuple in CONSIDERED_CHARGE_MODES_PV_ONLY:
try:
if (cp.data.control_parameter.state == ChargepointState.NO_CHARGING_ALLOWED or
cp.data.control_parameter.state == ChargepointState.SWITCH_ON_DELAY):
data.data.counter_all_data.get_evu_counter().switch_on_threshold_reached(cp)
except Exception:
log.exception(f"Fehler in der PV-gesteuerten Ladung bei {cp.num}")
cp.data.set.current = 0
preferenced_chargepoints.pop(0)
9 changes: 0 additions & 9 deletions packages/control/algorithm/surplus_controlled.py
Original file line number Diff line number Diff line change
Expand Up @@ -181,15 +181,6 @@ def phase_switch_necessary() -> bool:
except Exception:
log.exception(f"Fehler in der PV-gesteuerten Ladung bei {cp.num}")

def check_switch_on(self) -> None:
for cp in get_chargepoints_by_chargemodes(CONSIDERED_CHARGE_MODES_PV_ONLY):
try:
if (cp.data.control_parameter.state == ChargepointState.NO_CHARGING_ALLOWED or
cp.data.control_parameter.state == ChargepointState.SWITCH_ON_DELAY):
data.data.counter_all_data.get_evu_counter().switch_on_threshold_reached(cp)
except Exception:
log.exception(f"Fehler in der PV-gesteuerten Ladung bei {cp.num}")

def set_required_current_to_max(self) -> None:
for cp in get_chargepoints_by_chargemodes(CONSIDERED_CHARGE_MODES_SURPLUS):
try:
Expand Down
2 changes: 1 addition & 1 deletion packages/control/counter.py
Original file line number Diff line number Diff line change
Expand Up @@ -262,7 +262,7 @@ def get_usable_surplus(self, feed_in_yield: float) -> float:
SWITCH_ON_MAX_PHASES = "Der Überschuss ist ausreichend, um direkt mit {} Phasen zu laden."

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

Expand Down