Add support for attribute caching to ToggleEntity (#106272)

This commit is contained in:
J. Nick Koston 2023-12-23 00:11:14 -10:00 committed by GitHub
parent ca7daa21fe
commit 1c8d961832
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1496,7 +1496,12 @@ class ToggleEntityDescription(EntityDescription, frozen_or_thawed=True):
"""A class that describes toggle entities."""
class ToggleEntity(Entity):
TOGGLE_ENTITY_CACHED_PROPERTIES_WITH_ATTR_ = {"is_on"}
class ToggleEntity(
Entity, cached_properties=TOGGLE_ENTITY_CACHED_PROPERTIES_WITH_ATTR_
):
"""An abstract class for entities that can be turned on and off."""
entity_description: ToggleEntityDescription
@ -1511,7 +1516,7 @@ class ToggleEntity(Entity):
return None
return STATE_ON if is_on else STATE_OFF
@property
@cached_property
def is_on(self) -> bool | None:
"""Return True if entity is on."""
return self._attr_is_on