Skip to content

Commit 265d8e7

Browse files
authored
Fix contact sensor not seeing timeout as open (#133)
1 parent 7b05e18 commit 265d8e7

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

switchbot/adv_parsers/contact.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,14 @@
44

55
def process_wocontact(data: bytes, mfr_data: bytes | None) -> dict[str, bool | int]:
66
"""Process woContact Sensor services data."""
7+
contact_timeout = data[3] & 0b00000110 == 0b00000110
8+
contact_open = data[3] & 0b00000010 == 0b00000010
79
return {
810
"tested": bool(data[1] & 0b10000000),
911
"motion_detected": bool(data[1] & 0b01000000),
1012
"battery": data[2] & 0b01111111,
11-
"contact_open": data[3] & 0b00000010 == 0b00000010,
12-
"contact_timeout": data[3] & 0b00000110 == 0b00000110,
13+
"contact_open": contact_open or contact_timeout, # timeout still means its open
14+
"contact_timeout": contact_timeout,
1315
"is_light": bool(data[3] & 0b00000001),
1416
"button_count": (data[8] & 0b00001111),
1517
}

0 commit comments

Comments
 (0)