Add trigger condition (#51710)
* Add trigger condition * Tweaks, add tests
This commit is contained in:
parent
fa3ae9b83c
commit
b01b33c304
5 changed files with 149 additions and 7 deletions
|
@ -45,6 +45,7 @@ from homeassistant.const import (
|
|||
CONF_EVENT_DATA,
|
||||
CONF_EVENT_DATA_TEMPLATE,
|
||||
CONF_FOR,
|
||||
CONF_ID,
|
||||
CONF_PLATFORM,
|
||||
CONF_REPEAT,
|
||||
CONF_SCAN_INTERVAL,
|
||||
|
@ -1026,6 +1027,14 @@ TIME_CONDITION_SCHEMA = vol.All(
|
|||
has_at_least_one_key("before", "after", "weekday"),
|
||||
)
|
||||
|
||||
TRIGGER_CONDITION_SCHEMA = vol.Schema(
|
||||
{
|
||||
**CONDITION_BASE_SCHEMA,
|
||||
vol.Required(CONF_CONDITION): "trigger",
|
||||
vol.Required(CONF_ID): vol.All(ensure_list, [string]),
|
||||
}
|
||||
)
|
||||
|
||||
ZONE_CONDITION_SCHEMA = vol.Schema(
|
||||
{
|
||||
**CONDITION_BASE_SCHEMA,
|
||||
|
@ -1090,23 +1099,26 @@ CONDITION_SCHEMA: vol.Schema = vol.Schema(
|
|||
key_value_schemas(
|
||||
CONF_CONDITION,
|
||||
{
|
||||
"and": AND_CONDITION_SCHEMA,
|
||||
"device": DEVICE_CONDITION_SCHEMA,
|
||||
"not": NOT_CONDITION_SCHEMA,
|
||||
"numeric_state": NUMERIC_STATE_CONDITION_SCHEMA,
|
||||
"or": OR_CONDITION_SCHEMA,
|
||||
"state": STATE_CONDITION_SCHEMA,
|
||||
"sun": SUN_CONDITION_SCHEMA,
|
||||
"template": TEMPLATE_CONDITION_SCHEMA,
|
||||
"time": TIME_CONDITION_SCHEMA,
|
||||
"trigger": TRIGGER_CONDITION_SCHEMA,
|
||||
"zone": ZONE_CONDITION_SCHEMA,
|
||||
"and": AND_CONDITION_SCHEMA,
|
||||
"or": OR_CONDITION_SCHEMA,
|
||||
"not": NOT_CONDITION_SCHEMA,
|
||||
"device": DEVICE_CONDITION_SCHEMA,
|
||||
},
|
||||
),
|
||||
dynamic_template,
|
||||
)
|
||||
)
|
||||
|
||||
TRIGGER_BASE_SCHEMA = vol.Schema({vol.Required(CONF_PLATFORM): str})
|
||||
TRIGGER_BASE_SCHEMA = vol.Schema(
|
||||
{vol.Required(CONF_PLATFORM): str, vol.Optional(CONF_ID): str}
|
||||
)
|
||||
|
||||
TRIGGER_SCHEMA = vol.All(
|
||||
ensure_list, [TRIGGER_BASE_SCHEMA.extend({}, extra=vol.ALLOW_EXTRA)]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue