From 274e4449ea81abf56326d14f1b627090f15f495d Mon Sep 17 00:00:00 2001 From: Martin Hjelmare Date: Thu, 31 Aug 2017 21:00:09 +0200 Subject: [PATCH] Fix possible KeyError (#9242) * Multiple devices per child per platform would lead to KeyError. --- homeassistant/components/mysensors.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/homeassistant/components/mysensors.py b/homeassistant/components/mysensors.py index 62fecddb8c4..c37116fb32d 100644 --- a/homeassistant/components/mysensors.py +++ b/homeassistant/components/mysensors.py @@ -485,12 +485,14 @@ def gw_callback_factory(hass): validated = validate_child(msg.gateway, msg.node_id, child) for platform, dev_ids in validated.items(): devices = get_mysensors_devices(hass, platform) - for idx, dev_id in enumerate(list(dev_ids)): + new_dev_ids = [] + for dev_id in dev_ids: if dev_id in devices: - dev_ids.pop(idx) signals.append(SIGNAL_CALLBACK.format(*dev_id)) - if dev_ids: - discover_mysensors_platform(hass, platform, dev_ids) + else: + new_dev_ids.append(dev_id) + if new_dev_ids: + discover_mysensors_platform(hass, platform, new_dev_ids) for signal in set(signals): # Only one signal per device is needed. # A device can have multiple platforms, ie multiple schemas.