From a42a654590c91af371d2319f0a04b528e92d6d72 Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Thu, 14 May 2020 11:58:40 -0500 Subject: [PATCH] Fix reversed logic in zeroconf homekit pairing check (#35596) * Fix reversed logic in zeroconf homekit pairing check * s/server_info/service_info/ --- homeassistant/components/zeroconf/__init__.py | 8 +++++++- tests/components/zeroconf/test_init.py | 4 ++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/homeassistant/components/zeroconf/__init__.py b/homeassistant/components/zeroconf/__init__.py index 8376ed09e6c..d699160eed4 100644 --- a/homeassistant/components/zeroconf/__init__.py +++ b/homeassistant/components/zeroconf/__init__.py @@ -178,6 +178,11 @@ def setup(hass, config): return service_info = zeroconf.get_service_info(service_type, name) + if not service_info: + # Prevent the browser thread from collapsing as + # service_info can be None + return + info = info_from_service(service_info) _LOGGER.debug("Discovered new device %s %s", name, info) @@ -196,7 +201,8 @@ def setup(hass, config): and HOMEKIT_PAIRED_STATUS_FLAG in info[HOMEKIT_PROPERTIES] ): try: - if not int(info[HOMEKIT_PROPERTIES][HOMEKIT_PAIRED_STATUS_FLAG]): + # 0 means paired and not discoverable by iOS clients) + if int(info[HOMEKIT_PROPERTIES][HOMEKIT_PAIRED_STATUS_FLAG]): return except ValueError: # HomeKit pairing status unknown diff --git a/tests/components/zeroconf/test_init.py b/tests/components/zeroconf/test_init.py index 9d6d08d5b27..89c9d0c2643 100644 --- a/tests/components/zeroconf/test_init.py +++ b/tests/components/zeroconf/test_init.py @@ -18,8 +18,8 @@ PROPERTIES = { NON_ASCII_KEY: None, } -HOMEKIT_STATUS_UNPAIRED = b"0" -HOMEKIT_STATUS_PAIRED = b"1" +HOMEKIT_STATUS_UNPAIRED = b"1" +HOMEKIT_STATUS_PAIRED = b"0" @pytest.fixture