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_INCL_FILTER = 'incl_filter'
CONF_EXCL_FILTER = 'excl_filter'
CONF_REALTIME = 'realtime'
DEFAULT_NAME = 'Waze Travel Time'
DEFAULT_REALTIME = True
ICON = 'mdi:car'
@ -49,6 +51,7 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string,
vol.Optional(CONF_INCL_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)
incl_filter = config.get(CONF_INCL_FILTER)
excl_filter = config.get(CONF_EXCL_FILTER)
realtime = config.get(CONF_REALTIME)
sensor = WazeTravelTime(name, origin, destination, region,
incl_filter, excl_filter)
incl_filter, excl_filter, realtime)
add_devices([sensor])
@ -80,12 +84,13 @@ class WazeTravelTime(Entity):
"""Representation of a Waze travel time sensor."""
def __init__(self, name, origin, destination, region,
incl_filter, excl_filter):
incl_filter, excl_filter, realtime):
"""Initialize the Waze travel time sensor."""
self._name = name
self._region = region
self._incl_filter = incl_filter
self._excl_filter = excl_filter
self._realtime = realtime
self._state = None
self._origin_entity_id = None
self._destination_entity_id = None
@ -197,7 +202,7 @@ class WazeTravelTime(Entity):
try:
params = WazeRouteCalculator.WazeRouteCalculator(
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:
routes = {k: v for k, v in routes.items() if