Template Select
The template
Select platform allows you to create a Select with templated values
using lambdas.
# Example configuration entry
select:
- platform: template
name: "Template select"
optimistic: true
options:
- one
- two
- three
initial_option: two
Configuration variables:

- options (Required, list): The list of options this Select has.
- lambda (Optional, lambda): Lambda to be evaluated every update interval to get the current option of the select.
- set_action (Optional, Action): The action that should
be performed when the remote (like Home Assistant’s frontend) requests to set the Select option.
The new option is available to lambdas in the
x
variable. - update_interval (Optional, Time): The interval on which to update the select
by executing the
lambda
. Defaults to60s
. - optimistic (Optional, boolean): Whether to operate in optimistic mode - when in this mode,
any command sent to the Template Select will immediately update the reported state.
Cannot be used with
lambda
. Defaults tofalse
. - restore_value (Optional, boolean): Saves and loads the state to RTC/Flash.
Cannot be used with
lambda
. Defaults tofalse
. - initial_option (Optional, string): The option to set the option to on setup if not
restored with
restore_value
. Cannot be used withlambda
. Defaults to the first option in theoptions
list. - All other options from Select.
Note
If you don’t set alambda
and optimistic
is false
(default), updates to the select component state will need to be taken care of as part of your set_action
using id(my_select).publish_state(x);
(in a lambda). Do not use select.set
Action here, as this would generate a loop. Also, don’t use id(my_select).state = x
as this won’t have the desired effect (e.g. HA won’t update with the change).select.set
Action

You can also set an option for the template select from elsewhere in your YAML file
with the select.set
Action.