Home Assistant Unofficial Reference 2024.12.1
condition.py
Go to the documentation of this file.
1 """Validate device conditions."""
2 
3 from __future__ import annotations
4 
5 from typing import TYPE_CHECKING, Any, Protocol
6 
7 import voluptuous as vol
8 
9 from homeassistant.const import CONF_DOMAIN
10 from homeassistant.core import HomeAssistant
11 from homeassistant.helpers import config_validation as cv
12 from homeassistant.helpers.condition import ConditionProtocol, trace_condition_function
13 from homeassistant.helpers.typing import ConfigType
14 
15 from . import DeviceAutomationType, async_get_device_automation_platform
16 from .helpers import async_validate_device_automation_config
17 
18 if TYPE_CHECKING:
19  from homeassistant.helpers import condition
20 
21 
23  """Define the format of device_condition modules.
24 
25  Each module must define either CONDITION_SCHEMA or async_validate_condition_config
26  from ConditionProtocol.
27  """
28 
30  self, hass: HomeAssistant, config: ConfigType
31  ) -> dict[str, vol.Schema]:
32  """List condition capabilities."""
33 
34  async def async_get_conditions(
35  self, hass: HomeAssistant, device_id: str
36  ) -> list[dict[str, Any]]:
37  """List conditions."""
38 
39 
41  hass: HomeAssistant, config: ConfigType
42 ) -> ConfigType:
43  """Validate device condition config."""
45  hass, config, cv.DEVICE_CONDITION_SCHEMA, DeviceAutomationType.CONDITION
46  )
47 
48 
50  hass: HomeAssistant, config: ConfigType
51 ) -> condition.ConditionCheckerType:
52  """Test a device condition."""
53  platform = await async_get_device_automation_platform(
54  hass, config[CONF_DOMAIN], DeviceAutomationType.CONDITION
55  )
56  return trace_condition_function(platform.async_condition_from_config(hass, config))
dict[str, vol.Schema] async_get_condition_capabilities(self, HomeAssistant hass, ConfigType config)
Definition: condition.py:31
list[dict[str, str]] async_get_conditions(HomeAssistant hass, str device_id)
condition.ConditionCheckerType async_condition_from_config(HomeAssistant hass, ConfigType config)
Definition: condition.py:51
ConfigType async_validate_condition_config(HomeAssistant hass, ConfigType config)
Definition: condition.py:42
ConfigType async_validate_device_automation_config(HomeAssistant hass, ConfigType config, vol.Schema automation_schema, DeviceAutomationType automation_type)
Definition: helpers.py:53
DeviceAutomationTriggerProtocol async_get_device_automation_platform(HomeAssistant hass, str domain, Literal[DeviceAutomationType.TRIGGER] automation_type)
Definition: __init__.py:137
ConditionCheckerType trace_condition_function(ConditionCheckerType condition)
Definition: condition.py:174