From 801718a0fe5e77c64fd8c87c937880feb31dba07 Mon Sep 17 00:00:00 2001 From: SeaSpotter Date: Wed, 27 Aug 2025 20:11:47 +0200 Subject: [PATCH 1/3] Fix for zero currents and power --- packages/modules/common/component_state.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/packages/modules/common/component_state.py b/packages/modules/common/component_state.py index ee856d4e22..bf1a9459d5 100644 --- a/packages/modules/common/component_state.py +++ b/packages/modules/common/component_state.py @@ -71,7 +71,11 @@ def __init__( if _check_none(currents): currents = [0.0]*3 else: - if not ((sum(currents) < 0 and power < 0) or (sum(currents) > 0 and power > 0)): + if not ( + (sum(currents) < 0 and power < 0) or + (sum(currents) > 0 and power > 0) or + (sum(currents) == 0 and power == 0) + ): log.debug("currents sign wrong "+str(currents)) self.currents = currents @@ -131,7 +135,11 @@ def __init__( if _check_none(currents): currents = [0.0]*3 else: - if not ((sum(currents) < 0 and power < 0) or (sum(currents) > 0 and power > 0)): + if not ( + (sum(currents) < 0 and power < 0) or + (sum(currents) > 0 and power > 0) or + (sum(currents) == 0 and power == 0) + ): log.debug("currents sign wrong "+str(currents)) self.currents = currents self.power = power From 1afda2f8ef12c12fe3bf82ea9f4fc6971ade2a5b Mon Sep 17 00:00:00 2001 From: SeaSpotter Date: Wed, 27 Aug 2025 20:17:38 +0200 Subject: [PATCH 2/3] Revert "Fix for zero currents and power" This reverts commit 801718a0fe5e77c64fd8c87c937880feb31dba07. --- packages/modules/common/component_state.py | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/packages/modules/common/component_state.py b/packages/modules/common/component_state.py index bf1a9459d5..ee856d4e22 100644 --- a/packages/modules/common/component_state.py +++ b/packages/modules/common/component_state.py @@ -71,11 +71,7 @@ def __init__( if _check_none(currents): currents = [0.0]*3 else: - if not ( - (sum(currents) < 0 and power < 0) or - (sum(currents) > 0 and power > 0) or - (sum(currents) == 0 and power == 0) - ): + if not ((sum(currents) < 0 and power < 0) or (sum(currents) > 0 and power > 0)): log.debug("currents sign wrong "+str(currents)) self.currents = currents @@ -135,11 +131,7 @@ def __init__( if _check_none(currents): currents = [0.0]*3 else: - if not ( - (sum(currents) < 0 and power < 0) or - (sum(currents) > 0 and power > 0) or - (sum(currents) == 0 and power == 0) - ): + if not ((sum(currents) < 0 and power < 0) or (sum(currents) > 0 and power > 0)): log.debug("currents sign wrong "+str(currents)) self.currents = currents self.power = power From a901f7dc7121728279ac7267ab8e28465f680c43 Mon Sep 17 00:00:00 2001 From: SeaSpotter Date: Thu, 26 Feb 2026 14:02:04 +0100 Subject: [PATCH 3/3] Fix power limit sign in bat control settings --- packages/modules/devices/sma/sma_sunny_boy/bat_smart_energy.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/modules/devices/sma/sma_sunny_boy/bat_smart_energy.py b/packages/modules/devices/sma/sma_sunny_boy/bat_smart_energy.py index ee871c019a..cdb788be2e 100644 --- a/packages/modules/devices/sma/sma_sunny_boy/bat_smart_energy.py +++ b/packages/modules/devices/sma/sma_sunny_boy/bat_smart_energy.py @@ -113,7 +113,7 @@ def set_power_limit(self, power_limit: Optional[int]) -> None: log.debug("Aktive Batteriesteuerung vorhanden. Setze externe Steuerung.") values_to_write = { "Externe_Steuerung": 802, - "Wirkleistungsvorgabe": abs(power_limit) + "Wirkleistungsvorgabe": int(power_limit) * -1 } self._write_registers(values_to_write, unit) self.last_mode = 'limited'