Home Assistant Unofficial Reference 2024.12.1
data.py
Go to the documentation of this file.
1 """Support for Yale devices."""
2 
3 from __future__ import annotations
4 
5 from yalexs.lock import LockDetail
6 from yalexs.manager.data import YaleXSData
7 from yalexs_ble import YaleXSBLEDiscovery
8 
9 from homeassistant.config_entries import SOURCE_INTEGRATION_DISCOVERY
10 from homeassistant.core import HomeAssistant, callback
11 from homeassistant.exceptions import HomeAssistantError
12 from homeassistant.helpers import discovery_flow
13 
14 from .gateway import YaleGateway
15 
16 YALEXS_BLE_DOMAIN = "yalexs_ble"
17 
18 
19 @callback
21  hass: HomeAssistant, locks_with_offline_keys: list[LockDetail]
22 ) -> None:
23  """Update keys for the yalexs-ble integration if available."""
24  for lock_detail in locks_with_offline_keys:
25  discovery_flow.async_create_flow(
26  hass,
27  YALEXS_BLE_DOMAIN,
28  context={"source": SOURCE_INTEGRATION_DISCOVERY},
29  data=YaleXSBLEDiscovery(
30  {
31  "name": lock_detail.device_name,
32  "address": lock_detail.mac_address,
33  "serial": lock_detail.serial_number,
34  "key": lock_detail.offline_key,
35  "slot": lock_detail.offline_slot,
36  }
37  ),
38  )
39 
40 
41 class YaleData(YaleXSData):
42  """yale data object."""
43 
44  def __init__(self, hass: HomeAssistant, yale_gateway: YaleGateway) -> None:
45  """Init yale data object."""
46  self._hass_hass = hass
47  super().__init__(yale_gateway, HomeAssistantError)
48 
49  @callback
50  def async_offline_key_discovered(self, detail: LockDetail) -> None:
51  """Handle offline key discovery."""
52  _async_trigger_ble_lock_discovery(self._hass_hass, [detail])
None __init__(self, HomeAssistant hass, YaleGateway yale_gateway)
Definition: data.py:44
None async_offline_key_discovered(self, LockDetail detail)
Definition: data.py:50
None _async_trigger_ble_lock_discovery(HomeAssistant hass, list[LockDetail] locks_with_offline_keys)
Definition: data.py:22