1 """Provides device triggers for Nanoleaf."""
3 from __future__
import annotations
5 import voluptuous
as vol
8 DEVICE_TRIGGER_BASE_SCHEMA,
25 from .const
import DOMAIN, NANOLEAF_EVENT, TOUCH_GESTURE_TRIGGER_MAP, TOUCH_MODELS
27 TRIGGER_TYPES = TOUCH_GESTURE_TRIGGER_MAP.values()
29 TRIGGER_SCHEMA = DEVICE_TRIGGER_BASE_SCHEMA.extend(
31 vol.Required(CONF_DOMAIN): DOMAIN,
32 vol.Required(CONF_DEVICE_ID): str,
33 vol.Required(CONF_TYPE): vol.In(TRIGGER_TYPES),
39 hass: HomeAssistant, device_id: str
40 ) -> list[dict[str, str]]:
41 """List device triggers for Nanoleaf devices."""
42 device_registry = dr.async_get(hass)
43 device_entry = device_registry.async_get(device_id)
44 if device_entry
is None:
46 if device_entry.model
not in TOUCH_MODELS:
50 CONF_PLATFORM:
"device",
52 CONF_DEVICE_ID: device_id,
53 CONF_TYPE: trigger_type,
55 for trigger_type
in TRIGGER_TYPES
62 action: TriggerActionType,
63 trigger_info: TriggerInfo,
65 """Attach a trigger."""
69 "deprecated_device_trigger_nanoleaf",
71 breaks_in_ha_version=
"2025.1.0",
72 severity=IssueSeverity.WARNING,
73 translation_key=
"deprecated_device_trigger",
75 event_config = event_trigger.TRIGGER_SCHEMA(
77 event_trigger.CONF_PLATFORM: CONF_EVENT,
78 event_trigger.CONF_EVENT_TYPE: NANOLEAF_EVENT,
79 event_trigger.CONF_EVENT_DATA: {
80 CONF_TYPE: config[CONF_TYPE],
81 CONF_DEVICE_ID: config[CONF_DEVICE_ID],
85 return await event_trigger.async_attach_trigger(
86 hass, event_config, action, trigger_info, platform_type=
"device"
list[dict[str, str]] async_get_triggers(HomeAssistant hass, str device_id)
CALLBACK_TYPE async_attach_trigger(HomeAssistant hass, ConfigType config, TriggerActionType action, TriggerInfo trigger_info)
None async_create_issue(HomeAssistant hass, str entry_id)