@@ -71,6 +71,9 @@ def __init__(self, daemon, retry, retry_delay, write_retry, write_retry_delay, r
71
71
exit (1 )
72
72
73
73
protocol_file = self .raw_data .get ('protocol' )
74
+ if not protocol_file :
75
+ logging .error (f"Protocol file is None. Exiting" )
76
+ exit (1 )
74
77
if not os .path .isfile (protocol_file ):
75
78
logging .error (f"Protocol file { protocol_file } does not exist. Exiting" )
76
79
exit (1 )
@@ -526,28 +529,31 @@ def determine_serial_number(self):
526
529
""" Determine the serial number from the inverter """
527
530
serial_number = None
528
531
529
- # Try first location: 0x2001 ... 0x2007
532
+ # Try second location: 0x0445 ... 0x044B (14 digits)
530
533
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 )])
532
535
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 } " )
534
537
return serial_number
535
538
except Exception :
536
- logging .debug ("Failed to read serial number from first location" )
539
+ logging .debug ("Failed to read serial number from second location" )
537
540
538
- # Try second location: 0x0445 ... 0x044B (14 digits)
541
+ # Try first location: 0x2001 ... 0x2007
539
542
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 )])
541
544
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 } " )
543
546
return serial_number
544
547
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
+
546
550
547
551
# Try third location: 0x0445 ... 0x044C and 0x0470...0x0471 (20 digits)
548
552
try :
549
553
serial_number_part1 = '' .join ([self .read_register (register , 'string' , False , 1 ) for register in range (0x0445 , 0x044C )])
550
554
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 )
551
557
if serial_number_part2 and int (serial_number_part2 ) != 0 :
552
558
serial_number = serial_number_part1 + serial_number_part2
553
559
logging .info (f"Serial number found at third location: { serial_number } " )
0 commit comments