Add realtime true/false switch for Waze (#15228)

This commit is contained in:
mountainsandcode 2018-08-09 16:27:29 +02:00 committed by Paulus Schoutsen
parent 86658f310d
commit 664eae72d1

View File

@ -31,8 +31,10 @@ CONF_DESTINATION = 'destination'
CONF_ORIGIN = 'origin' CONF_ORIGIN = 'origin'
CONF_INCL_FILTER = 'incl_filter' CONF_INCL_FILTER = 'incl_filter'
CONF_EXCL_FILTER = 'excl_filter' CONF_EXCL_FILTER = 'excl_filter'
CONF_REALTIME = 'realtime'
DEFAULT_NAME = 'Waze Travel Time' DEFAULT_NAME = 'Waze Travel Time'
DEFAULT_REALTIME = True
ICON = 'mdi:car' ICON = 'mdi:car'
@ -49,6 +51,7 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string, vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string,
vol.Optional(CONF_INCL_FILTER): cv.string, vol.Optional(CONF_INCL_FILTER): cv.string,
vol.Optional(CONF_EXCL_FILTER): cv.string, vol.Optional(CONF_EXCL_FILTER): cv.string,
vol.Optional(CONF_REALTIME, default=DEFAULT_REALTIME): cv.boolean,
}) })
@ -60,9 +63,10 @@ def setup_platform(hass, config, add_devices, discovery_info=None):
region = config.get(CONF_REGION) region = config.get(CONF_REGION)
incl_filter = config.get(CONF_INCL_FILTER) incl_filter = config.get(CONF_INCL_FILTER)
excl_filter = config.get(CONF_EXCL_FILTER) excl_filter = config.get(CONF_EXCL_FILTER)
realtime = config.get(CONF_REALTIME)
sensor = WazeTravelTime(name, origin, destination, region, sensor = WazeTravelTime(name, origin, destination, region,
incl_filter, excl_filter) incl_filter, excl_filter, realtime)
add_devices([sensor]) add_devices([sensor])
@ -80,12 +84,13 @@ class WazeTravelTime(Entity):
"""Representation of a Waze travel time sensor.""" """Representation of a Waze travel time sensor."""
def __init__(self, name, origin, destination, region, def __init__(self, name, origin, destination, region,
incl_filter, excl_filter): incl_filter, excl_filter, realtime):
"""Initialize the Waze travel time sensor.""" """Initialize the Waze travel time sensor."""
self._name = name self._name = name
self._region = region self._region = region
self._incl_filter = incl_filter self._incl_filter = incl_filter
self._excl_filter = excl_filter self._excl_filter = excl_filter
self._realtime = realtime
self._state = None self._state = None
self._origin_entity_id = None self._origin_entity_id = None
self._destination_entity_id = None self._destination_entity_id = None
@ -197,7 +202,7 @@ class WazeTravelTime(Entity):
try: try:
params = WazeRouteCalculator.WazeRouteCalculator( params = WazeRouteCalculator.WazeRouteCalculator(
self._origin, self._destination, self._region) self._origin, self._destination, self._region)
routes = params.calc_all_routes_info() routes = params.calc_all_routes_info(real_time=self._realtime)
if self._incl_filter is not None: if self._incl_filter is not None:
routes = {k: v for k, v in routes.items() if routes = {k: v for k, v in routes.items() if