Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 8 additions & 4 deletions homeassistant/components/device_tracker/traccar.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@
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
Expand All @@ -31,6 +32,7 @@
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,
Expand All @@ -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
Expand All @@ -70,7 +74,7 @@ async def async_init(self):
await self._async_update()
async_track_time_interval(self._hass,
self._async_update,
DEFAULT_SCAN_INTERVAL)
self._scan_interval)

return self._api.authenticated

Expand Down