Home Assistant Unofficial Reference 2024.12.1
logbook.py
Go to the documentation of this file.
1 """Describe elkm1 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 
10 from .const import (
11  ATTR_KEY,
12  ATTR_KEY_NAME,
13  ATTR_KEYPAD_ID,
14  ATTR_KEYPAD_NAME,
15  DOMAIN,
16  EVENT_ELKM1_KEYPAD_KEY_PRESSED,
17 )
18 
19 
20 @callback
22  hass: HomeAssistant,
23  async_describe_event: Callable[[str, str, Callable[[Event], dict[str, str]]], None],
24 ) -> None:
25  """Describe logbook events."""
26 
27  @callback
28  def async_describe_button_event(event: Event) -> dict[str, str]:
29  """Describe elkm1 logbook event."""
30  data = event.data
31  keypad_name = data.get(
32  ATTR_KEYPAD_NAME, data[ATTR_KEYPAD_ID]
33  ) # added in 2022.6
34  return {
35  LOGBOOK_ENTRY_NAME: f"Elk Keypad {keypad_name}",
36  LOGBOOK_ENTRY_MESSAGE: f"pressed {data[ATTR_KEY_NAME]} ({data[ATTR_KEY]})",
37  }
38 
39  async_describe_event(
40  DOMAIN, EVENT_ELKM1_KEYPAD_KEY_PRESSED, async_describe_button_event
41  )
None async_describe_events(HomeAssistant hass, Callable[[str, str, Callable[[Event], dict[str, str]]], None] async_describe_event)
Definition: logbook.py:24