mirror of
https://github.com/home-assistant/core.git
synced 2025-04-23 16:57:53 +00:00
Device tracker sets up group again
This commit is contained in:
parent
4ccedca3e5
commit
bb42e264cb
@ -35,8 +35,7 @@ import homeassistant.util.dt as dt_util
|
||||
|
||||
from homeassistant.helpers.event import track_utc_time_change
|
||||
from homeassistant.const import (
|
||||
ATTR_ENTITY_PICTURE, DEVICE_DEFAULT_NAME, STATE_HOME, STATE_NOT_HOME,
|
||||
STATE_UNKNOWN)
|
||||
ATTR_ENTITY_PICTURE, DEVICE_DEFAULT_NAME, STATE_HOME, STATE_NOT_HOME)
|
||||
|
||||
DOMAIN = "device_tracker"
|
||||
DEPENDENCIES = []
|
||||
@ -91,7 +90,7 @@ def setup(hass, config):
|
||||
track_new = util.convert(conf.get(CONF_TRACK_NEW), bool,
|
||||
DEFAULT_CONF_TRACK_NEW)
|
||||
|
||||
devices = load_config(yaml_path, hass, consider_home)
|
||||
devices = load_config(yaml_path, hass, timedelta(seconds=consider_home))
|
||||
tracker = DeviceTracker(hass, consider_home, track_new, devices)
|
||||
|
||||
def setup_platform(p_type, p_config, disc_info=None):
|
||||
@ -145,10 +144,15 @@ class DeviceTracker(object):
|
||||
self.track_new = track_new
|
||||
self.lock = threading.Lock()
|
||||
|
||||
entity_ids = []
|
||||
for device in devices:
|
||||
if device.track:
|
||||
entity_ids.append(device.entity_id)
|
||||
device.update_ha_state()
|
||||
|
||||
self.group = group.setup_group(hass, GROUP_NAME_ALL_DEVICES,
|
||||
entity_ids, False)
|
||||
|
||||
# pylint: disable=too-many-arguments
|
||||
def see(self, mac=None, dev_id=None, host_name=None, location_name=None,
|
||||
gps=None):
|
||||
@ -183,6 +187,8 @@ class DeviceTracker(object):
|
||||
if device.track:
|
||||
device.update_ha_state()
|
||||
|
||||
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 update_stale(self, now):
|
||||
@ -204,7 +210,7 @@ class Device(Entity):
|
||||
|
||||
# Track if the last update of this device was HOME
|
||||
last_update_home = False
|
||||
_state = STATE_UNKNOWN
|
||||
_state = STATE_NOT_HOME
|
||||
|
||||
def __init__(self, hass, consider_home, track, dev_id, mac, name=None,
|
||||
picture=None, away_hide=False):
|
||||
|
@ -14,8 +14,8 @@ from homeassistant.config import load_yaml_config_file
|
||||
from homeassistant.loader import get_component
|
||||
import homeassistant.util.dt as dt_util
|
||||
from homeassistant.const import (
|
||||
ATTR_ENTITY_PICTURE, ATTR_HIDDEN, STATE_HOME, STATE_NOT_HOME,
|
||||
CONF_PLATFORM, ATTR_FRIENDLY_NAME)
|
||||
ATTR_ENTITY_ID, ATTR_ENTITY_PICTURE, ATTR_FRIENDLY_NAME, ATTR_HIDDEN,
|
||||
STATE_HOME, STATE_NOT_HOME, CONF_PLATFORM, )
|
||||
import homeassistant.components.device_tracker as device_tracker
|
||||
|
||||
from tests.common import (
|
||||
@ -193,3 +193,23 @@ class TestComponentsDeviceTracker(unittest.TestCase):
|
||||
|
||||
self.assertTrue(self.hass.states.get(entity_id)
|
||||
.attributes.get(ATTR_HIDDEN))
|
||||
|
||||
def test_group_all_devices(self):
|
||||
dev_id = 'test_entity'
|
||||
entity_id = device_tracker.ENTITY_ID_FORMAT.format(dev_id)
|
||||
device = device_tracker.Device(
|
||||
self.hass, timedelta(seconds=180), True, dev_id, None,
|
||||
away_hide=True)
|
||||
device_tracker.update_config(self.yaml_devices, dev_id, device)
|
||||
|
||||
scanner = get_component('device_tracker.test').SCANNER
|
||||
scanner.reset()
|
||||
|
||||
self.assertTrue(device_tracker.setup(self.hass, {
|
||||
device_tracker.DOMAIN: {CONF_PLATFORM: 'test'}}))
|
||||
|
||||
state = self.hass.states.get(device_tracker.ENTITY_ID_ALL_DEVICES)
|
||||
self.assertIsNotNone(state)
|
||||
self.assertEqual(STATE_NOT_HOME, state.state)
|
||||
self.assertSequenceEqual((entity_id,),
|
||||
state.attributes.get(ATTR_ENTITY_ID))
|
||||
|
Loading…
x
Reference in New Issue
Block a user