1 """Device action validator."""
3 from __future__
import annotations
5 from typing
import Any, Protocol
7 import voluptuous
as vol
14 from .
import DeviceAutomationType, async_get_device_automation_platform
15 from .helpers
import async_validate_device_automation_config
19 """Define the format of device_action modules.
21 Each module must define either ACTION_SCHEMA or async_validate_action_config.
24 ACTION_SCHEMA: vol.Schema
27 self, hass: HomeAssistant, config: ConfigType
29 """Validate config."""
35 variables: dict[str, Any],
36 context: Context |
None,
38 """Execute a device action."""
41 self, hass: HomeAssistant, config: ConfigType
42 ) -> dict[str, vol.Schema]:
43 """List action capabilities."""
46 self, hass: HomeAssistant, device_id: str
47 ) -> list[dict[str, Any]]:
52 hass: HomeAssistant, config: ConfigType
54 """Validate config."""
56 hass, config, cv.DEVICE_ACTION_SCHEMA, DeviceAutomationType.ACTION
63 variables: dict[str, Any],
64 context: Context |
None,
66 """Execute a device action."""
70 DeviceAutomationType.ACTION,
72 await platform.async_call_action_from_config(hass, config, variables, context)
ConfigType async_validate_action_config(self, HomeAssistant hass, ConfigType config)
dict[str, vol.Schema] async_get_action_capabilities(HomeAssistant hass, ConfigType config)
list[dict[str, str]] async_get_actions(HomeAssistant hass, str device_id)
None async_call_action_from_config(HomeAssistant hass, ConfigType config, dict[str, Any] variables, Context|None context)
ConfigType async_validate_action_config(HomeAssistant hass, ConfigType config)
ConfigType async_validate_device_automation_config(HomeAssistant hass, ConfigType config, vol.Schema automation_schema, DeviceAutomationType automation_type)
DeviceAutomationTriggerProtocol async_get_device_automation_platform(HomeAssistant hass, str domain, Literal[DeviceAutomationType.TRIGGER] automation_type)