Skip to content

Commit 9e8a292

Browse files
authored
Reject devices that are missing the switchbot service data uuids (#143)
1 parent 2d76e3f commit 9e8a292

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

switchbot/adv_parser.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -112,14 +112,20 @@ def parse_advertisement_data(
112112
if uuid in service_data:
113113
_service_data = service_data[uuid]
114114
break
115-
if not _service_data:
116-
_service_data = list(advertisement_data.service_data.values())[0]
115+
117116
if not _service_data:
118117
return None
119118

120119
_mfr_data = _mgr_datas[0] if _mgr_datas else None
121120

122-
data = _parse_data(_service_data, _mfr_data)
121+
try:
122+
data = _parse_data(_service_data, _mfr_data)
123+
except Exception as err: # pylint: disable=broad-except
124+
_LOGGER.exception(
125+
"Failed to parse advertisement data: %s: %s", advertisement_data, err
126+
)
127+
return None
128+
123129
return SwitchBotAdvertisement(device.address, data, device, advertisement_data.rssi)
124130

125131

0 commit comments

Comments
 (0)