Home Assistant Unofficial Reference 2024.12.1
coordinator.py
Go to the documentation of this file.
1 """The BTHome Bluetooth integration."""
2 
3 from collections.abc import Callable
4 from logging import Logger
5 
6 from bthome_ble import BTHomeBluetoothDeviceData, SensorUpdate
7 
9  BluetoothScanningMode,
10  BluetoothServiceInfoBleak,
11 )
13  PassiveBluetoothDataProcessor,
14  PassiveBluetoothProcessorCoordinator,
15 )
16 from homeassistant.core import HomeAssistant
17 
18 from .const import CONF_SLEEPY_DEVICE
19 from .types import BTHomeConfigEntry
20 
21 
23  PassiveBluetoothProcessorCoordinator[SensorUpdate]
24 ):
25  """Define a BTHome Bluetooth Passive Update Processor Coordinator."""
26 
27  def __init__(
28  self,
29  hass: HomeAssistant,
30  logger: Logger,
31  address: str,
32  mode: BluetoothScanningMode,
33  update_method: Callable[[BluetoothServiceInfoBleak], SensorUpdate],
34  device_data: BTHomeBluetoothDeviceData,
35  discovered_event_classes: set[str],
36  entry: BTHomeConfigEntry,
37  connectable: bool = False,
38  ) -> None:
39  """Initialize the BTHome Bluetooth Passive Update Processor Coordinator."""
40  super().__init__(hass, logger, address, mode, update_method, connectable)
41  self.discovered_event_classesdiscovered_event_classes = discovered_event_classes
42  self.device_datadevice_data = device_data
43  self.entryentry = entry
44 
45  @property
46  def sleepy_device(self) -> bool:
47  """Return True if the device is a sleepy device."""
48  return self.entryentry.data.get(CONF_SLEEPY_DEVICE, self.device_datadevice_data.sleepy_device)
49 
50 
52  PassiveBluetoothDataProcessor[_T, SensorUpdate]
53 ):
54  """Define a BTHome Bluetooth Passive Update Data Processor."""
55 
56  coordinator: BTHomePassiveBluetoothProcessorCoordinator
None __init__(self, HomeAssistant hass, Logger logger, str address, BluetoothScanningMode mode, Callable[[BluetoothServiceInfoBleak], SensorUpdate] update_method, BTHomeBluetoothDeviceData device_data, set[str] discovered_event_classes, BTHomeConfigEntry entry, bool connectable=False)
Definition: coordinator.py:38