From ad528165953fca1fb5c1146f56b2545a44c36e10 Mon Sep 17 00:00:00 2001 From: Johann Kellerman Date: Sun, 4 Sep 2016 19:10:20 +0200 Subject: [PATCH] Use voluptuous for BT and Owntracks device trackers (#3187) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🐬 --- .../device_tracker/bluetooth_tracker.py | 25 +++++++++---------- .../components/device_tracker/owntracks.py | 11 +++++++- 2 files changed, 22 insertions(+), 14 deletions(-) diff --git a/homeassistant/components/device_tracker/bluetooth_tracker.py b/homeassistant/components/device_tracker/bluetooth_tracker.py index 298eddc4bc4..d5a6fe26861 100644 --- a/homeassistant/components/device_tracker/bluetooth_tracker.py +++ b/homeassistant/components/device_tracker/bluetooth_tracker.py @@ -2,15 +2,13 @@ import logging from datetime import timedelta +import voluptuous as vol + +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, -) -import homeassistant.util as util + YAML_DEVICES, CONF_TRACK_NEW, CONF_SCAN_INTERVAL, DEFAULT_SCAN_INTERVAL, + load_config, PLATFORM_SCHEMA) import homeassistant.util.dt as dt_util _LOGGER = logging.getLogger(__name__) @@ -19,6 +17,10 @@ REQUIREMENTS = ['pybluez==0.22'] BT_PREFIX = 'BT_' +PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ + vol.Optional(CONF_TRACK_NEW): cv.boolean +}) + def setup_scanner(hass, config, see): """Setup the Bluetooth Scanner.""" @@ -53,10 +55,8 @@ def setup_scanner(hass, config, see): else: devs_donot_track.append(device.mac[3:]) - # if track new devices is true discover new devices - # on startup. - track_new = util.convert(config.get(CONF_TRACK_NEW), bool, - len(devs_to_track) == 0) + # if track new devices is true discover new devices on startup. + track_new = config.get(CONF_TRACK_NEW, len(devs_to_track) == 0) if track_new: for dev in discover_devices(): if dev[0] not in devs_to_track and \ @@ -68,8 +68,7 @@ def setup_scanner(hass, config, see): _LOGGER.warning("No bluetooth devices to track!") return False - interval = util.convert(config.get(CONF_SCAN_INTERVAL), int, - DEFAULT_SCAN_INTERVAL) + interval = config.get(CONF_SCAN_INTERVAL, DEFAULT_SCAN_INTERVAL) def update_bluetooth(now): """Lookup bluetooth device and update status.""" diff --git a/homeassistant/components/device_tracker/owntracks.py b/homeassistant/components/device_tracker/owntracks.py index abc503a370a..77c18ae73b1 100644 --- a/homeassistant/components/device_tracker/owntracks.py +++ b/homeassistant/components/device_tracker/owntracks.py @@ -9,6 +9,9 @@ import logging import threading from collections import defaultdict +import voluptuous as vol + +import homeassistant.helpers.config_validation as cv import homeassistant.components.mqtt as mqtt from homeassistant.const import STATE_HOME from homeassistant.util import convert, slugify @@ -40,11 +43,17 @@ VALIDATE_WAYPOINTS = 'waypoints' WAYPOINT_LAT_KEY = 'lat' WAYPOINT_LON_KEY = 'lon' +PLATFORM_SCHEMA = mqtt.MQTT_BASE_PLATFORM_SCHEMA.extend({ + vol.Optional(CONF_MAX_GPS_ACCURACY): cv.string, + vol.Optional(CONF_WAYPOINT_IMPORT, default=True): cv.boolean, + vol.Optional(CONF_WAYPOINT_WHITELIST): vol.All(cv.ensure_list, [cv.string]) +}) + def setup_scanner(hass, config, see): """Setup an OwnTracks tracker.""" max_gps_accuracy = config.get(CONF_MAX_GPS_ACCURACY) - waypoint_import = config.get(CONF_WAYPOINT_IMPORT, True) + waypoint_import = config.get(CONF_WAYPOINT_IMPORT) waypoint_whitelist = config.get(CONF_WAYPOINT_WHITELIST) def validate_payload(payload, data_type):