Skip to content

Commit feccb90

Browse files
committed
Swap first and second lookup
1 parent 44d4ea7 commit feccb90

File tree

1 file changed

+14
-8
lines changed

1 file changed

+14
-8
lines changed

sofar2mqtt-v2.py

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,9 @@ def __init__(self, daemon, retry, retry_delay, write_retry, write_retry_delay, r
7171
exit(1)
7272

7373
protocol_file = self.raw_data.get('protocol')
74+
if not protocol_file:
75+
logging.error(f"Protocol file is None. Exiting")
76+
exit(1)
7477
if not os.path.isfile(protocol_file):
7578
logging.error(f"Protocol file {protocol_file} does not exist. Exiting")
7679
exit(1)
@@ -526,28 +529,31 @@ def determine_serial_number(self):
526529
""" Determine the serial number from the inverter """
527530
serial_number = None
528531

529-
# Try first location: 0x2001 ... 0x2007
532+
# Try second location: 0x0445 ... 0x044B (14 digits)
530533
try:
531-
serial_number = ''.join([self.read_register(register, 'string', False, 1) for register in range(0x2001, 0x2008)])
534+
serial_number = ''.join([self.read_register(register, 'string', False, 1) for register in range(0x0445, 0x044C)])
532535
if serial_number:
533-
logging.info(f"Serial number found at first location: {serial_number}")
536+
logging.info(f"Serial number found at second location: {serial_number}")
534537
return serial_number
535538
except Exception:
536-
logging.debug("Failed to read serial number from first location")
539+
logging.debug("Failed to read serial number from second location")
537540

538-
# Try second location: 0x0445 ... 0x044B (14 digits)
541+
# Try first location: 0x2001 ... 0x2007
539542
try:
540-
serial_number = ''.join([self.read_register(register, 'string', False, 1) for register in range(0x0445, 0x044C)])
543+
serial_number = ''.join([self.read_register(register, 'string', False, 1) for register in range(0x2001, 0x2008)])
541544
if serial_number:
542-
logging.info(f"Serial number found at second location: {serial_number}")
545+
logging.info(f"Serial number found at first location: {serial_number}")
543546
return serial_number
544547
except Exception:
545-
logging.debug("Failed to read serial number from second location")
548+
logging.debug("Failed to read serial number from first location")
549+
546550

547551
# Try third location: 0x0445 ... 0x044C and 0x0470...0x0471 (20 digits)
548552
try:
549553
serial_number_part1 = ''.join([self.read_register(register, 'string', False, 1) for register in range(0x0445, 0x044C)])
550554
serial_number_part2 = ''.join([self.read_register(register, 'string', False, 1) for register in range(0x0470, 0x0472)])
555+
logging.info(serial_number_part1)
556+
logging.info(serial_number_part2)
551557
if serial_number_part2 and int(serial_number_part2) != 0:
552558
serial_number = serial_number_part1 + serial_number_part2
553559
logging.info(f"Serial number found at third location: {serial_number}")

0 commit comments

Comments
 (0)