From 32aacac55044d4f6ea8db385aa4aa467ab9382ba Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Tue, 23 Sep 2025 23:14:08 -0500 Subject: [PATCH] Fix async_get_scanner return type for BleakScanner compatibility (#152840) --- homeassistant/components/bluetooth/api.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/homeassistant/components/bluetooth/api.py b/homeassistant/components/bluetooth/api.py index f12d22cc8b52..556ae2ac9fd2 100644 --- a/homeassistant/components/bluetooth/api.py +++ b/homeassistant/components/bluetooth/api.py @@ -10,6 +10,7 @@ from asyncio import Future from collections.abc import Callable, Iterable from typing import TYPE_CHECKING, cast +from bleak import BleakScanner from habluetooth import ( BaseHaScanner, BluetoothScannerDevice, @@ -38,13 +39,16 @@ def _get_manager(hass: HomeAssistant) -> HomeAssistantBluetoothManager: @hass_callback -def async_get_scanner(hass: HomeAssistant) -> HaBleakScannerWrapper: - """Return a HaBleakScannerWrapper. +def async_get_scanner(hass: HomeAssistant) -> BleakScanner: + """Return a HaBleakScannerWrapper cast to BleakScanner. This is a wrapper around our BleakScanner singleton that allows multiple integrations to share the same BleakScanner. + + The wrapper is cast to BleakScanner for type compatibility with + libraries expecting a BleakScanner instance. """ - return HaBleakScannerWrapper() + return cast(BleakScanner, HaBleakScannerWrapper()) @hass_callback