Reorganize trigger code (#38655)
This commit is contained in:
parent
fca071742d
commit
ca9dd0c833
51 changed files with 306 additions and 194 deletions
|
@ -1,6 +1,5 @@
|
|||
"""Config validation helper for the automation integration."""
|
||||
import asyncio
|
||||
import importlib
|
||||
|
||||
import voluptuous as vol
|
||||
|
||||
|
@ -8,10 +7,11 @@ from homeassistant.components.device_automation.exceptions import (
|
|||
InvalidDeviceAutomationConfig,
|
||||
)
|
||||
from homeassistant.config import async_log_exception, config_without_domain
|
||||
from homeassistant.const import CONF_PLATFORM
|
||||
from homeassistant.exceptions import HomeAssistantError
|
||||
from homeassistant.helpers import condition, config_per_platform
|
||||
from homeassistant.helpers import config_per_platform
|
||||
from homeassistant.helpers.condition import async_validate_condition_config
|
||||
from homeassistant.helpers.script import async_validate_action_config
|
||||
from homeassistant.helpers.trigger import async_validate_trigger_config
|
||||
from homeassistant.loader import IntegrationNotFound
|
||||
|
||||
from . import CONF_ACTION, CONF_CONDITION, CONF_TRIGGER, DOMAIN, PLATFORM_SCHEMA
|
||||
|
@ -24,22 +24,14 @@ async def async_validate_config_item(hass, config, full_config=None):
|
|||
"""Validate config item."""
|
||||
config = PLATFORM_SCHEMA(config)
|
||||
|
||||
triggers = []
|
||||
for trigger in config[CONF_TRIGGER]:
|
||||
trigger_platform = importlib.import_module(
|
||||
f"..{trigger[CONF_PLATFORM]}", __name__
|
||||
)
|
||||
if hasattr(trigger_platform, "async_validate_trigger_config"):
|
||||
trigger = await trigger_platform.async_validate_trigger_config(
|
||||
hass, trigger
|
||||
)
|
||||
triggers.append(trigger)
|
||||
config[CONF_TRIGGER] = triggers
|
||||
config[CONF_TRIGGER] = await async_validate_trigger_config(
|
||||
hass, config[CONF_TRIGGER]
|
||||
)
|
||||
|
||||
if CONF_CONDITION in config:
|
||||
config[CONF_CONDITION] = await asyncio.gather(
|
||||
*[
|
||||
condition.async_validate_condition_config(hass, cond)
|
||||
async_validate_condition_config(hass, cond)
|
||||
for cond in config[CONF_CONDITION]
|
||||
]
|
||||
)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue