diff --git a/homeassistant/components/device_tracker/bluetooth_le_tracker.py b/homeassistant/components/device_tracker/bluetooth_le_tracker.py index a9b95cf6a6b..9ee30dd0ce2 100644 --- a/homeassistant/components/device_tracker/bluetooth_le_tracker.py +++ b/homeassistant/components/device_tracker/bluetooth_le_tracker.py @@ -11,6 +11,7 @@ from homeassistant.components.device_tracker import ( DEFAULT_SCAN_INTERVAL, PLATFORM_SCHEMA, load_config, + DEFAULT_TRACK_NEW ) import homeassistant.util as util import homeassistant.util.dt as dt_util @@ -88,7 +89,7 @@ def setup_scanner(hass, config, see): # if track new devices is true discover new devices # on every scan. track_new = util.convert(config.get(CONF_TRACK_NEW), bool, - len(devs_to_track) == 0) + DEFAULT_TRACK_NEW) if not devs_to_track and not track_new: _LOGGER.warning("No Bluetooth LE devices to track!") return False diff --git a/homeassistant/components/device_tracker/bluetooth_tracker.py b/homeassistant/components/device_tracker/bluetooth_tracker.py index d5a6fe26861..86e115c65c4 100644 --- a/homeassistant/components/device_tracker/bluetooth_tracker.py +++ b/homeassistant/components/device_tracker/bluetooth_tracker.py @@ -8,7 +8,7 @@ import homeassistant.helpers.config_validation as cv from homeassistant.helpers.event import track_point_in_utc_time from homeassistant.components.device_tracker import ( YAML_DEVICES, CONF_TRACK_NEW, CONF_SCAN_INTERVAL, DEFAULT_SCAN_INTERVAL, - load_config, PLATFORM_SCHEMA) + load_config, PLATFORM_SCHEMA, DEFAULT_TRACK_NEW) import homeassistant.util.dt as dt_util _LOGGER = logging.getLogger(__name__) @@ -56,7 +56,7 @@ def setup_scanner(hass, config, see): devs_donot_track.append(device.mac[3:]) # if track new devices is true discover new devices on startup. - track_new = config.get(CONF_TRACK_NEW, len(devs_to_track) == 0) + track_new = config.get(CONF_TRACK_NEW, DEFAULT_TRACK_NEW) if track_new: for dev in discover_devices(): if dev[0] not in devs_to_track and \ @@ -64,15 +64,16 @@ def setup_scanner(hass, config, see): devs_to_track.append(dev[0]) see_device(dev) - if not devs_to_track: - _LOGGER.warning("No bluetooth devices to track!") - return False - interval = config.get(CONF_SCAN_INTERVAL, DEFAULT_SCAN_INTERVAL) def update_bluetooth(now): """Lookup bluetooth device and update status.""" try: + if track_new: + for dev in discover_devices(): + if dev[0] not in devs_to_track and \ + dev[0] not in devs_donot_track: + devs_to_track.append(dev[0]) for mac in devs_to_track: _LOGGER.debug("Scanning " + mac) result = bluetooth.lookup_name(mac, timeout=5)