From 93a8aef4ccb0c344f1eb232b313dc239e9566b26 Mon Sep 17 00:00:00 2001
From: Jc2k <john.carr@unrouted.co.uk>
Date: Thu, 1 Sep 2022 17:57:49 +0100
Subject: [PATCH] Fix async_all_discovered_devices(False) to return connectable
 and unconnectable devices (#77670)

---
 homeassistant/components/bluetooth/manager.py | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/homeassistant/components/bluetooth/manager.py b/homeassistant/components/bluetooth/manager.py
index d2b59469bd9..d274939c610 100644
--- a/homeassistant/components/bluetooth/manager.py
+++ b/homeassistant/components/bluetooth/manager.py
@@ -221,10 +221,14 @@ class BluetoothManager:
     @hass_callback
     def async_all_discovered_devices(self, connectable: bool) -> Iterable[BLEDevice]:
         """Return all of discovered devices from all the scanners including duplicates."""
-        return itertools.chain.from_iterable(
-            scanner.discovered_devices
-            for scanner in self._get_scanners_by_type(connectable)
+        yield from itertools.chain.from_iterable(
+            scanner.discovered_devices for scanner in self._get_scanners_by_type(True)
         )
+        if not connectable:
+            yield from itertools.chain.from_iterable(
+                scanner.discovered_devices
+                for scanner in self._get_scanners_by_type(False)
+            )
 
     @hass_callback
     def async_discovered_devices(self, connectable: bool) -> list[BLEDevice]:
-- 
GitLab