Skip to content

Commit 3a8f7c1

Browse files
committed
Add set variables to scripts
1 parent f8399b2 commit 3a8f7c1

File tree

6 files changed

+361
-210
lines changed

6 files changed

+361
-210
lines changed

homeassistant/const.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -268,6 +268,7 @@ class Platform(StrEnum):
268268
CONF_SERVICE_DATA_TEMPLATE: Final = "data_template"
269269
CONF_SERVICE_TEMPLATE: Final = "service_template"
270270
CONF_SET_CONVERSATION_RESPONSE: Final = "set_conversation_response"
271+
CONF_SET_VARIABLES: Final = "set_variables"
271272
CONF_SHOW_ON_MAP: Final = "show_on_map"
272273
CONF_SLAVE: Final = "slave"
273274
CONF_SOURCE: Final = "source"

homeassistant/helpers/config_validation.py

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@
7676
CONF_SERVICE_DATA_TEMPLATE,
7777
CONF_SERVICE_TEMPLATE,
7878
CONF_SET_CONVERSATION_RESPONSE,
79+
CONF_SET_VARIABLES,
7980
CONF_STATE,
8081
CONF_STOP,
8182
CONF_TARGET,
@@ -1926,13 +1927,20 @@ def _base_trigger_validator(value: Any) -> Any:
19261927
}
19271928
)
19281929

1929-
_SCRIPT_SET_SCHEMA = vol.Schema(
1930+
_SCRIPT_VARIABLES_SCHEMA = vol.Schema(
19301931
{
19311932
**SCRIPT_ACTION_BASE_SCHEMA,
19321933
vol.Required(CONF_VARIABLES): SCRIPT_VARIABLES_SCHEMA,
19331934
}
19341935
)
19351936

1937+
_SCRIPT_SET_VARIABLES_SCHEMA = vol.Schema(
1938+
{
1939+
**SCRIPT_ACTION_BASE_SCHEMA,
1940+
vol.Required(CONF_SET_VARIABLES): SCRIPT_VARIABLES_SCHEMA,
1941+
}
1942+
)
1943+
19361944
_SCRIPT_SET_CONVERSATION_RESPONSE_SCHEMA = vol.Schema(
19371945
{
19381946
**SCRIPT_ACTION_BASE_SCHEMA,
@@ -1992,6 +2000,7 @@ def _base_trigger_validator(value: Any) -> Any:
19922000
SCRIPT_ACTION_REPEAT = "repeat"
19932001
SCRIPT_ACTION_SEQUENCE = "sequence"
19942002
SCRIPT_ACTION_SET_CONVERSATION_RESPONSE = "set_conversation_response"
2003+
SCRIPT_ACTION_SET_VARIABLES = "set_variables"
19952004
SCRIPT_ACTION_STOP = "stop"
19962005
SCRIPT_ACTION_VARIABLES = "variables"
19972006
SCRIPT_ACTION_WAIT_FOR_TRIGGER = "wait_for_trigger"
@@ -2012,6 +2021,7 @@ def _base_trigger_validator(value: Any) -> Any:
20122021
CONF_CHOOSE: SCRIPT_ACTION_CHOOSE,
20132022
CONF_WAIT_FOR_TRIGGER: SCRIPT_ACTION_WAIT_FOR_TRIGGER,
20142023
CONF_VARIABLES: SCRIPT_ACTION_VARIABLES,
2024+
CONF_SET_VARIABLES: SCRIPT_ACTION_SET_VARIABLES,
20152025
CONF_IF: SCRIPT_ACTION_IF,
20162026
CONF_ACTION: SCRIPT_ACTION_CALL_SERVICE,
20172027
CONF_SERVICE: SCRIPT_ACTION_CALL_SERVICE,
@@ -2051,8 +2061,9 @@ def determine_script_action(action: dict[str, Any]) -> str:
20512061
SCRIPT_ACTION_REPEAT: _SCRIPT_REPEAT_SCHEMA,
20522062
SCRIPT_ACTION_SEQUENCE: _SCRIPT_SEQUENCE_SCHEMA,
20532063
SCRIPT_ACTION_SET_CONVERSATION_RESPONSE: _SCRIPT_SET_CONVERSATION_RESPONSE_SCHEMA,
2064+
SCRIPT_ACTION_SET_VARIABLES: _SCRIPT_SET_VARIABLES_SCHEMA,
20542065
SCRIPT_ACTION_STOP: _SCRIPT_STOP_SCHEMA,
2055-
SCRIPT_ACTION_VARIABLES: _SCRIPT_SET_SCHEMA,
2066+
SCRIPT_ACTION_VARIABLES: _SCRIPT_VARIABLES_SCHEMA,
20562067
SCRIPT_ACTION_WAIT_FOR_TRIGGER: _SCRIPT_WAIT_FOR_TRIGGER_SCHEMA,
20572068
SCRIPT_ACTION_WAIT_TEMPLATE: _SCRIPT_WAIT_TEMPLATE_SCHEMA,
20582069
}

0 commit comments

Comments
 (0)