mirror of
https://github.com/home-assistant/core.git
synced 2025-07-24 21:57:51 +00:00
Move check thresholds valid to platform schema in threshold (#129540)
This commit is contained in:
parent
8384100e1b
commit
d11012b2b7
@ -61,15 +61,29 @@ _LOGGER = logging.getLogger(__name__)
|
|||||||
|
|
||||||
DEFAULT_NAME: Final = "Threshold"
|
DEFAULT_NAME: Final = "Threshold"
|
||||||
|
|
||||||
PLATFORM_SCHEMA = BINARY_SENSOR_PLATFORM_SCHEMA.extend(
|
|
||||||
{
|
def no_missing_threshold(value: dict) -> dict:
|
||||||
vol.Required(CONF_ENTITY_ID): cv.entity_id,
|
"""Validate data point list is greater than polynomial degrees."""
|
||||||
vol.Optional(CONF_DEVICE_CLASS): DEVICE_CLASSES_SCHEMA,
|
if value.get(CONF_LOWER) is None and value.get(CONF_UPPER) is None:
|
||||||
vol.Optional(CONF_HYSTERESIS, default=DEFAULT_HYSTERESIS): vol.Coerce(float),
|
raise vol.Invalid("Lower or Upper thresholds are not provided")
|
||||||
vol.Optional(CONF_LOWER): vol.Coerce(float),
|
|
||||||
vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string,
|
return value
|
||||||
vol.Optional(CONF_UPPER): vol.Coerce(float),
|
|
||||||
}
|
|
||||||
|
PLATFORM_SCHEMA = vol.All(
|
||||||
|
BINARY_SENSOR_PLATFORM_SCHEMA.extend(
|
||||||
|
{
|
||||||
|
vol.Required(CONF_ENTITY_ID): cv.entity_id,
|
||||||
|
vol.Optional(CONF_DEVICE_CLASS): DEVICE_CLASSES_SCHEMA,
|
||||||
|
vol.Optional(CONF_HYSTERESIS, default=DEFAULT_HYSTERESIS): vol.Coerce(
|
||||||
|
float
|
||||||
|
),
|
||||||
|
vol.Optional(CONF_LOWER): vol.Coerce(float),
|
||||||
|
vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string,
|
||||||
|
vol.Optional(CONF_UPPER): vol.Coerce(float),
|
||||||
|
}
|
||||||
|
),
|
||||||
|
no_missing_threshold,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@ -126,9 +140,6 @@ async def async_setup_platform(
|
|||||||
hysteresis: float = config[CONF_HYSTERESIS]
|
hysteresis: float = config[CONF_HYSTERESIS]
|
||||||
device_class: BinarySensorDeviceClass | None = config.get(CONF_DEVICE_CLASS)
|
device_class: BinarySensorDeviceClass | None = config.get(CONF_DEVICE_CLASS)
|
||||||
|
|
||||||
if lower is None and upper is None:
|
|
||||||
raise ValueError("Lower or Upper thresholds not provided")
|
|
||||||
|
|
||||||
async_add_entities(
|
async_add_entities(
|
||||||
[
|
[
|
||||||
ThresholdSensor(
|
ThresholdSensor(
|
||||||
|
@ -538,7 +538,7 @@ async def test_sensor_no_lower_upper(
|
|||||||
await async_setup_component(hass, Platform.BINARY_SENSOR, config)
|
await async_setup_component(hass, Platform.BINARY_SENSOR, config)
|
||||||
await hass.async_block_till_done()
|
await hass.async_block_till_done()
|
||||||
|
|
||||||
assert "Lower or Upper thresholds not provided" in caplog.text
|
assert "Lower or Upper thresholds are not provided" in caplog.text
|
||||||
|
|
||||||
|
|
||||||
async def test_device_id(
|
async def test_device_id(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user