I don't know Python very well, but maybe this can helpdef read_consumed_power(ser):
time.sleep(0.1) # Wait and clear input buffer to ensure proper packet synchronization
ser.reset_input_buffer()
try:
raw = ser.read(8) # Read 8 bytes
except: return -1
(a,b,divider,c,consumed_power,d,crc) = struct.unpack('>BBBBHBB', raw)
if computeCRC(consumed_power) != crc: return -2 # Checksum mismatch
return consumed_power