mirror of
https://github.com/home-assistant/core.git
synced 2025-07-19 11:17:21 +00:00
Allow resetting filters for waze_travel_time (#88253)
* Allow resetting filters by using vol.Maybe * Fix return types * Use suggested values * Apply feedback * Apply nitpick
This commit is contained in:
parent
a478e278fd
commit
28d045cf75
@ -31,6 +31,19 @@ from .const import (
|
|||||||
)
|
)
|
||||||
from .helpers import is_valid_config_entry
|
from .helpers import is_valid_config_entry
|
||||||
|
|
||||||
|
OPTIONS_SCHEMA = vol.Schema(
|
||||||
|
{
|
||||||
|
vol.Optional(CONF_INCL_FILTER, default=""): cv.string,
|
||||||
|
vol.Optional(CONF_EXCL_FILTER, default=""): cv.string,
|
||||||
|
vol.Optional(CONF_REALTIME): cv.boolean,
|
||||||
|
vol.Optional(CONF_VEHICLE_TYPE): vol.In(VEHICLE_TYPES),
|
||||||
|
vol.Optional(CONF_UNITS): vol.In(UNITS),
|
||||||
|
vol.Optional(CONF_AVOID_TOLL_ROADS): cv.boolean,
|
||||||
|
vol.Optional(CONF_AVOID_SUBSCRIPTION_ROADS): cv.boolean,
|
||||||
|
vol.Optional(CONF_AVOID_FERRIES): cv.boolean,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def default_options(hass: HomeAssistant) -> dict[str, str | bool]:
|
def default_options(hass: HomeAssistant) -> dict[str, str | bool]:
|
||||||
"""Get the default options."""
|
"""Get the default options."""
|
||||||
@ -57,43 +70,8 @@ class WazeOptionsFlow(config_entries.OptionsFlow):
|
|||||||
|
|
||||||
return self.async_show_form(
|
return self.async_show_form(
|
||||||
step_id="init",
|
step_id="init",
|
||||||
data_schema=vol.Schema(
|
data_schema=self.add_suggested_values_to_schema(
|
||||||
{
|
OPTIONS_SCHEMA, self.config_entry.options
|
||||||
vol.Optional(
|
|
||||||
CONF_INCL_FILTER,
|
|
||||||
default=self.config_entry.options.get(CONF_INCL_FILTER, ""),
|
|
||||||
): cv.string,
|
|
||||||
vol.Optional(
|
|
||||||
CONF_EXCL_FILTER,
|
|
||||||
default=self.config_entry.options.get(CONF_EXCL_FILTER, ""),
|
|
||||||
): cv.string,
|
|
||||||
vol.Optional(
|
|
||||||
CONF_REALTIME,
|
|
||||||
default=self.config_entry.options[CONF_REALTIME],
|
|
||||||
): cv.boolean,
|
|
||||||
vol.Optional(
|
|
||||||
CONF_VEHICLE_TYPE,
|
|
||||||
default=self.config_entry.options[CONF_VEHICLE_TYPE],
|
|
||||||
): vol.In(VEHICLE_TYPES),
|
|
||||||
vol.Optional(
|
|
||||||
CONF_UNITS,
|
|
||||||
default=self.config_entry.options[CONF_UNITS],
|
|
||||||
): vol.In(UNITS),
|
|
||||||
vol.Optional(
|
|
||||||
CONF_AVOID_TOLL_ROADS,
|
|
||||||
default=self.config_entry.options[CONF_AVOID_TOLL_ROADS],
|
|
||||||
): cv.boolean,
|
|
||||||
vol.Optional(
|
|
||||||
CONF_AVOID_SUBSCRIPTION_ROADS,
|
|
||||||
default=self.config_entry.options[
|
|
||||||
CONF_AVOID_SUBSCRIPTION_ROADS
|
|
||||||
],
|
|
||||||
): cv.boolean,
|
|
||||||
vol.Optional(
|
|
||||||
CONF_AVOID_FERRIES,
|
|
||||||
default=self.config_entry.options[CONF_AVOID_FERRIES],
|
|
||||||
): cv.boolean,
|
|
||||||
}
|
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -60,8 +60,6 @@ async def async_setup_entry(
|
|||||||
name = config_entry.data.get(CONF_NAME, DEFAULT_NAME)
|
name = config_entry.data.get(CONF_NAME, DEFAULT_NAME)
|
||||||
|
|
||||||
data = WazeTravelTimeData(
|
data = WazeTravelTimeData(
|
||||||
None,
|
|
||||||
None,
|
|
||||||
region,
|
region,
|
||||||
config_entry,
|
config_entry,
|
||||||
)
|
)
|
||||||
@ -85,7 +83,14 @@ class WazeTravelTime(SensorEntity):
|
|||||||
configuration_url="https://www.waze.com",
|
configuration_url="https://www.waze.com",
|
||||||
)
|
)
|
||||||
|
|
||||||
def __init__(self, unique_id, name, origin, destination, waze_data):
|
def __init__(
|
||||||
|
self,
|
||||||
|
unique_id: str,
|
||||||
|
name: str,
|
||||||
|
origin: str,
|
||||||
|
destination: str,
|
||||||
|
waze_data: WazeTravelTimeData,
|
||||||
|
) -> None:
|
||||||
"""Initialize the Waze travel time sensor."""
|
"""Initialize the Waze travel time sensor."""
|
||||||
self._attr_unique_id = unique_id
|
self._attr_unique_id = unique_id
|
||||||
self._waze_data = waze_data
|
self._waze_data = waze_data
|
||||||
@ -126,7 +131,7 @@ class WazeTravelTime(SensorEntity):
|
|||||||
"destination": self._waze_data.destination,
|
"destination": self._waze_data.destination,
|
||||||
}
|
}
|
||||||
|
|
||||||
async def first_update(self, _=None):
|
async def first_update(self, _=None) -> None:
|
||||||
"""Run first update and write state."""
|
"""Run first update and write state."""
|
||||||
await self.hass.async_add_executor_job(self.update)
|
await self.hass.async_add_executor_job(self.update)
|
||||||
self.async_write_ha_state()
|
self.async_write_ha_state()
|
||||||
@ -142,12 +147,12 @@ class WazeTravelTime(SensorEntity):
|
|||||||
class WazeTravelTimeData:
|
class WazeTravelTimeData:
|
||||||
"""WazeTravelTime Data object."""
|
"""WazeTravelTime Data object."""
|
||||||
|
|
||||||
def __init__(self, origin, destination, region, config_entry):
|
def __init__(self, region: str, config_entry: ConfigEntry) -> None:
|
||||||
"""Set up WazeRouteCalculator."""
|
"""Set up WazeRouteCalculator."""
|
||||||
self.origin = origin
|
|
||||||
self.destination = destination
|
|
||||||
self.region = region
|
self.region = region
|
||||||
self.config_entry = config_entry
|
self.config_entry = config_entry
|
||||||
|
self.origin: str | None = None
|
||||||
|
self.destination: str | None = None
|
||||||
self.duration = None
|
self.duration = None
|
||||||
self.distance = None
|
self.distance = None
|
||||||
self.route = None
|
self.route = None
|
||||||
|
Loading…
x
Reference in New Issue
Block a user