mirror of
https://github.com/home-assistant/core.git
synced 2025-07-19 11:17:21 +00:00
Add warning when entity used in template doesn't exist (#57316)
This commit is contained in:
parent
9c1bee9c16
commit
d9b87ee5c5
@ -831,7 +831,12 @@ def _get_state_if_valid(hass: HomeAssistant, entity_id: str) -> TemplateState |
|
||||
|
||||
|
||||
def _get_state(hass: HomeAssistant, entity_id: str) -> TemplateState | None:
|
||||
return _get_template_state_from_state(hass, entity_id, hass.states.get(entity_id))
|
||||
state_obj = _get_template_state_from_state(
|
||||
hass, entity_id, hass.states.get(entity_id)
|
||||
)
|
||||
if state_obj is None:
|
||||
_LOGGER.warning("Template warning: entity '%s' doesn't exist", entity_id)
|
||||
return state_obj
|
||||
|
||||
|
||||
def _get_template_state_from_state(
|
||||
|
@ -3206,3 +3206,21 @@ async def test_undefined_variable(hass, caplog):
|
||||
"Template variable warning: 'no_such_variable' is undefined when rendering '{{ no_such_variable }}'"
|
||||
in caplog.text
|
||||
)
|
||||
|
||||
|
||||
async def test_missing_entity(hass, caplog):
|
||||
"""Test a warning is logged on missing entity."""
|
||||
hass.states.async_set("binary_sensor.active", "on")
|
||||
valid_template = template.Template(
|
||||
"{{ is_state('binary_sensor.active', 'on') }}", hass
|
||||
)
|
||||
invalid_template = template.Template(
|
||||
"{{ is_state('binary_sensor.abcde', 'on') }}", hass
|
||||
)
|
||||
assert valid_template.async_render() is True
|
||||
assert invalid_template.async_render() is False
|
||||
assert (
|
||||
"Template warning: entity 'binary_sensor.active' doesn't exist"
|
||||
not in caplog.text
|
||||
)
|
||||
assert "Template warning: entity 'binary_sensor.abcde' doesn't exist" in caplog.text
|
||||
|
Loading…
x
Reference in New Issue
Block a user