1 """The Xiaomi BLE integration."""
3 from collections.abc
import Callable, Coroutine
4 from logging
import Logger
7 from xiaomi_ble
import SensorUpdate, XiaomiBluetoothDeviceData
10 BluetoothScanningMode,
11 BluetoothServiceInfoBleak,
14 ActiveBluetoothProcessorCoordinator,
17 PassiveBluetoothDataProcessor,
22 from .const
import CONF_SLEEPY_DEVICE
23 from .types
import XiaomiBLEConfigEntry
27 ActiveBluetoothProcessorCoordinator[SensorUpdate]
29 """Define a Xiaomi Bluetooth Active Update Processor Coordinator."""
37 mode: BluetoothScanningMode,
38 update_method: Callable[[BluetoothServiceInfoBleak], SensorUpdate],
39 needs_poll_method: Callable[[BluetoothServiceInfoBleak, float |
None], bool],
40 device_data: XiaomiBluetoothDeviceData,
41 discovered_event_classes: set[str],
42 poll_method: Callable[
43 [BluetoothServiceInfoBleak],
44 Coroutine[Any, Any, SensorUpdate],
47 poll_debouncer: Debouncer[Coroutine[Any, Any,
None]] |
None =
None,
48 entry: XiaomiBLEConfigEntry,
49 connectable: bool =
True,
51 """Initialize the Xiaomi Bluetooth Active Update Processor Coordinator."""
57 update_method=update_method,
58 needs_poll_method=needs_poll_method,
59 poll_method=poll_method,
60 poll_debouncer=poll_debouncer,
61 connectable=connectable,
69 """Return True if the device is a sleepy device."""
70 return self.
entryentry.data.get(CONF_SLEEPY_DEVICE, self.
device_datadevice_data.sleepy_device)
74 PassiveBluetoothDataProcessor[_T, SensorUpdate]
76 """Define a Xiaomi Bluetooth Passive Update Data Processor."""
78 coordinator: XiaomiActiveBluetoothProcessorCoordinator
None __init__(self, HomeAssistant hass, Logger logger, *str address, BluetoothScanningMode mode, Callable[[BluetoothServiceInfoBleak], SensorUpdate] update_method, Callable[[BluetoothServiceInfoBleak, float|None], bool] needs_poll_method, XiaomiBluetoothDeviceData device_data, set[str] discovered_event_classes, Callable[[BluetoothServiceInfoBleak], Coroutine[Any, Any, SensorUpdate],]|None poll_method=None, Debouncer[Coroutine[Any, Any, None]]|None poll_debouncer=None, XiaomiBLEConfigEntry entry, bool connectable=True)