From 66928b85a9f5794c5b0822d67db39969272b8826 Mon Sep 17 00:00:00 2001 From: LKuemmel Date: Mon, 23 Feb 2026 15:14:43 +0100 Subject: [PATCH 1/2] update write register methode --- .../sample_request_by_component/bat.py | 2 +- .../sample_request_by_device/bat.py | 2 +- packages/modules/devices/solarmax/solarmax/bat.py | 14 +++++++------- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/samples/sample_request_by_component/sample_request_by_component/bat.py b/docs/samples/sample_request_by_component/sample_request_by_component/bat.py index 7a9de128f4..5c5c8d7dd9 100644 --- a/docs/samples/sample_request_by_component/sample_request_by_component/bat.py +++ b/docs/samples/sample_request_by_component/sample_request_by_component/bat.py @@ -45,7 +45,7 @@ def set_power_limit(self, power_limit: Optional[int]) -> None: # Wenn der Speicher die Steuerung der Ladeleistung unterstützt, muss bei Übergabe einer Zahl auf aktive # Speichersteurung umgeschaltet werden, sodass der Speicher mit der übergebenen Leistung lädt/entlädt. Wird # None übergeben, muss der Speicher die Null-Punkt-Ausregelung selbst übernehmen. - self.client.write_registers(reg, power_limit) + self.client.write_register(reg, power_limit) # Wenn der Speicher keine Steuerung der Ladeleistung unterstützt pass diff --git a/docs/samples/sample_request_by_device/sample_request_by_device/bat.py b/docs/samples/sample_request_by_device/sample_request_by_device/bat.py index 2d19e594aa..83cf40e605 100644 --- a/docs/samples/sample_request_by_device/sample_request_by_device/bat.py +++ b/docs/samples/sample_request_by_device/sample_request_by_device/bat.py @@ -42,7 +42,7 @@ def set_power_limit(self, power_limit: Optional[int]) -> None: # Wenn der Speicher die Steuerung der Ladeleistung unterstützt, muss bei Übergabe einer Zahl auf aktive # Speichersteurung umgeschaltet werden, sodass der Speicher mit der übergebenen Leistung lädt/entlädt. Wird # None übergeben, muss der Speicher die Null-Punkt-Ausregelung selbst übernehmen. - self.client.write_registers(reg, power_limit) + self.client.write_register(reg, power_limit) # Wenn der Speicher keine Steuerung der Ladeleistung unterstützt pass diff --git a/packages/modules/devices/solarmax/solarmax/bat.py b/packages/modules/devices/solarmax/solarmax/bat.py index 96364cc257..68eee7b7dd 100644 --- a/packages/modules/devices/solarmax/solarmax/bat.py +++ b/packages/modules/devices/solarmax/solarmax/bat.py @@ -53,24 +53,24 @@ def set_power_limit(self, power_limit: Optional[int]) -> None: if power_limit is None: log.debug("Keine Batteriesteuerung, Selbstregelung durch Wechselrichter") if self.last_mode is not None: - self.__tcp_client.write_registers(142, [0], data_type=ModbusDataType.INT_16, unit=unit) + self.client.write_register(142, [0], data_type=ModbusDataType.INT_16, unit=unit) self.last_mode = None elif power_limit >= 0: # Solarmax kann nicht aktiv laden log.debug("Aktive Batteriesteuerung. Batterie wird auf Stop gesetzt und nicht entladen") - self.__tcp_client.write_registers(140, [0], data_type=ModbusDataType.INT_16, unit=unit) - self.__tcp_client.write_registers(141, [0], data_type=ModbusDataType.INT_16, unit=unit) - self.__tcp_client.write_registers(142, [1], data_type=ModbusDataType.INT_16, unit=unit) + self.client.write_register(140, [0], data_type=ModbusDataType.INT_16, unit=unit) + self.client.write_register(141, [0], data_type=ModbusDataType.INT_16, unit=unit) + self.client.write_register(142, [1], data_type=ModbusDataType.INT_16, unit=unit) self.last_mode = 'stop' elif power_limit < 0: log.debug(f"Aktive Batteriesteuerung. Batterie wird mit {power_limit} W entladen für den Hausverbrauch") - self.__tcp_client.write_registers(142, [1], data_type=ModbusDataType.INT_16, unit=unit) + self.client.write_register(142, [1], data_type=ModbusDataType.INT_16, unit=unit) self.last_mode = 'discharge' # Die maximale Entladeleistung begrenzen auf 5000W, maximaler Wertebereich Modbusregister. power_value = int(min(abs(power_limit), 7000)) log.debug(f"Aktive Batteriesteuerung. Batterie wird mit {power_value} W entladen für den Hausverbrauch") - self.__tcp_client.write_registers(140, [power_value], data_type=ModbusDataType.INT_16, unit=unit) - self.__tcp_client.write_registers(141, [power_value], data_type=ModbusDataType.INT_16, unit=unit) + self.client.write_register(140, [power_value], data_type=ModbusDataType.INT_16, unit=unit) + self.client.write_register(141, [power_value], data_type=ModbusDataType.INT_16, unit=unit) def power_limit_controllable(self) -> bool: return self.component_config.configuration.power_limit_controllable From 7982a41200e528cc29e697cf3690114b26eb80d1 Mon Sep 17 00:00:00 2001 From: LKuemmel Date: Mon, 23 Feb 2026 15:24:38 +0100 Subject: [PATCH 2/2] type --- .../modules/devices/sigenergy/sigenergy/bat.py | 4 ++-- packages/modules/devices/solarmax/solarmax/bat.py | 14 +++++++------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/packages/modules/devices/sigenergy/sigenergy/bat.py b/packages/modules/devices/sigenergy/sigenergy/bat.py index 05c0b0000d..8858eb2289 100644 --- a/packages/modules/devices/sigenergy/sigenergy/bat.py +++ b/packages/modules/devices/sigenergy/sigenergy/bat.py @@ -55,13 +55,13 @@ def set_power_limit(self, power_limit: Optional[int]) -> None: log.debug("Keine Batteriesteuerung, Selbstregelung durch Wechselrichter") if self.last_mode is not None: # Entladesperre ab 5%, Ansonsten Eigenregelung - self.client.write_register(40048, [50], data_type=ModbusDataType.UINT_16, unit=unit) + self.client.write_register(40048, 50, data_type=ModbusDataType.UINT_16, unit=unit) self.last_mode = None else: log.debug("Aktive Batteriesteuerung. Batterie wird auf Stop gesetzt und nicht entladen") if self.last_mode != 'stop': # Entladesperre auch bei 100% SoC - self.client.write_register(40048, [1000], data_type=ModbusDataType.UINT_16, unit=unit) + self.client.write_register(40048, 1000, data_type=ModbusDataType.UINT_16, unit=unit) self.last_mode = 'stop' def power_limit_controllable(self) -> bool: diff --git a/packages/modules/devices/solarmax/solarmax/bat.py b/packages/modules/devices/solarmax/solarmax/bat.py index 68eee7b7dd..16fe483c76 100644 --- a/packages/modules/devices/solarmax/solarmax/bat.py +++ b/packages/modules/devices/solarmax/solarmax/bat.py @@ -53,24 +53,24 @@ def set_power_limit(self, power_limit: Optional[int]) -> None: if power_limit is None: log.debug("Keine Batteriesteuerung, Selbstregelung durch Wechselrichter") if self.last_mode is not None: - self.client.write_register(142, [0], data_type=ModbusDataType.INT_16, unit=unit) + self.client.write_register(142, 0, data_type=ModbusDataType.INT_16, unit=unit) self.last_mode = None elif power_limit >= 0: # Solarmax kann nicht aktiv laden log.debug("Aktive Batteriesteuerung. Batterie wird auf Stop gesetzt und nicht entladen") - self.client.write_register(140, [0], data_type=ModbusDataType.INT_16, unit=unit) - self.client.write_register(141, [0], data_type=ModbusDataType.INT_16, unit=unit) - self.client.write_register(142, [1], data_type=ModbusDataType.INT_16, unit=unit) + self.client.write_register(140, 0, data_type=ModbusDataType.INT_16, unit=unit) + self.client.write_register(141, 0, data_type=ModbusDataType.INT_16, unit=unit) + self.client.write_register(142, 1, data_type=ModbusDataType.INT_16, unit=unit) self.last_mode = 'stop' elif power_limit < 0: log.debug(f"Aktive Batteriesteuerung. Batterie wird mit {power_limit} W entladen für den Hausverbrauch") - self.client.write_register(142, [1], data_type=ModbusDataType.INT_16, unit=unit) + self.client.write_register(142, 1, data_type=ModbusDataType.INT_16, unit=unit) self.last_mode = 'discharge' # Die maximale Entladeleistung begrenzen auf 5000W, maximaler Wertebereich Modbusregister. power_value = int(min(abs(power_limit), 7000)) log.debug(f"Aktive Batteriesteuerung. Batterie wird mit {power_value} W entladen für den Hausverbrauch") - self.client.write_register(140, [power_value], data_type=ModbusDataType.INT_16, unit=unit) - self.client.write_register(141, [power_value], data_type=ModbusDataType.INT_16, unit=unit) + self.client.write_register(140, power_value, data_type=ModbusDataType.INT_16, unit=unit) + self.client.write_register(141, power_value, data_type=ModbusDataType.INT_16, unit=unit) def power_limit_controllable(self) -> bool: return self.component_config.configuration.power_limit_controllable