@@ -340,6 +340,32 @@ def test_Xiaomi_SJWS01LM(self):
340
340
assert sensor_msg ["moisture detected" ]
341
341
assert sensor_msg ["rssi" ] == - 88
342
342
343
+ def test_Xiaomi_RS1BB (self ):
344
+ """Test Xiaomi parser for LINP-RS1BB."""
345
+ self .aeskeys = {}
346
+ data_string = "043E2902010000674cb938c1a41d020106191695fe58590F3F4A674CB938C1A4D6E57B83040000D01E0B4BC0"
347
+ data = bytes (bytearray .fromhex (data_string ))
348
+
349
+ aeskey = "33ede53321bc73c790a8daae4581f3d5"
350
+
351
+ is_ext_packet = True if data [3 ] == 0x0D else False
352
+ mac = (data [8 if is_ext_packet else 7 :14 if is_ext_packet else 13 ])[::- 1 ]
353
+ mac_address = mac .hex ()
354
+ p_mac = bytes .fromhex (mac_address .replace (":" , "" ).lower ())
355
+ p_key = bytes .fromhex (aeskey .lower ())
356
+ self .aeskeys [p_mac ] = p_key
357
+ # pylint: disable=unused-variable
358
+ ble_parser = BleParser (aeskeys = self .aeskeys )
359
+ sensor_msg , tracker_msg = ble_parser .parse_raw_data (data )
360
+
361
+ assert sensor_msg ["firmware" ] == "Xiaomi (MiBeacon V5 encrypted)"
362
+ assert sensor_msg ["type" ] == "RS1BB"
363
+ assert sensor_msg ["mac" ] == "A4C138B94C67"
364
+ assert sensor_msg ["packet" ] == 74
365
+ assert sensor_msg ["data" ]
366
+ assert sensor_msg ["moisture detected" ] == 0
367
+ assert sensor_msg ["rssi" ] == - 64
368
+
343
369
def test_Xiaomi_MJYD02YL (self ):
344
370
"""Test Xiaomi parser for MJYD02YL."""
345
371
0 commit comments