From 04ba868b37f46a1e791268650c3d976dade8af52 Mon Sep 17 00:00:00 2001 From: Stefan Allius Date: Mon, 1 Apr 2024 22:20:46 +0200 Subject: [PATCH] build model name for solarman logger --- app/src/gen3plus/solarman_v5.py | 10 ++++++++++ app/tests/test_solarman.py | 11 +++++++++++ 2 files changed, 21 insertions(+) diff --git a/app/src/gen3plus/solarman_v5.py b/app/src/gen3plus/solarman_v5.py index 1016382..c09512b 100644 --- a/app/src/gen3plus/solarman_v5.py +++ b/app/src/gen3plus/solarman_v5.py @@ -304,11 +304,14 @@ class SolarmanV5(Message): def __process_data(self, ftype): inv_update = False + ctrl_update = False msg_type = self.control >> 8 for key, update in self.db.parse(self._recv_buffer, msg_type, ftype): if update: if key == 'inverter': inv_update = True + if key == 'controller': + ctrl_update = True self.new_data[key] = True if inv_update: @@ -327,6 +330,13 @@ class SolarmanV5(Message): logger.info(f'Model: {Model}') self.db.set_db_def_value(Register.EQUIPMENT_MODEL, Model) + if ctrl_update: + db = self.db + Version = db.get_db_value(Register.COLLECTOR_FW_VERSION, 0) + if isinstance(Version, str): + Model = Version.split('_')[0] + self.db.set_db_def_value(Register.CHIP_MODEL, Model) + def msg_data_rsp(self): self.msg_response() diff --git a/app/tests/test_solarman.py b/app/tests/test_solarman.py index b61a3a5..6743540 100644 --- a/app/tests/test_solarman.py +++ b/app/tests/test_solarman.py @@ -768,3 +768,14 @@ def test_build_modell_2000(ConfigTsunAllowAll, InverterIndMsg2000): assert 2000 == m.db.get_db_value(Register.RATED_POWER, 0) assert 'TSOL-MS2000' == m.db.get_db_value(Register.EQUIPMENT_MODEL, 0) m.close() + +def test_build_logger_modell(ConfigTsunAllowAll, DeviceIndMsg): + ConfigTsunAllowAll + m = MemoryStream(DeviceIndMsg, (0,)) + assert 0 == m.db.get_db_value(Register.COLLECTOR_FW_VERSION, 0) + assert 'IGEN TECH' == m.db.get_db_value(Register.CHIP_TYPE, None) + assert None == m.db.get_db_value(Register.CHIP_MODEL, None) + m.read() # read complete msg, and dispatch msg + assert 'LSW5BLE_17_02B0_1.05' == m.db.get_db_value(Register.COLLECTOR_FW_VERSION, 0).rstrip('\00') + assert 'LSW5BLE' == m.db.get_db_value(Register.CHIP_MODEL, 0) + m.close()