From df8c94988401b2e0f1f5e08efb83eac47e4be7cb Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Thu, 11 Jul 2024 22:47:10 -0500 Subject: [PATCH] Migrate esphome to use shorthand available attr (#121827) --- homeassistant/components/esphome/entity.py | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/homeassistant/components/esphome/entity.py b/homeassistant/components/esphome/entity.py index 8241d0f4563..6e02f8de869 100644 --- a/homeassistant/components/esphome/entity.py +++ b/homeassistant/components/esphome/entity.py @@ -190,13 +190,13 @@ class EsphomeEntity(Entity, Generic[_InfoT, _StateT]): ) -> None: """Initialize.""" self._entry_data = entry_data + assert entry_data.device_info is not None + device_info = entry_data.device_info + self._device_info = device_info self._on_entry_data_changed() self._key = entity_info.key self._state_type = state_type self._on_static_info_update(entity_info) - assert entry_data.device_info is not None - device_info = entry_data.device_info - self._device_info = device_info self._attr_device_info = DeviceInfo( connections={(dr.CONNECTION_NETWORK_MAC, device_info.mac_address)} ) @@ -288,6 +288,12 @@ class EsphomeEntity(Entity, Generic[_InfoT, _StateT]): entry_data = self._entry_data self._api_version = entry_data.api_version self._client = entry_data.client + if self._device_info.has_deep_sleep: + # During deep sleep the ESP will not be connectable (by design) + # For these cases, show it as available + self._attr_available = entry_data.expected_disconnect + else: + self._attr_available = entry_data.available @callback def _on_device_update(self) -> None: @@ -300,16 +306,6 @@ class EsphomeEntity(Entity, Generic[_InfoT, _StateT]): # through the next entity state packet. self.async_write_ha_state() - @property - def available(self) -> bool: - """Return if the entity is available.""" - if self._device_info.has_deep_sleep: - # During deep sleep the ESP will not be connectable (by design) - # For these cases, show it as available - return self._entry_data.expected_disconnect - - return self._entry_data.available - class EsphomeAssistEntity(Entity): """Define a base entity for Assist Pipeline entities."""