From cf27f1a769d4883728472d91cc204047e29f7a4b Mon Sep 17 00:00:00 2001 From: ndrsnhs Date: Mon, 8 Jun 2026 10:08:18 +0200 Subject: [PATCH] fix registers --- .../modules/devices/solakon/solakon_one/bat.py | 5 +++-- .../devices/solakon/solakon_one/inverter.py | 15 ++++++++++----- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/packages/modules/devices/solakon/solakon_one/bat.py b/packages/modules/devices/solakon/solakon_one/bat.py index 933c0bd339..ba14dd6b29 100644 --- a/packages/modules/devices/solakon/solakon_one/bat.py +++ b/packages/modules/devices/solakon/solakon_one/bat.py @@ -32,9 +32,10 @@ def initialize(self) -> None: def update(self) -> None: unit = self.component_config.configuration.modbus_id - # AC Leistung am Stecker, Batterie aus dem Netz aufladen hat positive Werte, + # Reg 39134 AC Leistung am Stecker, Batterie aus dem Netz aufladen hat positive Werte, # Leistung aus der Batterie und/oder aus PV ins Netz abgeben hat negative Werte - power = self.client.read_holding_registers(39134, ModbusDataType.INT_32, unit=unit) * -1 + # Reg 39237 Battery Combined Power + power = self.client.read_holding_registers(39237, ModbusDataType.INT_32, unit=unit) # SoC Ladezustand der Batterie in % soc = self.client.read_holding_registers(39424, ModbusDataType.INT_16, unit=unit) # gesamte DC Ladung der Batterie in Wh diff --git a/packages/modules/devices/solakon/solakon_one/inverter.py b/packages/modules/devices/solakon/solakon_one/inverter.py index 035fc35e52..5fb3dba968 100644 --- a/packages/modules/devices/solakon/solakon_one/inverter.py +++ b/packages/modules/devices/solakon/solakon_one/inverter.py @@ -29,14 +29,19 @@ def initialize(self) -> None: def update(self) -> None: unit = self.component_config.configuration.modbus_id - # Gesamte DC PV Leistung aller vier MPPT in W - power = self.client.read_holding_registers(39118, ModbusDataType.INT_32, unit=unit) * -1 - # Gesamte DC PV Produktion in Wh - exported = self.client.read_holding_registers(39601, ModbusDataType.UINT_32, unit=unit) * 10 - _, exported = self.peak_filter.check_values(power, None, exported) + # Reg 39134 AC Leistung am Stecker, Batterie aus dem Heimnetz aufladen hat positive Werte, + # Leistung aus der Batterie und/oder aus PV ins Heimnetz abgeben hat negative Werte + power = self.client.read_holding_registers(39134, ModbusDataType.INT_32, unit=unit) * -1 + + # Gesamte Energie am Wechselrichter in Wh + exported = self.client.read_holding_registers(39621, ModbusDataType.UINT_32, unit=unit) * 10 + imported = self.client.read_holding_registers(39625, ModbusDataType.UINT_32, unit=unit) * 10 + + imported, exported = self.peak_filter.check_values(power, imported, exported) inverter_state = InverterState( power=power, + imported=imported, exported=exported ) self.store.set(inverter_state)