From 804b7669b77bce0c8060f9dcf7d68e9f94cfa0c7 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sat, 12 Sep 2015 23:08:16 -0700 Subject: [PATCH] Setup device tracker group at end of init --- .../components/device_tracker/__init__.py | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/homeassistant/components/device_tracker/__init__.py b/homeassistant/components/device_tracker/__init__.py index 86190d28b76..0727f70cd69 100644 --- a/homeassistant/components/device_tracker/__init__.py +++ b/homeassistant/components/device_tracker/__init__.py @@ -131,6 +131,8 @@ def setup(hass, config): tracker.update_stale(now) track_utc_time_change(hass, update_stale, second=range(0, 60, 5)) + tracker.setup_group() + return True @@ -150,8 +152,7 @@ class DeviceTracker(object): entity_ids.append(device.entity_id) device.update_ha_state() - self.group = group.setup_group(hass, GROUP_NAME_ALL_DEVICES, - entity_ids, False) + self.group = None # pylint: disable=too-many-arguments def see(self, mac=None, dev_id=None, host_name=None, location_name=None, @@ -187,10 +188,19 @@ class DeviceTracker(object): if device.track: device.update_ha_state() - self.group.update_tracked_entity_ids( - list(self.group.tracking) + [device.entity_id]) + # During init, we ignore the group + if self.group is not None: + self.group.update_tracked_entity_ids( + list(self.group.tracking) + [device.entity_id]) update_config(self.hass.config.path(YAML_DEVICES), dev_id, device) + def setup_group(self): + """ Initializes group for all tracked devices. """ + entity_ids = (dev.entity_id for dev in self.devices.values() + if dev.track) + self.group = group.setup_group( + self.hass, GROUP_NAME_ALL_DEVICES, entity_ids, False) + def update_stale(self, now): """ Update stale devices. """ with self.lock: