migrate device tracker

This commit is contained in:
Pascal Vizeli
2017-06-15 00:56:37 +02:00
parent 3f92210ce0
commit 50d3cc2419
3 changed files with 9 additions and 11 deletions

View File

@@ -41,7 +41,7 @@ from homeassistant.const import (
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
DOMAIN = 'device_tracker' DOMAIN = 'device_tracker'
DEPENDENCIES = ['zone'] DEPENDENCIES = ['zone', 'group']
GROUP_NAME_ALL_DEVICES = 'all devices' GROUP_NAME_ALL_DEVICES = 'all devices'
ENTITY_ID_ALL_DEVICES = group.ENTITY_ID_FORMAT.format('all_devices') ENTITY_ID_ALL_DEVICES = group.ENTITY_ID_FORMAT.format('all_devices')
@@ -180,8 +180,6 @@ def async_setup(hass: HomeAssistantType, config: ConfigType):
if setup_tasks: if setup_tasks:
yield from asyncio.wait(setup_tasks, loop=hass.loop) yield from asyncio.wait(setup_tasks, loop=hass.loop)
yield from tracker.async_setup_group()
@callback @callback
def async_device_tracker_discovered(service, info): def async_device_tracker_discovered(service, info):
"""Handle the discovery of device tracker platforms.""" """Handle the discovery of device tracker platforms."""
@@ -233,7 +231,6 @@ class DeviceTracker(object):
self.mac_to_dev = {dev.mac: dev for dev in devices if dev.mac} self.mac_to_dev = {dev.mac: dev for dev in devices if dev.mac}
self.consider_home = consider_home self.consider_home = consider_home
self.track_new = track_new self.track_new = track_new
self.group = None # type: group.Group
self._is_updating = asyncio.Lock(loop=hass.loop) self._is_updating = asyncio.Lock(loop=hass.loop)
for dev in devices: for dev in devices:
@@ -303,9 +300,9 @@ class DeviceTracker(object):
}) })
# During init, we ignore the group # During init, we ignore the group
if self.group is not None: self.group.async_set_group(
yield from self.group.async_update_tracked_entity_ids( self.hass, slugify(GROUP_NAME_ALL_DEVICES), visible=False,
list(self.group.tracking) + [device.entity_id]) name=GROUP_NAME_ALL_DEVICES, delta=[device.entity_id])
# lookup mac vendor string to be stored in config # lookup mac vendor string to be stored in config
yield from device.set_vendor_for_mac() yield from device.set_vendor_for_mac()

View File

@@ -137,11 +137,11 @@ def set_visibility(hass, entity_id=None, visible=True):
def set_group(hass, object_id, name=None, entity_ids=None, visible=None, def set_group(hass, object_id, name=None, entity_ids=None, visible=None,
icon=None, view=None, control=None): icon=None, view=None, control=None, delta=None):
"""Create a new user group.""" """Create a new user group."""
hass.add_job( hass.add_job(
async_set_group, hass, object_id, name, entity_ids, visible, icon, async_set_group, hass, object_id, name, entity_ids, visible, icon,
view, control) view, control, delta)
@callback @callback
@@ -157,6 +157,7 @@ def async_set_group(hass, object_id, name=None, entity_ids=None, visible=None,
(ATTR_ICON, icon), (ATTR_ICON, icon),
(ATTR_VIEW, view), (ATTR_VIEW, view),
(ATTR_CONTROL, control), (ATTR_CONTROL, control),
(ATTR_DELTA, delta),
] if value is not None ] if value is not None
} }

View File

@@ -229,7 +229,7 @@ class EntityComponent(object):
run_callback_threadsafe( run_callback_threadsafe(
self.hass.loop, self.async_update_group).result() self.hass.loop, self.async_update_group).result()
@asyncio.coroutine @callback
def async_update_group(self): def async_update_group(self):
"""Set up and/or update component group. """Set up and/or update component group.
@@ -370,7 +370,7 @@ class EntityPlatform(object):
tasks = [async_process_entity(entity) for entity in new_entities] tasks = [async_process_entity(entity) for entity in new_entities]
yield from asyncio.wait(tasks, loop=self.component.hass.loop) yield from asyncio.wait(tasks, loop=self.component.hass.loop)
yield from self.component.async_update_group() self.component.async_update_group()
if self._async_unsub_polling is not None or \ if self._async_unsub_polling is not None or \
not any(entity.should_poll for entity not any(entity.should_poll for entity