Add traccar scan_interval configuration option (#21079)

* Added scan_interval configuration option

* Fixed trailing whitespace and indentation

* Update traccar.py

* Update homeassistant/components/device_tracker/traccar.py

Co-Authored-By: lapy <lapy@users.noreply.github.com>
This commit is contained in:
lapy 2019-02-17 16:55:06 +00:00 committed by Martin Hjelmare
parent 9251860201
commit 4e7cfc923d

View File

@ -12,7 +12,8 @@ import voluptuous as vol
from homeassistant.components.device_tracker import PLATFORM_SCHEMA
from homeassistant.const import (
CONF_HOST, CONF_PORT, CONF_SSL, CONF_VERIFY_SSL,
CONF_PASSWORD, CONF_USERNAME, ATTR_BATTERY_LEVEL)
CONF_PASSWORD, CONF_USERNAME, ATTR_BATTERY_LEVEL,
CONF_SCAN_INTERVAL)
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.aiohttp_client import async_get_clientsession
from homeassistant.helpers.event import async_track_time_interval
@ -31,6 +32,7 @@ ATTR_SPEED = 'speed'
ATTR_TRACKER = 'tracker'
DEFAULT_SCAN_INTERVAL = timedelta(seconds=30)
SCAN_INTERVAL = DEFAULT_SCAN_INTERVAL
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
vol.Required(CONF_PASSWORD): cv.string,
@ -50,15 +52,17 @@ async def async_setup_scanner(hass, config, async_see, discovery_info=None):
api = API(hass.loop, session, config[CONF_USERNAME], config[CONF_PASSWORD],
config[CONF_HOST], config[CONF_PORT], config[CONF_SSL])
scanner = TraccarScanner(api, hass, async_see)
scanner = TraccarScanner(
api, hass, async_see, config.get(CONF_SCAN_INTERVAL, SCAN_INTERVAL))
return await scanner.async_init()
class TraccarScanner:
"""Define an object to retrieve Traccar data."""
def __init__(self, api, hass, async_see):
def __init__(self, api, hass, async_see, scan_interval):
"""Initialize."""
self._scan_interval = scan_interval
self._async_see = async_see
self._api = api
self._hass = hass
@ -70,7 +74,7 @@ class TraccarScanner:
await self._async_update()
async_track_time_interval(self._hass,
self._async_update,
DEFAULT_SCAN_INTERVAL)
self._scan_interval)
return self._api.authenticated