@@ -1560,3 +1560,62 @@ def test_parsing_lock_passive_old_firmware():
1560
1560
rssi = - 67 ,
1561
1561
active = False ,
1562
1562
)
1563
+
1564
+
1565
+ def test_meter_pro_active () -> None :
1566
+ ble_device = generate_ble_device ("aa:bb:cc:dd:ee:ff" , "any" )
1567
+ adv_data = generate_advertisement_data (
1568
+ manufacturer_data = {2409 : b"\xb0 \xe9 \xfe R\xdd \x84 \x06 d\x08 \x97 ,\x00 \x05 " },
1569
+ service_data = {"0000fd3d-0000-1000-8000-00805f9b34fb" : b"4\x00 d" },
1570
+ rssi = - 67 ,
1571
+ )
1572
+ result = parse_advertisement_data (ble_device , adv_data )
1573
+ assert result == SwitchBotAdvertisement (
1574
+ address = "aa:bb:cc:dd:ee:ff" ,
1575
+ data = {
1576
+ "data" : {
1577
+ "battery" : 100 ,
1578
+ "fahrenheit" : False ,
1579
+ "humidity" : 44 ,
1580
+ "temp" : {"c" : 23.8 , "f" : 74.84 },
1581
+ "temperature" : 23.8 ,
1582
+ },
1583
+ "isEncrypted" : False ,
1584
+ "model" : "4" ,
1585
+ "modelFriendlyName" : "Meter" ,
1586
+ "modelName" : SwitchbotModel .METER_PRO ,
1587
+ "rawAdvData" : b"4\x00 d" ,
1588
+ },
1589
+ device = ble_device ,
1590
+ rssi = - 67 ,
1591
+ active = True ,
1592
+ )
1593
+
1594
+
1595
+ def test_meter_pro_passive () -> None :
1596
+ ble_device = generate_ble_device ("aa:bb:cc:dd:ee:ff" , "any" )
1597
+ adv_data = generate_advertisement_data (
1598
+ manufacturer_data = {2409 : b"\xb0 \xe9 \xfe R\xdd \x84 \x06 d\x08 \x97 ,\x00 \x05 " },
1599
+ rssi = - 67 ,
1600
+ )
1601
+ result = parse_advertisement_data (ble_device , adv_data , SwitchbotModel .METER_PRO )
1602
+ assert result == SwitchBotAdvertisement (
1603
+ address = "aa:bb:cc:dd:ee:ff" ,
1604
+ data = {
1605
+ "data" : {
1606
+ "battery" : None ,
1607
+ "fahrenheit" : False ,
1608
+ "humidity" : 44 ,
1609
+ "temp" : {"c" : 23.8 , "f" : 74.84 },
1610
+ "temperature" : 23.8 ,
1611
+ },
1612
+ "isEncrypted" : False ,
1613
+ "model" : "4" ,
1614
+ "modelFriendlyName" : "Meter" ,
1615
+ "modelName" : SwitchbotModel .METER_PRO ,
1616
+ "rawAdvData" : None ,
1617
+ },
1618
+ device = ble_device ,
1619
+ rssi = - 67 ,
1620
+ active = False ,
1621
+ )
0 commit comments