From df8c94988401b2e0f1f5e08efb83eac47e4be7cb Mon Sep 17 00:00:00 2001
From: "J. Nick Koston" <nick@koston.org>
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."""
-- 
GitLab