From ac5a1b6f01cfccabfd994a32f404bc1a606cd0e9 Mon Sep 17 00:00:00 2001 From: seaspotter Date: Wed, 7 Oct 2026 20:02:57 +0200 Subject: [PATCH] =?UTF-8?q?my-pv=20ACThor/Elwa-E:=20Register-Mapping=20f?= =?UTF-8?q?=C3=BCr=20Leistung/Temperatur=20korrigiert?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Register.POWER/TEMP0/TEMP1/TEMP2 waren in REG_MAPPING als [ModbusDataType.INT_16] (Liste) statt ModbusDataType.INT_16 (einzelner Typ) angegeben. read_holding_registers_bulk() interpretiert eine Liste als "mehrere Register angefordert" und liefert dadurch eine einelementige Liste statt eines Skalars zurück - das führte zu "TypeError: must be real number, not list" in sim_count(), sobald ein Wert ausgelesen wurde. Register.STATUS/STATE waren bereits korrekt (kein Listen-Wrapper), daran orientiert. --- packages/modules/consumers/my_pv/acthor/consumer.py | 8 ++++---- packages/modules/consumers/my_pv/elwa_e/consumer.py | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/modules/consumers/my_pv/acthor/consumer.py b/packages/modules/consumers/my_pv/acthor/consumer.py index 552a4cf7af..f7fe9384e7 100644 --- a/packages/modules/consumers/my_pv/acthor/consumer.py +++ b/packages/modules/consumers/my_pv/acthor/consumer.py @@ -30,10 +30,10 @@ class Register(IntEnum): "E2M3": 6500, "M1": 3000} REG_MAPPING = ( - (Register.POWER, [ModbusDataType.INT_16]), - (Register.TEMP0, [ModbusDataType.INT_16]), - (Register.TEMP1, [ModbusDataType.INT_16]), - (Register.TEMP2, [ModbusDataType.INT_16]), + (Register.POWER, ModbusDataType.INT_16), + (Register.TEMP0, ModbusDataType.INT_16), + (Register.TEMP1, ModbusDataType.INT_16), + (Register.TEMP2, ModbusDataType.INT_16), (Register.STATUS, ModbusDataType.INT_16), ) diff --git a/packages/modules/consumers/my_pv/elwa_e/consumer.py b/packages/modules/consumers/my_pv/elwa_e/consumer.py index eede1a7e37..048ecc3404 100644 --- a/packages/modules/consumers/my_pv/elwa_e/consumer.py +++ b/packages/modules/consumers/my_pv/elwa_e/consumer.py @@ -20,8 +20,8 @@ class Register(IntEnum): REG_MAPPING = ( - (Register.POWER, [ModbusDataType.INT_16]), - (Register.TEMP0, [ModbusDataType.INT_16]), + (Register.POWER, ModbusDataType.INT_16), + (Register.TEMP0, ModbusDataType.INT_16), (Register.STATE, ModbusDataType.INT_16), )