Browse Source

fix: leak detector with passive scanning (#512)

Tomaž Šolc 2 days ago
parent
commit
81291fe7bc
2 changed files with 9 additions and 2 deletions
  1. 1 1
      switchbot/adv_parsers/leak.py
  2. 8 1
      tests/test_adv_parser.py

+ 1 - 1
switchbot/adv_parsers/leak.py

@@ -3,7 +3,7 @@
 
 def process_leak(data: bytes | None, mfr_data: bytes | None) -> dict[str, bool | int]:
     """Process SwitchBot Water Leak Detector advertisement data."""
-    if data is None or len(data) < 3 or mfr_data is None or len(mfr_data) < 9:
+    if mfr_data is None or len(mfr_data) < 9:
         return {}
 
     water_leak_detected = None

+ 8 - 1
tests/test_adv_parser.py

@@ -1513,9 +1513,16 @@ def test_leak_passive():
     assert result == SwitchBotAdvertisement(
         address="aa:bb:cc:dd:ee:ff",
         data={
-            "data": {},
+            "data": {
+                "leak": False,
+                "tampered": False,
+                "battery": 78,
+                "low_battery": False,
+            },
             "isEncrypted": False,
             "model": "&",
+            "modelFriendlyName": "Leak Detector",
+            "modelName": SwitchbotModel.LEAK,
             "rawAdvData": None,
         },
         device=ble_device,