mirror of
https://github.com/home-assistant/core.git
synced 2025-07-23 21:27:38 +00:00
Deprecate manually passing entity ids to template entities (#39382)
It is no longer necessary to provide a list of entities to monitor to the template platforms. The template is now re-evaluated whenever a referenced entity changes state, and new entities are automaticlly discovered. Automatic analysis can now determine the entities for all templates without the need for manual setup.
This commit is contained in:
parent
352995c663
commit
762537d82d
@ -36,20 +36,25 @@ CONF_DELAY_ON = "delay_on"
|
|||||||
CONF_DELAY_OFF = "delay_off"
|
CONF_DELAY_OFF = "delay_off"
|
||||||
CONF_ATTRIBUTE_TEMPLATES = "attribute_templates"
|
CONF_ATTRIBUTE_TEMPLATES = "attribute_templates"
|
||||||
|
|
||||||
SENSOR_SCHEMA = vol.Schema(
|
SENSOR_SCHEMA = vol.All(
|
||||||
{
|
cv.deprecated(ATTR_ENTITY_ID),
|
||||||
vol.Required(CONF_VALUE_TEMPLATE): cv.template,
|
vol.Schema(
|
||||||
vol.Optional(CONF_ICON_TEMPLATE): cv.template,
|
{
|
||||||
vol.Optional(CONF_ENTITY_PICTURE_TEMPLATE): cv.template,
|
vol.Required(CONF_VALUE_TEMPLATE): cv.template,
|
||||||
vol.Optional(CONF_AVAILABILITY_TEMPLATE): cv.template,
|
vol.Optional(CONF_ICON_TEMPLATE): cv.template,
|
||||||
vol.Optional(CONF_ATTRIBUTE_TEMPLATES): vol.Schema({cv.string: cv.template}),
|
vol.Optional(CONF_ENTITY_PICTURE_TEMPLATE): cv.template,
|
||||||
vol.Optional(ATTR_FRIENDLY_NAME): cv.string,
|
vol.Optional(CONF_AVAILABILITY_TEMPLATE): cv.template,
|
||||||
vol.Optional(ATTR_ENTITY_ID): cv.entity_ids,
|
vol.Optional(CONF_ATTRIBUTE_TEMPLATES): vol.Schema(
|
||||||
vol.Optional(CONF_DEVICE_CLASS): DEVICE_CLASSES_SCHEMA,
|
{cv.string: cv.template}
|
||||||
vol.Optional(CONF_DELAY_ON): cv.positive_time_period,
|
),
|
||||||
vol.Optional(CONF_DELAY_OFF): cv.positive_time_period,
|
vol.Optional(ATTR_FRIENDLY_NAME): cv.string,
|
||||||
vol.Optional(CONF_UNIQUE_ID): cv.string,
|
vol.Optional(ATTR_ENTITY_ID): cv.entity_ids,
|
||||||
}
|
vol.Optional(CONF_DEVICE_CLASS): DEVICE_CLASSES_SCHEMA,
|
||||||
|
vol.Optional(CONF_DELAY_ON): cv.positive_time_period,
|
||||||
|
vol.Optional(CONF_DELAY_OFF): cv.positive_time_period,
|
||||||
|
vol.Optional(CONF_UNIQUE_ID): cv.string,
|
||||||
|
}
|
||||||
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
|
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
|
||||||
|
@ -66,6 +66,7 @@ TILT_FEATURES = (
|
|||||||
)
|
)
|
||||||
|
|
||||||
COVER_SCHEMA = vol.All(
|
COVER_SCHEMA = vol.All(
|
||||||
|
cv.deprecated(CONF_ENTITY_ID),
|
||||||
vol.Schema(
|
vol.Schema(
|
||||||
{
|
{
|
||||||
vol.Inclusive(OPEN_ACTION, CONF_OPEN_OR_CLOSE): cv.SCRIPT_SCHEMA,
|
vol.Inclusive(OPEN_ACTION, CONF_OPEN_OR_CLOSE): cv.SCRIPT_SCHEMA,
|
||||||
|
@ -55,25 +55,28 @@ _VALID_STATES = [STATE_ON, STATE_OFF]
|
|||||||
_VALID_OSC = [True, False]
|
_VALID_OSC = [True, False]
|
||||||
_VALID_DIRECTIONS = [DIRECTION_FORWARD, DIRECTION_REVERSE]
|
_VALID_DIRECTIONS = [DIRECTION_FORWARD, DIRECTION_REVERSE]
|
||||||
|
|
||||||
FAN_SCHEMA = vol.Schema(
|
FAN_SCHEMA = vol.All(
|
||||||
{
|
cv.deprecated(CONF_ENTITY_ID),
|
||||||
vol.Optional(CONF_FRIENDLY_NAME): cv.string,
|
vol.Schema(
|
||||||
vol.Required(CONF_VALUE_TEMPLATE): cv.template,
|
{
|
||||||
vol.Optional(CONF_SPEED_TEMPLATE): cv.template,
|
vol.Optional(CONF_FRIENDLY_NAME): cv.string,
|
||||||
vol.Optional(CONF_OSCILLATING_TEMPLATE): cv.template,
|
vol.Required(CONF_VALUE_TEMPLATE): cv.template,
|
||||||
vol.Optional(CONF_DIRECTION_TEMPLATE): cv.template,
|
vol.Optional(CONF_SPEED_TEMPLATE): cv.template,
|
||||||
vol.Optional(CONF_AVAILABILITY_TEMPLATE): cv.template,
|
vol.Optional(CONF_OSCILLATING_TEMPLATE): cv.template,
|
||||||
vol.Required(CONF_ON_ACTION): cv.SCRIPT_SCHEMA,
|
vol.Optional(CONF_DIRECTION_TEMPLATE): cv.template,
|
||||||
vol.Required(CONF_OFF_ACTION): cv.SCRIPT_SCHEMA,
|
vol.Optional(CONF_AVAILABILITY_TEMPLATE): cv.template,
|
||||||
vol.Optional(CONF_SET_SPEED_ACTION): cv.SCRIPT_SCHEMA,
|
vol.Required(CONF_ON_ACTION): cv.SCRIPT_SCHEMA,
|
||||||
vol.Optional(CONF_SET_OSCILLATING_ACTION): cv.SCRIPT_SCHEMA,
|
vol.Required(CONF_OFF_ACTION): cv.SCRIPT_SCHEMA,
|
||||||
vol.Optional(CONF_SET_DIRECTION_ACTION): cv.SCRIPT_SCHEMA,
|
vol.Optional(CONF_SET_SPEED_ACTION): cv.SCRIPT_SCHEMA,
|
||||||
vol.Optional(
|
vol.Optional(CONF_SET_OSCILLATING_ACTION): cv.SCRIPT_SCHEMA,
|
||||||
CONF_SPEED_LIST, default=[SPEED_LOW, SPEED_MEDIUM, SPEED_HIGH]
|
vol.Optional(CONF_SET_DIRECTION_ACTION): cv.SCRIPT_SCHEMA,
|
||||||
): cv.ensure_list,
|
vol.Optional(
|
||||||
vol.Optional(CONF_ENTITY_ID): cv.entity_ids,
|
CONF_SPEED_LIST, default=[SPEED_LOW, SPEED_MEDIUM, SPEED_HIGH]
|
||||||
vol.Optional(CONF_UNIQUE_ID): cv.string,
|
): cv.ensure_list,
|
||||||
}
|
vol.Optional(CONF_ENTITY_ID): cv.entity_ids,
|
||||||
|
vol.Optional(CONF_UNIQUE_ID): cv.string,
|
||||||
|
}
|
||||||
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
PLATFORM_SCHEMA = cv.PLATFORM_SCHEMA.extend(
|
PLATFORM_SCHEMA = cv.PLATFORM_SCHEMA.extend(
|
||||||
|
@ -51,26 +51,29 @@ CONF_COLOR_ACTION = "set_color"
|
|||||||
CONF_WHITE_VALUE_TEMPLATE = "white_value_template"
|
CONF_WHITE_VALUE_TEMPLATE = "white_value_template"
|
||||||
CONF_WHITE_VALUE_ACTION = "set_white_value"
|
CONF_WHITE_VALUE_ACTION = "set_white_value"
|
||||||
|
|
||||||
LIGHT_SCHEMA = vol.Schema(
|
LIGHT_SCHEMA = vol.All(
|
||||||
{
|
cv.deprecated(CONF_ENTITY_ID),
|
||||||
vol.Required(CONF_ON_ACTION): cv.SCRIPT_SCHEMA,
|
vol.Schema(
|
||||||
vol.Required(CONF_OFF_ACTION): cv.SCRIPT_SCHEMA,
|
{
|
||||||
vol.Optional(CONF_VALUE_TEMPLATE): cv.template,
|
vol.Required(CONF_ON_ACTION): cv.SCRIPT_SCHEMA,
|
||||||
vol.Optional(CONF_ICON_TEMPLATE): cv.template,
|
vol.Required(CONF_OFF_ACTION): cv.SCRIPT_SCHEMA,
|
||||||
vol.Optional(CONF_ENTITY_PICTURE_TEMPLATE): cv.template,
|
vol.Optional(CONF_VALUE_TEMPLATE): cv.template,
|
||||||
vol.Optional(CONF_AVAILABILITY_TEMPLATE): cv.template,
|
vol.Optional(CONF_ICON_TEMPLATE): cv.template,
|
||||||
vol.Optional(CONF_LEVEL_ACTION): cv.SCRIPT_SCHEMA,
|
vol.Optional(CONF_ENTITY_PICTURE_TEMPLATE): cv.template,
|
||||||
vol.Optional(CONF_LEVEL_TEMPLATE): cv.template,
|
vol.Optional(CONF_AVAILABILITY_TEMPLATE): cv.template,
|
||||||
vol.Optional(CONF_FRIENDLY_NAME): cv.string,
|
vol.Optional(CONF_LEVEL_ACTION): cv.SCRIPT_SCHEMA,
|
||||||
vol.Optional(CONF_ENTITY_ID): cv.entity_ids,
|
vol.Optional(CONF_LEVEL_TEMPLATE): cv.template,
|
||||||
vol.Optional(CONF_TEMPERATURE_TEMPLATE): cv.template,
|
vol.Optional(CONF_FRIENDLY_NAME): cv.string,
|
||||||
vol.Optional(CONF_TEMPERATURE_ACTION): cv.SCRIPT_SCHEMA,
|
vol.Optional(CONF_ENTITY_ID): cv.entity_ids,
|
||||||
vol.Optional(CONF_COLOR_TEMPLATE): cv.template,
|
vol.Optional(CONF_TEMPERATURE_TEMPLATE): cv.template,
|
||||||
vol.Optional(CONF_COLOR_ACTION): cv.SCRIPT_SCHEMA,
|
vol.Optional(CONF_TEMPERATURE_ACTION): cv.SCRIPT_SCHEMA,
|
||||||
vol.Optional(CONF_WHITE_VALUE_TEMPLATE): cv.template,
|
vol.Optional(CONF_COLOR_TEMPLATE): cv.template,
|
||||||
vol.Optional(CONF_WHITE_VALUE_ACTION): cv.SCRIPT_SCHEMA,
|
vol.Optional(CONF_COLOR_ACTION): cv.SCRIPT_SCHEMA,
|
||||||
vol.Optional(CONF_UNIQUE_ID): cv.string,
|
vol.Optional(CONF_WHITE_VALUE_TEMPLATE): cv.template,
|
||||||
}
|
vol.Optional(CONF_WHITE_VALUE_ACTION): cv.SCRIPT_SCHEMA,
|
||||||
|
vol.Optional(CONF_UNIQUE_ID): cv.string,
|
||||||
|
}
|
||||||
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
|
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
|
||||||
|
@ -34,22 +34,25 @@ CONF_ATTRIBUTE_TEMPLATES = "attribute_templates"
|
|||||||
|
|
||||||
_LOGGER = logging.getLogger(__name__)
|
_LOGGER = logging.getLogger(__name__)
|
||||||
|
|
||||||
SENSOR_SCHEMA = vol.Schema(
|
SENSOR_SCHEMA = vol.All(
|
||||||
{
|
cv.deprecated(ATTR_ENTITY_ID),
|
||||||
vol.Required(CONF_VALUE_TEMPLATE): cv.template,
|
vol.Schema(
|
||||||
vol.Optional(CONF_ICON_TEMPLATE): cv.template,
|
{
|
||||||
vol.Optional(CONF_ENTITY_PICTURE_TEMPLATE): cv.template,
|
vol.Required(CONF_VALUE_TEMPLATE): cv.template,
|
||||||
vol.Optional(CONF_FRIENDLY_NAME_TEMPLATE): cv.template,
|
vol.Optional(CONF_ICON_TEMPLATE): cv.template,
|
||||||
vol.Optional(CONF_AVAILABILITY_TEMPLATE): cv.template,
|
vol.Optional(CONF_ENTITY_PICTURE_TEMPLATE): cv.template,
|
||||||
vol.Optional(CONF_ATTRIBUTE_TEMPLATES, default={}): vol.Schema(
|
vol.Optional(CONF_FRIENDLY_NAME_TEMPLATE): cv.template,
|
||||||
{cv.string: cv.template}
|
vol.Optional(CONF_AVAILABILITY_TEMPLATE): cv.template,
|
||||||
),
|
vol.Optional(CONF_ATTRIBUTE_TEMPLATES, default={}): vol.Schema(
|
||||||
vol.Optional(ATTR_FRIENDLY_NAME): cv.string,
|
{cv.string: cv.template}
|
||||||
vol.Optional(ATTR_UNIT_OF_MEASUREMENT): cv.string,
|
),
|
||||||
vol.Optional(CONF_DEVICE_CLASS): DEVICE_CLASSES_SCHEMA,
|
vol.Optional(ATTR_FRIENDLY_NAME): cv.string,
|
||||||
vol.Optional(ATTR_ENTITY_ID): cv.entity_ids,
|
vol.Optional(ATTR_UNIT_OF_MEASUREMENT): cv.string,
|
||||||
vol.Optional(CONF_UNIQUE_ID): cv.string,
|
vol.Optional(CONF_DEVICE_CLASS): DEVICE_CLASSES_SCHEMA,
|
||||||
}
|
vol.Optional(ATTR_ENTITY_ID): cv.entity_ids,
|
||||||
|
vol.Optional(CONF_UNIQUE_ID): cv.string,
|
||||||
|
}
|
||||||
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
|
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
|
||||||
|
@ -36,18 +36,21 @@ _VALID_STATES = [STATE_ON, STATE_OFF, "true", "false"]
|
|||||||
ON_ACTION = "turn_on"
|
ON_ACTION = "turn_on"
|
||||||
OFF_ACTION = "turn_off"
|
OFF_ACTION = "turn_off"
|
||||||
|
|
||||||
SWITCH_SCHEMA = vol.Schema(
|
SWITCH_SCHEMA = vol.All(
|
||||||
{
|
cv.deprecated(ATTR_ENTITY_ID),
|
||||||
vol.Optional(CONF_VALUE_TEMPLATE): cv.template,
|
vol.Schema(
|
||||||
vol.Optional(CONF_ICON_TEMPLATE): cv.template,
|
{
|
||||||
vol.Optional(CONF_ENTITY_PICTURE_TEMPLATE): cv.template,
|
vol.Optional(CONF_VALUE_TEMPLATE): cv.template,
|
||||||
vol.Optional(CONF_AVAILABILITY_TEMPLATE): cv.template,
|
vol.Optional(CONF_ICON_TEMPLATE): cv.template,
|
||||||
vol.Required(ON_ACTION): cv.SCRIPT_SCHEMA,
|
vol.Optional(CONF_ENTITY_PICTURE_TEMPLATE): cv.template,
|
||||||
vol.Required(OFF_ACTION): cv.SCRIPT_SCHEMA,
|
vol.Optional(CONF_AVAILABILITY_TEMPLATE): cv.template,
|
||||||
vol.Optional(ATTR_FRIENDLY_NAME): cv.string,
|
vol.Required(ON_ACTION): cv.SCRIPT_SCHEMA,
|
||||||
vol.Optional(ATTR_ENTITY_ID): cv.entity_ids,
|
vol.Required(OFF_ACTION): cv.SCRIPT_SCHEMA,
|
||||||
vol.Optional(CONF_UNIQUE_ID): cv.string,
|
vol.Optional(ATTR_FRIENDLY_NAME): cv.string,
|
||||||
}
|
vol.Optional(ATTR_ENTITY_ID): cv.entity_ids,
|
||||||
|
vol.Optional(CONF_UNIQUE_ID): cv.string,
|
||||||
|
}
|
||||||
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
|
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
|
||||||
|
@ -65,27 +65,30 @@ _VALID_STATES = [
|
|||||||
STATE_ERROR,
|
STATE_ERROR,
|
||||||
]
|
]
|
||||||
|
|
||||||
VACUUM_SCHEMA = vol.Schema(
|
VACUUM_SCHEMA = vol.All(
|
||||||
{
|
cv.deprecated(CONF_ENTITY_ID),
|
||||||
vol.Optional(CONF_FRIENDLY_NAME): cv.string,
|
vol.Schema(
|
||||||
vol.Optional(CONF_VALUE_TEMPLATE): cv.template,
|
{
|
||||||
vol.Optional(CONF_BATTERY_LEVEL_TEMPLATE): cv.template,
|
vol.Optional(CONF_FRIENDLY_NAME): cv.string,
|
||||||
vol.Optional(CONF_FAN_SPEED_TEMPLATE): cv.template,
|
vol.Optional(CONF_VALUE_TEMPLATE): cv.template,
|
||||||
vol.Optional(CONF_AVAILABILITY_TEMPLATE): cv.template,
|
vol.Optional(CONF_BATTERY_LEVEL_TEMPLATE): cv.template,
|
||||||
vol.Optional(CONF_ATTRIBUTE_TEMPLATES, default={}): vol.Schema(
|
vol.Optional(CONF_FAN_SPEED_TEMPLATE): cv.template,
|
||||||
{cv.string: cv.template}
|
vol.Optional(CONF_AVAILABILITY_TEMPLATE): cv.template,
|
||||||
),
|
vol.Optional(CONF_ATTRIBUTE_TEMPLATES, default={}): vol.Schema(
|
||||||
vol.Required(SERVICE_START): cv.SCRIPT_SCHEMA,
|
{cv.string: cv.template}
|
||||||
vol.Optional(SERVICE_PAUSE): cv.SCRIPT_SCHEMA,
|
),
|
||||||
vol.Optional(SERVICE_STOP): cv.SCRIPT_SCHEMA,
|
vol.Required(SERVICE_START): cv.SCRIPT_SCHEMA,
|
||||||
vol.Optional(SERVICE_RETURN_TO_BASE): cv.SCRIPT_SCHEMA,
|
vol.Optional(SERVICE_PAUSE): cv.SCRIPT_SCHEMA,
|
||||||
vol.Optional(SERVICE_CLEAN_SPOT): cv.SCRIPT_SCHEMA,
|
vol.Optional(SERVICE_STOP): cv.SCRIPT_SCHEMA,
|
||||||
vol.Optional(SERVICE_LOCATE): cv.SCRIPT_SCHEMA,
|
vol.Optional(SERVICE_RETURN_TO_BASE): cv.SCRIPT_SCHEMA,
|
||||||
vol.Optional(SERVICE_SET_FAN_SPEED): cv.SCRIPT_SCHEMA,
|
vol.Optional(SERVICE_CLEAN_SPOT): cv.SCRIPT_SCHEMA,
|
||||||
vol.Optional(CONF_FAN_SPEED_LIST, default=[]): cv.ensure_list,
|
vol.Optional(SERVICE_LOCATE): cv.SCRIPT_SCHEMA,
|
||||||
vol.Optional(CONF_ENTITY_ID): cv.entity_ids,
|
vol.Optional(SERVICE_SET_FAN_SPEED): cv.SCRIPT_SCHEMA,
|
||||||
vol.Optional(CONF_UNIQUE_ID): cv.string,
|
vol.Optional(CONF_FAN_SPEED_LIST, default=[]): cv.ensure_list,
|
||||||
}
|
vol.Optional(CONF_ENTITY_ID): cv.entity_ids,
|
||||||
|
vol.Optional(CONF_UNIQUE_ID): cv.string,
|
||||||
|
}
|
||||||
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
PLATFORM_SCHEMA = cv.PLATFORM_SCHEMA.extend(
|
PLATFORM_SCHEMA = cv.PLATFORM_SCHEMA.extend(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user