1 """Validate device conditions."""
3 from __future__
import annotations
5 from typing
import TYPE_CHECKING, Any, Protocol
7 import voluptuous
as vol
15 from .
import DeviceAutomationType, async_get_device_automation_platform
16 from .helpers
import async_validate_device_automation_config
23 """Define the format of device_condition modules.
25 Each module must define either CONDITION_SCHEMA or async_validate_condition_config
26 from ConditionProtocol.
30 self, hass: HomeAssistant, config: ConfigType
31 ) -> dict[str, vol.Schema]:
32 """List condition capabilities."""
35 self, hass: HomeAssistant, device_id: str
36 ) -> list[dict[str, Any]]:
37 """List conditions."""
41 hass: HomeAssistant, config: ConfigType
43 """Validate device condition config."""
45 hass, config, cv.DEVICE_CONDITION_SCHEMA, DeviceAutomationType.CONDITION
50 hass: HomeAssistant, config: ConfigType
51 ) -> condition.ConditionCheckerType:
52 """Test a device condition."""
54 hass, config[CONF_DOMAIN], DeviceAutomationType.CONDITION
dict[str, vol.Schema] async_get_condition_capabilities(self, HomeAssistant hass, ConfigType config)
list[dict[str, str]] async_get_conditions(HomeAssistant hass, str device_id)
condition.ConditionCheckerType async_condition_from_config(HomeAssistant hass, ConfigType config)
ConfigType async_validate_condition_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)
ConditionCheckerType trace_condition_function(ConditionCheckerType condition)