mirror of
https://github.com/home-assistant/core.git
synced 2025-07-19 03:07:37 +00:00
Defer template tracking setup until template entity start (#40388)
This commit is contained in:
parent
7029345b9d
commit
f837da6fe3
@ -213,7 +213,6 @@ class TemplateEntity(Entity):
|
|||||||
attribute = _TemplateAttribute(
|
attribute = _TemplateAttribute(
|
||||||
self, attribute, template, validator, on_update, none_on_template_error
|
self, attribute, template, validator, on_update, none_on_template_error
|
||||||
)
|
)
|
||||||
attribute.async_setup()
|
|
||||||
self._template_attrs.setdefault(template, [])
|
self._template_attrs.setdefault(template, [])
|
||||||
self._template_attrs[template].append(attribute)
|
self._template_attrs[template].append(attribute)
|
||||||
|
|
||||||
@ -252,22 +251,21 @@ class TemplateEntity(Entity):
|
|||||||
event, update.template, update.last_result, update.result
|
event, update.template, update.last_result, update.result
|
||||||
)
|
)
|
||||||
|
|
||||||
if self._async_update:
|
self.async_write_ha_state()
|
||||||
self.async_write_ha_state()
|
|
||||||
|
|
||||||
async def _async_template_startup(self, *_) -> None:
|
async def _async_template_startup(self, *_) -> None:
|
||||||
# _handle_results will not write state until "_async_update" is set
|
template_var_tups = []
|
||||||
template_var_tups = [
|
for template, attributes in self._template_attrs.items():
|
||||||
TrackTemplate(template, None) for template in self._template_attrs
|
template_var_tups.append(TrackTemplate(template, None))
|
||||||
]
|
for attribute in attributes:
|
||||||
|
attribute.async_setup()
|
||||||
|
|
||||||
result_info = async_track_template_result(
|
result_info = async_track_template_result(
|
||||||
self.hass, template_var_tups, self._handle_results
|
self.hass, template_var_tups, self._handle_results
|
||||||
)
|
)
|
||||||
self.async_on_remove(result_info.async_remove)
|
self.async_on_remove(result_info.async_remove)
|
||||||
result_info.async_refresh()
|
|
||||||
self.async_write_ha_state()
|
|
||||||
self._async_update = result_info.async_refresh
|
self._async_update = result_info.async_refresh
|
||||||
|
result_info.async_refresh()
|
||||||
|
|
||||||
async def async_added_to_hass(self) -> None:
|
async def async_added_to_hass(self) -> None:
|
||||||
"""Run when entity about to be added to hass."""
|
"""Run when entity about to be added to hass."""
|
||||||
|
Loading…
x
Reference in New Issue
Block a user