build model name for solarman logger

This commit is contained in:
Stefan Allius
2024-04-01 22:20:46 +02:00
parent f3842d95d8
commit 04ba868b37
2 changed files with 21 additions and 0 deletions

View File

@@ -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()

View File

@@ -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()