File tree 1 file changed +7
-3
lines changed
custom_components/ble_monitor
1 file changed +7
-3
lines changed Original file line number Diff line number Diff line change @@ -468,7 +468,8 @@ def parse_raw_message(self, data):
468
468
data [xiaomi_index + 7 :xiaomi_index + 8 ]
469
469
]
470
470
)
471
- encrypted_payload = data [xdata_point :msg_length - int (not is_ext_packet )]
471
+ endoffset = msg_length - int (not is_ext_packet )
472
+ encrypted_payload = data [xdata_point :endoffset ]
472
473
aad = b"\x11 "
473
474
token = encrypted_payload [- 4 :]
474
475
payload_counter = encrypted_payload [- 7 :- 4 ]
@@ -493,8 +494,11 @@ def parse_raw_message(self, data):
493
494
)
494
495
return None , None , None
495
496
# replace cipher with decrypted data
496
- msg_length -= len (data [xdata_point :msg_length - 1 ])
497
- data = b"" .join ((data [:xdata_point ], decrypted_payload , data [- 1 :]))
497
+ msg_length -= len (encrypted_payload )
498
+ if is_ext_packet :
499
+ data = b"" .join ((data [:xdata_point ], decrypted_payload ))
500
+ else :
501
+ data = b"" .join ((data [:xdata_point ], decrypted_payload , data [- 1 :]))
498
502
msg_length += len (decrypted_payload )
499
503
result = {
500
504
"rssi" : rssi ,
You can’t perform that action at this time.
0 commit comments