Add support for Selectors in Script service fields (#48469)

This commit is contained in:
Franck Nijhof 2021-03-29 18:05:45 +02:00 committed by GitHub
parent 6023105c6a
commit 81ae0ee451
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -11,8 +11,11 @@ from homeassistant.const import (
ATTR_MODE, ATTR_MODE,
ATTR_NAME, ATTR_NAME,
CONF_ALIAS, CONF_ALIAS,
CONF_DEFAULT,
CONF_ICON, CONF_ICON,
CONF_MODE, CONF_MODE,
CONF_NAME,
CONF_SELECTOR,
CONF_SEQUENCE, CONF_SEQUENCE,
CONF_VARIABLES, CONF_VARIABLES,
SERVICE_RELOAD, SERVICE_RELOAD,
@ -35,6 +38,7 @@ from homeassistant.helpers.script import (
Script, Script,
make_script_schema, make_script_schema,
) )
from homeassistant.helpers.selector import validate_selector
from homeassistant.helpers.service import async_set_service_schema from homeassistant.helpers.service import async_set_service_schema
from homeassistant.helpers.trace import trace_get, trace_path from homeassistant.helpers.trace import trace_get, trace_path
from homeassistant.loader import bind_hass from homeassistant.loader import bind_hass
@ -49,9 +53,11 @@ ATTR_LAST_ACTION = "last_action"
ATTR_LAST_TRIGGERED = "last_triggered" ATTR_LAST_TRIGGERED = "last_triggered"
ATTR_VARIABLES = "variables" ATTR_VARIABLES = "variables"
CONF_ADVANCED = "advanced"
CONF_DESCRIPTION = "description" CONF_DESCRIPTION = "description"
CONF_EXAMPLE = "example" CONF_EXAMPLE = "example"
CONF_FIELDS = "fields" CONF_FIELDS = "fields"
CONF_REQUIRED = "required"
ENTITY_ID_FORMAT = DOMAIN + ".{}" ENTITY_ID_FORMAT = DOMAIN + ".{}"
@ -67,8 +73,13 @@ SCRIPT_ENTRY_SCHEMA = make_script_schema(
vol.Optional(CONF_VARIABLES): cv.SCRIPT_VARIABLES_SCHEMA, vol.Optional(CONF_VARIABLES): cv.SCRIPT_VARIABLES_SCHEMA,
vol.Optional(CONF_FIELDS, default={}): { vol.Optional(CONF_FIELDS, default={}): {
cv.string: { cv.string: {
vol.Optional(CONF_ADVANCED, default=False): cv.boolean,
vol.Optional(CONF_DEFAULT): cv.match_all,
vol.Optional(CONF_DESCRIPTION): cv.string, vol.Optional(CONF_DESCRIPTION): cv.string,
vol.Optional(CONF_EXAMPLE): cv.string, vol.Optional(CONF_EXAMPLE): cv.string,
vol.Optional(CONF_NAME): cv.string,
vol.Optional(CONF_REQUIRED, default=False): cv.boolean,
vol.Optional(CONF_SELECTOR): validate_selector,
} }
}, },
}, },