Only render templates if availability is true

This commit is contained in:
G Johansson 2024-12-16 17:20:15 +00:00
parent d452e957c9
commit 579f44468e
2 changed files with 7 additions and 5 deletions

View File

@ -48,8 +48,8 @@ class TriggerEntity( # pylint: disable=hass-enforce-class-module
**(run_variables or {}),
}
self._render_availability_template(variables)
self._render_templates(variables)
if self._render_availability_template(variables):
self._render_templates(variables)
self.async_set_context(self.coordinator.data["context"])

View File

@ -176,7 +176,7 @@ class TriggerBaseEntity(Entity):
extra_state_attributes[attr] = last_state.attributes[attr]
self._rendered[CONF_ATTRIBUTES] = extra_state_attributes
def _render_availability_template(self, variables: dict[str, Any]) -> None:
def _render_availability_template(self, variables: dict[str, Any]) -> bool:
"""Render availability template."""
rendered = dict(self._static_rendered)
key = CONF_AVAILABILITY
@ -191,11 +191,13 @@ class TriggerBaseEntity(Entity):
self._config[key],
variables,
)
return False
except TemplateError as err:
logging.getLogger(f"{__package__}.{self.entity_id.split('.')[0]}").error(
"Error rendering %s template for %s: %s", key, self.entity_id, err
)
self._rendered = rendered
return True
def _render_templates(self, variables: dict[str, Any]) -> None:
"""Render templates."""
@ -265,8 +267,8 @@ class ManualTriggerEntity(TriggerBaseEntity):
"this": TemplateStateFromEntityId(self.hass, self.entity_id),
**(run_variables or {}),
}
self._render_availability_template(variables)
self._render_templates(variables)
if self._render_availability_template(variables):
self._render_templates(variables)
class ManualTriggerSensorEntity(ManualTriggerEntity, SensorEntity):