From ba3c9f97651411fed154683160bdfc471d59864f Mon Sep 17 00:00:00 2001 From: Anders Melchiorsen Date: Tue, 21 Mar 2017 07:17:58 +0100 Subject: [PATCH] Fix LIFX unregister races (#6723) * Fix LIFX unregister races If the initial state request never got a response, we tried to unregister a device that was not yet registered. Also, aiolifx 0.4.2 has an "unregister" race fix. * Update requirements --- homeassistant/components/light/lifx.py | 13 +++++++------ requirements_all.txt | 2 +- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/homeassistant/components/light/lifx.py b/homeassistant/components/light/lifx.py index 72621b55a0d..990fc2acc1f 100644 --- a/homeassistant/components/light/lifx.py +++ b/homeassistant/components/light/lifx.py @@ -25,7 +25,7 @@ import homeassistant.helpers.config_validation as cv _LOGGER = logging.getLogger(__name__) -REQUIREMENTS = ['aiolifx==0.4.1.post1'] +REQUIREMENTS = ['aiolifx==0.4.2'] UDP_BROADCAST_PORT = 56700 @@ -95,11 +95,12 @@ class LIFXManager(object): @callback def unregister(self, device): """Callback for disappearing bulb.""" - entity = self.entities[device.mac_addr] - _LOGGER.debug("%s unregister", entity.ipaddr) - entity.available = False - entity.updated_event.set() - self.hass.async_add_job(entity.async_update_ha_state()) + if device.mac_addr in self.entities: + entity = self.entities[device.mac_addr] + _LOGGER.debug("%s unregister", entity.ipaddr) + entity.available = False + entity.updated_event.set() + self.hass.async_add_job(entity.async_update_ha_state()) def convert_rgb_to_hsv(rgb): diff --git a/requirements_all.txt b/requirements_all.txt index 1ca1f578088..d3bf15378cd 100755 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -41,7 +41,7 @@ aiodns==1.1.1 aiohttp_cors==0.5.0 # homeassistant.components.light.lifx -aiolifx==0.4.1.post1 +aiolifx==0.4.2 # homeassistant.components.camera.amcrest # homeassistant.components.sensor.amcrest