Fix type, Serial on initial run or lvl 3

This commit is contained in:
bohdan-s
2022-12-13 20:47:33 +11:00
parent 098e12d0cf
commit 496362dd21
+11 -11
View File
@@ -27,7 +27,7 @@ class SungrowInverter():
self.inverter_config = { self.inverter_config = {
"slave": config_inverter.get('slave'), "slave": config_inverter.get('slave'),
"model": config_inverter.get('model'), "model": config_inverter.get('model'),
"serial": config_inverter.get('serial'), "serial": config_inverter.get('serial'),
"level": config_inverter.get('level'), "level": config_inverter.get('level'),
"use_local_time": config_inverter.get('use_local_time'), "use_local_time": config_inverter.get('use_local_time'),
"smart_meter": config_inverter.get('smart_meter'), "smart_meter": config_inverter.get('smart_meter'),
@@ -112,22 +112,22 @@ class SungrowInverter():
self.registers.pop() self.registers.pop()
break break
if self.inverter_config.get('serial'): if self.inverter_config.get('serial_number'):
logging.info(f"Bypassing Serial Detection, Using config: {self.inverter_config.get('serial')}") logging.info(f"Bypassing Serial Detection, Using config: {self.inverter_config.get('serial_number')}")
else: else:
# Load just the register to detect model, then we can load the rest of registers based on returned model # Load just the register to detect serial number, then we can load the rest of registers based on returned model
for register in registersfile['registers'][0]['read']: for register in registersfile['registers'][0]['read']:
if register.get('name') == "serial": if register.get('name') == "serial_number":
register['type'] = "read" register['type'] = "read"
self.registers.append(register) self.registers.append(register)
if self.load_registers(register['type'], register['address'] -1, 5): # Needs to be address -1 if self.load_registers(register['type'], register['address'] -1, 10): # Needs to be address -1
if isinstance(self.latest_scrape.get('serial'),int): if isinstance(self.latest_scrape.get('serial_number'),int):
logging.warning(f"Unknown Type Code Detected: {self.latest_scrape.get('serial')}") logging.warning(f"Unknown Type Code Detected: {self.latest_scrape.get('serial_number')}")
else: else:
self.inverter_config['model'] = self.latest_scrape.get('serial') self.inverter_config['serial_number'] = self.latest_scrape.get('serial_number')
logging.info(f"Detected Serial: {self.inverter_config.get('serial')}") logging.info(f"Detected Serial: {self.inverter_config.get('serial_number')}")
else: else:
logging.info(f'Serial detection failed, please set model in config.py') logging.info(f'Serial detection failed, please set serial number in config.py')
self.registers.pop() self.registers.pop()
break break