mirror of
https://github.com/home-assistant/core.git
synced 2025-07-13 16:27:08 +00:00
Add validator for battery scan option (#35506)
* Add validator for battery scan option Add a validator for the track battery option. Also add the possibility of configuring the battery scan interval. * Set config defaults on the validator Set the defaults on the platform schema, and not in the initialization code.
This commit is contained in:
parent
2984b9fd18
commit
1e157a4f41
@ -5,7 +5,9 @@ import logging
|
|||||||
from uuid import UUID
|
from uuid import UUID
|
||||||
|
|
||||||
import pygatt # pylint: disable=import-error
|
import pygatt # pylint: disable=import-error
|
||||||
|
import voluptuous as vol
|
||||||
|
|
||||||
|
from homeassistant.components.device_tracker import PLATFORM_SCHEMA
|
||||||
from homeassistant.components.device_tracker.const import (
|
from homeassistant.components.device_tracker.const import (
|
||||||
CONF_SCAN_INTERVAL,
|
CONF_SCAN_INTERVAL,
|
||||||
CONF_TRACK_NEW,
|
CONF_TRACK_NEW,
|
||||||
@ -17,6 +19,7 @@ from homeassistant.components.device_tracker.legacy import (
|
|||||||
async_load_config,
|
async_load_config,
|
||||||
)
|
)
|
||||||
from homeassistant.const import EVENT_HOMEASSISTANT_STOP
|
from homeassistant.const import EVENT_HOMEASSISTANT_STOP
|
||||||
|
import homeassistant.helpers.config_validation as cv
|
||||||
from homeassistant.helpers.event import track_point_in_utc_time
|
from homeassistant.helpers.event import track_point_in_utc_time
|
||||||
import homeassistant.util.dt as dt_util
|
import homeassistant.util.dt as dt_util
|
||||||
|
|
||||||
@ -26,12 +29,22 @@ _LOGGER = logging.getLogger(__name__)
|
|||||||
# Battery characteristic: 0x2a19 (https://www.bluetooth.com/specifications/gatt/characteristics/)
|
# Battery characteristic: 0x2a19 (https://www.bluetooth.com/specifications/gatt/characteristics/)
|
||||||
BATTERY_CHARACTERISTIC_UUID = UUID("00002a19-0000-1000-8000-00805f9b34fb")
|
BATTERY_CHARACTERISTIC_UUID = UUID("00002a19-0000-1000-8000-00805f9b34fb")
|
||||||
CONF_TRACK_BATTERY = "track_battery"
|
CONF_TRACK_BATTERY = "track_battery"
|
||||||
|
CONF_TRACK_BATTERY_INTERVAL = "track_battery_interval"
|
||||||
DEFAULT_TRACK_BATTERY_INTERVAL = timedelta(days=1)
|
DEFAULT_TRACK_BATTERY_INTERVAL = timedelta(days=1)
|
||||||
DATA_BLE = "BLE"
|
DATA_BLE = "BLE"
|
||||||
DATA_BLE_ADAPTER = "ADAPTER"
|
DATA_BLE_ADAPTER = "ADAPTER"
|
||||||
BLE_PREFIX = "BLE_"
|
BLE_PREFIX = "BLE_"
|
||||||
MIN_SEEN_NEW = 5
|
MIN_SEEN_NEW = 5
|
||||||
|
|
||||||
|
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
|
||||||
|
{
|
||||||
|
vol.Optional(CONF_TRACK_BATTERY, default=False): cv.boolean,
|
||||||
|
vol.Optional(
|
||||||
|
CONF_TRACK_BATTERY_INTERVAL, default=DEFAULT_TRACK_BATTERY_INTERVAL
|
||||||
|
): cv.time_period,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def setup_scanner(hass, config, see, discovery_info=None):
|
def setup_scanner(hass, config, see, discovery_info=None):
|
||||||
"""Set up the Bluetooth LE Scanner."""
|
"""Set up the Bluetooth LE Scanner."""
|
||||||
@ -49,8 +62,8 @@ def setup_scanner(hass, config, see, discovery_info=None):
|
|||||||
|
|
||||||
hass.bus.async_listen_once(EVENT_HOMEASSISTANT_STOP, handle_stop)
|
hass.bus.async_listen_once(EVENT_HOMEASSISTANT_STOP, handle_stop)
|
||||||
|
|
||||||
if config.get(CONF_TRACK_BATTERY):
|
if config[CONF_TRACK_BATTERY]:
|
||||||
battery_track_interval = DEFAULT_TRACK_BATTERY_INTERVAL
|
battery_track_interval = config[CONF_TRACK_BATTERY_INTERVAL]
|
||||||
else:
|
else:
|
||||||
battery_track_interval = timedelta(0)
|
battery_track_interval = timedelta(0)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user