From a3b20e5d9dfe31bb9fee1437858b9ce0d67d671d Mon Sep 17 00:00:00 2001 From: LKuemmel Date: Mon, 15 Jun 2026 14:15:18 +0200 Subject: [PATCH 1/2] internal chargepoint: extend logging for meter detection --- .../modules/internal_chargepoint_handler/clients.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/packages/modules/internal_chargepoint_handler/clients.py b/packages/modules/internal_chargepoint_handler/clients.py index a161434718..4578b05c88 100644 --- a/packages/modules/internal_chargepoint_handler/clients.py +++ b/packages/modules/internal_chargepoint_handler/clients.py @@ -69,13 +69,19 @@ def find_meter_client(meters: List[meter_config], try: with client: meter_client = meter_type(modbus_id, client, fault_state) - if meter_client.get_voltages()[0] > 200: + voltages = meter_client.get_voltages() + if voltages[0] > 200: with ModifyLoglevelContext(log, logging.DEBUG): log.debug("Verbauter Zähler: "+str(meter_type)+" mit Modbus-ID: "+str(modbus_id)) return meter_client + else: + with ModifyLoglevelContext(log, logging.DEBUG): + log.debug( + f"Zähler {meter_type} mit Modbus-ID:{modbus_id} antwortet, aber Spannung ist nicht plausibel: {voltages}.") except Exception: - log.debug(client) - log.debug(f"Zähler {meter_type} mit Modbus-ID:{modbus_id} antwortet nicht.") + with ModifyLoglevelContext(log, logging.DEBUG): + log.debug(client) + log.debug(f"Zähler {meter_type} mit Modbus-ID:{modbus_id} antwortet nicht.") else: return None From a6a6ec14e5d47f07e852ea2f387ed4fc2d204145 Mon Sep 17 00:00:00 2001 From: LKuemmel Date: Mon, 15 Jun 2026 14:26:29 +0200 Subject: [PATCH 2/2] flake8 --- packages/modules/common/sdm.py | 2 +- .../modules/internal_chargepoint_handler/clients.py | 13 +++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/packages/modules/common/sdm.py b/packages/modules/common/sdm.py index 6fe1cd62ed..cd97fab4f6 100644 --- a/packages/modules/common/sdm.py +++ b/packages/modules/common/sdm.py @@ -61,7 +61,7 @@ def get_power(self) -> Tuple[List[float], float]: power = sum(powers) return powers, power - def get_voltages(self) -> Tuple[List[float], float]: + def get_voltages(self) -> List[float]: # client handler time.sleep(0.1) return self.client.read_input_registers(0x00, [ModbusDataType.FLOAT_32]*3, unit=self.id) diff --git a/packages/modules/internal_chargepoint_handler/clients.py b/packages/modules/internal_chargepoint_handler/clients.py index 4578b05c88..6b8af67aaa 100644 --- a/packages/modules/internal_chargepoint_handler/clients.py +++ b/packages/modules/internal_chargepoint_handler/clients.py @@ -16,8 +16,9 @@ BUS_SOURCES = ("/dev/ttyUSB0", "/dev/ttyUSB1", "/dev/ttyACM0", "/dev/serial0") -METERS = Union[mpm3pm.Mpm3pm, sdm.Sdm630_72, b23.B23] -meter_config = NamedTuple("meter_config", [('type', METERS), ('modbus_id', int)]) +MeterClient = Union[mpm3pm.Mpm3pm, sdm.Sdm630_72, b23.B23] +MeterType = Union[type[mpm3pm.Mpm3pm], type[sdm.Sdm630_72], type[b23.B23]] +meter_config = NamedTuple("meter_config", [('type', MeterType), ('modbus_id', int)]) CP0_METERS = [meter_config(mpm3pm.Mpm3pm, modbus_id=5), meter_config(sdm.Sdm630_72, modbus_id=105), meter_config(b23.B23, modbus_id=201)] @@ -64,11 +65,11 @@ def _evse_factory(self, client: Union[ModbusSerialClient_, ModbusTcpClient_], ev @staticmethod def find_meter_client(meters: List[meter_config], client: Union[ModbusSerialClient_, ModbusTcpClient_], - fault_state: FaultState) -> METERS: + fault_state: FaultState) -> Optional[MeterClient]: for meter_type, modbus_id in meters: try: with client: - meter_client = meter_type(modbus_id, client, fault_state) + meter_client: MeterClient = meter_type(modbus_id, client, fault_state) voltages = meter_client.get_voltages() if voltages[0] > 200: with ModifyLoglevelContext(log, logging.DEBUG): @@ -76,8 +77,8 @@ def find_meter_client(meters: List[meter_config], return meter_client else: with ModifyLoglevelContext(log, logging.DEBUG): - log.debug( - f"Zähler {meter_type} mit Modbus-ID:{modbus_id} antwortet, aber Spannung ist nicht plausibel: {voltages}.") + log.debug(f"Zähler {meter_type} mit Modbus-ID:{modbus_id} antwortet, " + f"aber Spannung ist nicht plausibel: {voltages}.") except Exception: with ModifyLoglevelContext(log, logging.DEBUG): log.debug(client)