From c4aefae7241ebf4cd308112b1018931620de6cb9 Mon Sep 17 00:00:00 2001 From: SeaSpotter Date: Fri, 31 Oct 2025 19:54:12 +0100 Subject: [PATCH 1/2] Handle invalid power_total by resetting values Set power_total to 0 and currents to [0, 0, 0] when power_total is not valid. --- packages/modules/devices/sma/sma_sunny_boy/inverter.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/modules/devices/sma/sma_sunny_boy/inverter.py b/packages/modules/devices/sma/sma_sunny_boy/inverter.py index 5d7d095343..425dcbba54 100644 --- a/packages/modules/devices/sma/sma_sunny_boy/inverter.py +++ b/packages/modules/devices/sma/sma_sunny_boy/inverter.py @@ -90,8 +90,9 @@ def read(self) -> InverterState: else: raise ValueError("Unbekannte Version "+str(self.component_config.configuration.version)) if power_total == self.SMA_INT32_NAN or power_total == self.SMA_NAN: - raise ValueError(f'Wechselrichter lieferte nicht plausiblen Leistungswert: {power_total}.') - + power_total = 0 + # Bei keiner AC Wirkleistung müssen auch die Ströme der Phasen 0 sein. + currents = [0, 0, 0] if energy == self.SMA_UINT32_NAN: raise ValueError( f'Wechselrichter lieferte nicht plausiblen Zählerstand: {energy}. ' From bdac7b125e7371eec1f62e8158530b180d79bdda Mon Sep 17 00:00:00 2001 From: SeaSpotter Date: Mon, 3 Nov 2025 08:51:11 +0100 Subject: [PATCH 2/2] Helptext improved Co-authored-by: LKuemmel <76958050+LKuemmel@users.noreply.github.com> --- packages/modules/devices/sma/sma_sunny_boy/inverter.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/modules/devices/sma/sma_sunny_boy/inverter.py b/packages/modules/devices/sma/sma_sunny_boy/inverter.py index 425dcbba54..c391d9aabf 100644 --- a/packages/modules/devices/sma/sma_sunny_boy/inverter.py +++ b/packages/modules/devices/sma/sma_sunny_boy/inverter.py @@ -91,7 +91,7 @@ def read(self) -> InverterState: raise ValueError("Unbekannte Version "+str(self.component_config.configuration.version)) if power_total == self.SMA_INT32_NAN or power_total == self.SMA_NAN: power_total = 0 - # Bei keiner AC Wirkleistung müssen auch die Ströme der Phasen 0 sein. + # WR geht nachts in Standby und gibt einen NaN-Wert für die Leistung aus. currents = [0, 0, 0] if energy == self.SMA_UINT32_NAN: raise ValueError(