Make set_value required in number template (#124917)

* Make set_value required in number template

* Make set_value required in number template

* Fix tests
pull/124950/head
Joost Lekkerkerker 2024-08-30 22:02:10 +02:00 committed by GitHub
parent 460363c4ba
commit 8c2e63807c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 44 additions and 5 deletions

View File

@ -70,7 +70,7 @@ NUMBER_CONFIG_SCHEMA = vol.Schema(
vol.Required(CONF_NAME): cv.template,
vol.Required(CONF_STATE): cv.template,
vol.Required(CONF_STEP): cv.template,
vol.Optional(CONF_SET_VALUE): cv.SCRIPT_SCHEMA,
vol.Required(CONF_SET_VALUE): cv.SCRIPT_SCHEMA,
vol.Optional(CONF_MIN): cv.template,
vol.Optional(CONF_MAX): cv.template,
vol.Optional(CONF_DEVICE_ID): selector.DeviceSelector(),
@ -154,11 +154,10 @@ class TemplateNumber(TemplateEntity, NumberEntity):
super().__init__(hass, config=config, unique_id=unique_id)
assert self._attr_name is not None
self._value_template = config[CONF_STATE]
self._command_set_value = (
Script(hass, config[CONF_SET_VALUE], self._attr_name, DOMAIN)
if config.get(CONF_SET_VALUE, None) is not None
else None
self._command_set_value = Script(
hass, config[CONF_SET_VALUE], self._attr_name, DOMAIN
)
self._step_template = config[CONF_STEP]
self._min_value_template = config[CONF_MIN]
self._max_value_template = config[CONF_MAX]

View File

@ -101,11 +101,21 @@ from tests.typing import WebSocketGenerator
"min": "{{ 0 }}",
"max": "{{ 100 }}",
"step": "{{ 0.1 }}",
"set_value": {
"action": "input_number.set_value",
"target": {"entity_id": "input_number.test"},
"data": {"value": "{{ value }}"},
},
},
{
"min": "{{ 0 }}",
"max": "{{ 100 }}",
"step": "{{ 0.1 }}",
"set_value": {
"action": "input_number.set_value",
"target": {"entity_id": "input_number.test"},
"data": {"value": "{{ value }}"},
},
},
{},
),
@ -444,11 +454,21 @@ def get_suggested(schema, key):
"min": "{{ 0 }}",
"max": "{{ 100 }}",
"step": "{{ 0.1 }}",
"set_value": {
"action": "input_number.set_value",
"target": {"entity_id": "input_number.test"},
"data": {"value": "{{ value }}"},
},
},
{
"min": "{{ 0 }}",
"max": "{{ 100 }}",
"step": "{{ 0.1 }}",
"set_value": {
"action": "input_number.set_value",
"target": {"entity_id": "input_number.test"},
"data": {"value": "{{ value }}"},
},
},
"state",
),

View File

@ -322,12 +322,22 @@ async def async_yaml_patch_helper(hass: HomeAssistant, filename: str) -> None:
"min": "{{ 0 }}",
"max": "{{ 100 }}",
"step": "{{ 0.1 }}",
"set_value": {
"action": "input_number.set_value",
"target": {"entity_id": "input_number.test"},
"data": {"value": "{{ value }}"},
},
},
{
"state": "{{ 11 }}",
"min": "{{ 0 }}",
"max": "{{ 100 }}",
"step": "{{ 0.1 }}",
"set_value": {
"action": "input_number.set_value",
"target": {"entity_id": "input_number.test"},
"data": {"value": "{{ value }}"},
},
},
),
(

View File

@ -61,6 +61,11 @@ async def test_setup_config_entry(
"min": "{{ 0 }}",
"max": "{{ 100 }}",
"step": "{{ 0.1 }}",
"set_value": {
"action": "input_number.set_value",
"target": {"entity_id": "input_number.test"},
"data": {"value": "{{ value }}"},
},
},
title="My template",
)
@ -522,6 +527,11 @@ async def test_device_id(
"min": "{{ 0 }}",
"max": "{{ 100 }}",
"step": "{{ 0.1 }}",
"set_value": {
"action": "input_number.set_value",
"target": {"entity_id": "input_number.test"},
"data": {"value": "{{ value }}"},
},
"device_id": device_entry.id,
},
title="My template",