Home Assistant Unofficial Reference 2024.12.1
logbook.py
Go to the documentation of this file.
1 """Describe bthome logbook events."""
2 
3 from __future__ import annotations
4 
5 from collections.abc import Callable
6 
7 from homeassistant.components.logbook import LOGBOOK_ENTRY_MESSAGE, LOGBOOK_ENTRY_NAME
8 from homeassistant.core import Event, HomeAssistant, callback
9 from homeassistant.helpers import device_registry as dr
10 
11 from .const import BTHOME_BLE_EVENT, DOMAIN, BTHomeBleEvent
12 
13 
14 @callback
16  hass: HomeAssistant,
17  async_describe_event: Callable[
18  [str, str, Callable[[Event[BTHomeBleEvent]], dict[str, str]]], None
19  ],
20 ) -> None:
21  """Describe logbook events."""
22  dev_reg = dr.async_get(hass)
23 
24  @callback
25  def async_describe_bthome_event(event: Event[BTHomeBleEvent]) -> dict[str, str]:
26  """Describe bthome logbook event."""
27  data = event.data
28  device = dev_reg.async_get(data["device_id"])
29  name = device and device.name or f'BTHome {data["address"]}'
30  if properties := data["event_properties"]:
31  message = f"{data['event_class']} {data['event_type']}: {properties}"
32  else:
33  message = f"{data['event_class']} {data['event_type']}"
34  return {
35  LOGBOOK_ENTRY_NAME: name,
36  LOGBOOK_ENTRY_MESSAGE: message,
37  }
38 
39  async_describe_event(DOMAIN, BTHOME_BLE_EVENT, async_describe_bthome_event)
None async_describe_events(HomeAssistant hass, Callable[[str, str, Callable[[Event[BTHomeBleEvent]], dict[str, str]]], None] async_describe_event)
Definition: logbook.py:20