From 882ad31a99f2f0e306e7b902c28837d72028d7b6 Mon Sep 17 00:00:00 2001
From: "J. Nick Koston" <nick@koston.org>
Date: Mon, 31 Oct 2022 20:21:40 -0500
Subject: [PATCH] Fix Yale Access Bluetooth not being available again after
 being unavailable (#81320)

---
 homeassistant/components/yalexs_ble/__init__.py   | 13 +++++++++++++
 homeassistant/components/yalexs_ble/manifest.json |  2 +-
 requirements_all.txt                              |  2 +-
 requirements_test_all.txt                         |  2 +-
 4 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/homeassistant/components/yalexs_ble/__init__.py b/homeassistant/components/yalexs_ble/__init__.py
index 6073bf7a032..7a2b3146265 100644
--- a/homeassistant/components/yalexs_ble/__init__.py
+++ b/homeassistant/components/yalexs_ble/__init__.py
@@ -94,6 +94,19 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
         entry.title, push_lock
     )
 
+    @callback
+    def _async_device_unavailable(
+        _service_info: bluetooth.BluetoothServiceInfoBleak,
+    ) -> None:
+        """Handle device not longer being seen by the bluetooth stack."""
+        push_lock.reset_advertisement_state()
+
+    entry.async_on_unload(
+        bluetooth.async_track_unavailable(
+            hass, _async_device_unavailable, push_lock.address
+        )
+    )
+
     await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
     entry.async_on_unload(entry.add_update_listener(_async_update_listener))
     return True
diff --git a/homeassistant/components/yalexs_ble/manifest.json b/homeassistant/components/yalexs_ble/manifest.json
index 7bc8bde5b30..b43ce18a7e9 100644
--- a/homeassistant/components/yalexs_ble/manifest.json
+++ b/homeassistant/components/yalexs_ble/manifest.json
@@ -3,7 +3,7 @@
   "name": "Yale Access Bluetooth",
   "config_flow": true,
   "documentation": "https://www.home-assistant.io/integrations/yalexs_ble",
-  "requirements": ["yalexs-ble==1.9.4"],
+  "requirements": ["yalexs-ble==1.9.5"],
   "dependencies": ["bluetooth"],
   "codeowners": ["@bdraco"],
   "bluetooth": [
diff --git a/requirements_all.txt b/requirements_all.txt
index 25f63a9faf7..b6d58a7854b 100644
--- a/requirements_all.txt
+++ b/requirements_all.txt
@@ -2577,7 +2577,7 @@ xs1-api-client==3.0.0
 yalesmartalarmclient==0.3.9
 
 # homeassistant.components.yalexs_ble
-yalexs-ble==1.9.4
+yalexs-ble==1.9.5
 
 # homeassistant.components.august
 yalexs==1.2.6
diff --git a/requirements_test_all.txt b/requirements_test_all.txt
index bc3f4ee9afa..dcb073c2a7c 100644
--- a/requirements_test_all.txt
+++ b/requirements_test_all.txt
@@ -1787,7 +1787,7 @@ xmltodict==0.13.0
 yalesmartalarmclient==0.3.9
 
 # homeassistant.components.yalexs_ble
-yalexs-ble==1.9.4
+yalexs-ble==1.9.5
 
 # homeassistant.components.august
 yalexs==1.2.6
-- 
GitLab