From ca48663f94fdd3fff8c9e8b0e1e54531fabcb75f Mon Sep 17 00:00:00 2001 From: Robert Schulze Date: Mon, 28 Feb 2022 11:01:18 +0100 Subject: [PATCH] fix: handle empty returned dictionary from request-function see issue #234 --- homekit/controller/ble_impl/__init__.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/homekit/controller/ble_impl/__init__.py b/homekit/controller/ble_impl/__init__.py index 53ed1e5..dcc58f6 100644 --- a/homekit/controller/ble_impl/__init__.py +++ b/homekit/controller/ble_impl/__init__.py @@ -197,7 +197,7 @@ def get_characteristics(self, characteristics, include_meta=False, include_perms self.session = None raise e - if response.first_by_id(AdditionalParameterTypes.Value): + if response and response.first_by_id(AdditionalParameterTypes.Value): value = self._convert_to_python(aid, cid, response.first_by_id(AdditionalParameterTypes.Value).data) else: value = None @@ -557,7 +557,8 @@ def request(self, feature_char, feature_char_id, op, body=None): logger.debug('decrypted: %s', bytearray(data).hex()) if not data: - return {} + logger.debug('decryption failed') + return tlv8.EntryList() # parse header and check stuff logger.debug('parse sig read response %s', bytes([int(a) for a in data]).hex())