Answering OP's Questions about Select entities
The basic function of state-based Template selects seems to be to make it so you do not have to create separate input select helpers and automations. If you want a single functional unit, they can be used like mini-automations with State triggers.
Template selects are not read-only… they are like Input select helpers, but the options:
can be either static lists (like an Input select) or a list derived from a template.
The state:
template defines their current value. As far as I can tell, it has to render as one of the items in the options:
list or it will return “unavailable”.
select_option:
is the analog to the Action section of an automation. It defines what to do when a user or automation causes a new selection event.
That sounds like a job for a template sensor or a set of time of day sensors…
Here’s an example of a time of day template sensor:
template:
- sensor:
- name: Time of Day
state: >
{% set a = today_at("05:00")%}
{% set b = today_at("07:00")%}
{% set c = today_at("12:00")%}
{% set d = today_at("18:00") %}
{% set e = today_at("20:00")%}
{% set f = today_at("01:00")%}
{% set map = {
a < now() <= b: 'Early Morning',
b < now() <= c: 'Morning',
c < now() <= d : 'Afternoon',
d < now() <= e: 'Evening',
e < now() < f + timedelta(days=1): 'Night',
today_at() < now() <= f: 'Night',
f < now() <= a: 'Late Night'
} %}
{{ map.get(True) }}
NOTE:
Since it wasn’t actually needed to solve OP’s problem, but presented information that many users have found useful, the majority of the content from this post has been moved to its own article in the forum’s Cookbook.