mirror of
https://github.com/home-assistant/core.git
synced 2025-12-24 12:59:34 +00:00
Add more selectors (#43639)
This commit is contained in:
@@ -3,6 +3,7 @@ from typing import Any, Callable, Dict, cast
|
||||
|
||||
import voluptuous as vol
|
||||
|
||||
from homeassistant.const import CONF_MODE, CONF_UNIT_OF_MEASUREMENT
|
||||
from homeassistant.util import decorator
|
||||
|
||||
SELECTORS = decorator.Registry()
|
||||
@@ -68,3 +69,39 @@ class DeviceSelector(Selector):
|
||||
vol.Optional("model"): str,
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
@SELECTORS.register("number")
|
||||
class NumberSelector(Selector):
|
||||
"""Selector of a numeric value."""
|
||||
|
||||
CONFIG_SCHEMA = vol.Schema(
|
||||
{
|
||||
vol.Required("min"): vol.Coerce(float),
|
||||
vol.Required("max"): vol.Coerce(float),
|
||||
vol.Optional("step", default=1): vol.All(
|
||||
vol.Coerce(float), vol.Range(min=1e-3)
|
||||
),
|
||||
vol.Optional(CONF_UNIT_OF_MEASUREMENT): str,
|
||||
vol.Optional(CONF_MODE, default="slider"): vol.In(["box", "slider"]),
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
@SELECTORS.register("boolean")
|
||||
class BooleanSelector(Selector):
|
||||
"""Selector of a boolean value."""
|
||||
|
||||
CONFIG_SCHEMA = vol.Schema({})
|
||||
|
||||
|
||||
@SELECTORS.register("datetime")
|
||||
class DateTimeSelector(Selector):
|
||||
"""Selector of a date and or time value."""
|
||||
|
||||
CONFIG_SCHEMA = vol.Schema(
|
||||
{
|
||||
vol.Optional("has_date", default=False): bool,
|
||||
vol.Optional("has_time", default=False): bool,
|
||||
}
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user