1 """Bluetooth support for shelly."""
3 from __future__
import annotations
5 from typing
import TYPE_CHECKING
7 from aioshelly.ble
import async_start_scanner, create_scanner
8 from aioshelly.ble.const
import BLE_SCAN_RESULT_EVENT, BLE_SCAN_RESULT_VERSION
14 from ..const
import BLEScannerMode
17 from ..coordinator
import ShellyRpcCoordinator
22 coordinator: ShellyRpcCoordinator,
23 scanner_mode: BLEScannerMode,
25 """Connect scanner."""
26 device = coordinator.device
27 entry = coordinator.entry
29 scanner = create_scanner(source, entry.title)
32 scanner.async_setup(),
33 coordinator.async_subscribe_events(scanner.async_on_event),
35 await async_start_scanner(
37 active=scanner_mode == BLEScannerMode.ACTIVE,
38 event_type=BLE_SCAN_RESULT_EVENT,
39 data_version=BLE_SCAN_RESULT_VERSION,
44 for callback
in unload_callbacks:
CALLBACK_TYPE async_register_scanner(HomeAssistant hass, BaseHaScanner scanner, int|None connection_slots=None)
None _async_unload(list[CALLBACK_TYPE] unload_callbacks)
CALLBACK_TYPE async_connect_scanner(HomeAssistant hass, ShellyRpcCoordinator coordinator, BLEScannerMode scanner_mode)