diff --git a/packages/control/counter.py b/packages/control/counter.py index 0d1ff56545..136e1484f7 100644 --- a/packages/control/counter.py +++ b/packages/control/counter.py @@ -149,7 +149,7 @@ def setup_counter(self): log.exception("Fehler in der Zähler-Klasse von "+str(self.num)) # tested - def _get_loadmanagement_state(self) -> None: + def _get_loadmanagement_state(self) -> bool: # Wenn der Zähler keine Werte liefert, darf nicht geladen werden. connected_cps = data.data.counter_all_data.get_loads_of_counter(f'counter{self.num}') if self.data.get.fault_state == FaultStateLevel.ERROR: @@ -168,6 +168,8 @@ def _get_loadmanagement_state(self) -> None: f" maximal Ströme von {[int(round(self.data.config.max_power_errorcase/230/3, 0))]*3} A" " genutzt.") return False + else: + return True else: self.data.set.error_timer = None return True diff --git a/packages/control/counter_test.py b/packages/control/counter_test.py index 21b6b7fc01..f84173799b 100644 --- a/packages/control/counter_test.py +++ b/packages/control/counter_test.py @@ -3,6 +3,7 @@ from unittest.mock import Mock import pytest +from helpermodules import timecheck from control import counter as counter_module from control import data from control.chargepoint.chargepoint import Chargepoint @@ -44,6 +45,21 @@ def test_set_loadmanagement_state(fault_state: FaultStateLevel, assert counter.data.set.error_timer == expected_loadmanagement_available +def test_get_loadmanagement_state_within_grace_period_stays_available(monkeypatch, data_): + # setup + connected_cps_mock = Mock(return_value=["cp3", "cp4"]) + monkeypatch.setattr(data.data.counter_all_data, "get_loads_of_counter", connected_cps_mock) + counter = Counter(0) + counter.data.get.fault_state = FaultStateLevel.ERROR + counter.data.set.error_timer = timecheck.create_timestamp() + + # execution + loadmanagement_available = counter._get_loadmanagement_state() + + # evaluation + assert loadmanagement_available is True + + @pytest.mark.parametrize("raw_currents_left, expected_max_exceeding", [pytest.param([32, 32, 15], [0]*3, id="not exceeded"), pytest.param([32, 35, 18], [0]*3, id="not exceeded with export"), diff --git a/packages/modules/devices/rct/rct/rct_lib.py b/packages/modules/devices/rct/rct/rct_lib.py index 2b92c065b5..9d1f1fdbdc 100644 --- a/packages/modules/devices/rct/rct/rct_lib.py +++ b/packages/modules/devices/rct/rct/rct_lib.py @@ -470,14 +470,9 @@ def add_by_id(self, tab, id): def connect_to_server(self): self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self.socket.settimeout(2.0) - try: - self.socket.connect((self.host, self.port)) - log.debug('connect to {} port {}'.format(self.host, self.port)) - return True - except Exception: - print("-"*100) - traceback.print_exc(file=sys.stdout) - return False + self.socket.connect((self.host, self.port)) + log.debug('connect to {} port {}'.format(self.host, self.port)) + return True # this function reads from the socket. # Note: unexpected bytes within buf are discarded.