Files
homeassistant_config/config/custom_components/pyscript/logbook.py
2024-08-09 06:45:02 +02:00

46 lines
1.5 KiB
Python

"""Describe logbook events."""
import logging
from homeassistant.core import callback
from .const import DOMAIN
_LOGGER = logging.getLogger(__name__)
@callback
def async_describe_events(hass, async_describe_event): # type: ignore
"""Describe logbook events."""
@callback
def async_describe_logbook_event(event): # type: ignore
"""Describe a logbook event."""
data = event.data
func_args = data.get("func_args", {})
ev_name = data.get("name", "unknown")
ev_entity_id = data.get("entity_id", "pyscript.unknown")
ev_trigger_type = func_args.get("trigger_type", "unknown")
if ev_trigger_type == "event":
ev_source = f"event {func_args.get('event_type', 'unknown event')}"
elif ev_trigger_type == "state":
ev_source = f"state change {func_args.get('var_name', 'unknown entity')} == {func_args.get('value', 'unknown value')}"
elif ev_trigger_type == "time":
ev_trigger_time = func_args.get("trigger_time", "unknown")
if ev_trigger_time is None:
ev_trigger_time = "startup"
ev_source = f"time {ev_trigger_time}"
else:
ev_source = ev_trigger_type
message = f"has been triggered by {ev_source}"
return {
"name": ev_name,
"message": message,
"source": ev_source,
"entity_id": ev_entity_id,
}
async_describe_event(DOMAIN, "pyscript_running", async_describe_logbook_event)