diff --git a/packages/modules/devices/alpha_ess/alpha_ess/counter.py b/packages/modules/devices/alpha_ess/alpha_ess/counter.py index 855dddcce8..6bac7a2a4a 100644 --- a/packages/modules/devices/alpha_ess/alpha_ess/counter.py +++ b/packages/modules/devices/alpha_ess/alpha_ess/counter.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 import time -from typing import Callable, Any, TypedDict +from typing import Any, TypedDict from modules.devices.alpha_ess.alpha_ess.config import AlphaEssConfiguration, AlphaEssCounterSetup from modules.common import modbus @@ -32,39 +32,21 @@ def initialize(self) -> None: def update(self): time.sleep(0.1) - counter_state = self.__get_values_factory() - self.store.set(counter_state) - - def __get_values_factory(self) -> Callable[[int], CounterState]: if self.__device_config.source == 0 and self.__device_config.version == 0: - return self.__get_values_before_v123 + power, exported, imported = self.__tcp_client.read_holding_registers( + 0x6, [modbus.ModbusDataType.INT_32] * 3, unit=self.__modbus_id) + exported *= 10 + imported *= 10 + currents = [val / 230 for val in self.__tcp_client.read_holding_registers( + 0x0000, [ModbusDataType.INT_32]*3, unit=self.__modbus_id)] else: - return self.__get_values_since_v123 - - def __get_values_before_v123(self) -> CounterState: - power, exported, imported = self.__tcp_client.read_holding_registers( - 0x6, [modbus.ModbusDataType.INT_32] * 3, unit=self.__modbus_id) - exported *= 10 - imported *= 10 - currents = [val / 230 for val in self.__tcp_client.read_holding_registers( - 0x0000, [ModbusDataType.INT_32]*3, unit=self.__modbus_id)] - - counter_state = CounterState( - currents=currents, - imported=imported, - exported=exported, - power=power - ) - return counter_state - - def __get_values_since_v123(self) -> CounterState: - power = self.__tcp_client.read_holding_registers(0x0021, ModbusDataType.INT_32, unit=self.__modbus_id) - exported, imported = [ - val * 10 for val in self.__tcp_client.read_holding_registers( - 0x0010, [ModbusDataType.INT_32] * 2, unit=self.__modbus_id - )] - currents = [val / 1000 for val in self.__tcp_client.read_holding_registers( - 0x0017, [ModbusDataType.INT_16]*3, unit=self.__modbus_id)] + power = self.__tcp_client.read_holding_registers(0x0021, ModbusDataType.INT_32, unit=self.__modbus_id) + exported, imported = [ + val * 10 for val in self.__tcp_client.read_holding_registers( + 0x0010, [ModbusDataType.INT_32] * 2, unit=self.__modbus_id + )] + currents = [val / 1000 for val in self.__tcp_client.read_holding_registers( + 0x0017, [ModbusDataType.INT_16]*3, unit=self.__modbus_id)] counter_state = CounterState( currents=currents, @@ -72,8 +54,7 @@ def __get_values_since_v123(self) -> CounterState: exported=exported, power=power ) - return counter_state + self.store.set(counter_state) -component_descriptor = ComponentDescriptor( - configuration_factory=AlphaEssCounterSetup) +component_descriptor = ComponentDescriptor(configuration_factory=AlphaEssCounterSetup)