34 lines
1.1 KiB
Python
34 lines
1.1 KiB
Python
"""Describe deCONZ logbook events."""
|
|
|
|
from typing import Callable, Optional
|
|
|
|
from homeassistant.const import ATTR_DEVICE_ID, CONF_EVENT
|
|
from homeassistant.core import HomeAssistant, callback
|
|
from homeassistant.helpers.event import Event
|
|
|
|
from .const import DOMAIN as DECONZ_DOMAIN
|
|
from .deconz_event import CONF_DECONZ_EVENT, DeconzEvent
|
|
from .device_trigger import _get_deconz_event_from_device_id
|
|
|
|
|
|
@callback
|
|
def async_describe_events(
|
|
hass: HomeAssistant,
|
|
async_describe_event: Callable[[str, str, Callable[[Event], dict]], None],
|
|
) -> None:
|
|
"""Describe logbook events."""
|
|
|
|
@callback
|
|
def async_describe_deconz_event(event: Event) -> dict:
|
|
"""Describe deCONZ logbook event."""
|
|
deconz_event: Optional[DeconzEvent] = _get_deconz_event_from_device_id(
|
|
hass, event.data[ATTR_DEVICE_ID]
|
|
)
|
|
|
|
return {
|
|
"name": f"{deconz_event.device.name}",
|
|
"message": f"fired event '{event.data[CONF_EVENT]}'.",
|
|
}
|
|
|
|
async_describe_event(DECONZ_DOMAIN, CONF_DECONZ_EVENT, async_describe_deconz_event)
|