1
0
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:
Bram Kragten
2020-11-25 20:03:56 +01:00
committed by GitHub
parent 6706ea36de
commit 3767af14f3
4 changed files with 82 additions and 6 deletions

View File

@@ -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,
}
)