I’ve made mine stateful, here is one of them. The automation has all my blinds in it, just take out the ones you dont need. The template cover doesnt understand Favourite so it counts it as open. You cant use the remote anymore or it will stuff it up.
configuration.yaml
input_select:
cover_master_bedroom:
name: Blind Master Bedroom
options:
- Open
- Closed
- Favourite
icon: mdi:blinds
cover:
- platform: template
covers:
master_bedroom_stateful:
friendly_name: 'Master Bedroom Stateful'
value_template: >
{% if is_state('input_select.cover_master_bedroom','Closed') %}
closed
{% else %}
open
{% endif %}
open_cover:
service: cover.open_cover
entity_id: cover.master_bedroom
close_cover:
service: cover.close_cover
entity_id: cover.master_bedroom
stop_cover:
service: cover.stop_cover
entity_id: cover.master_bedroom
icon_template: >
{% if is_state('input_select.cover_master_bedroom','Closed') %}
mdi:blinds
{% else %}
mdi:blinds-open
{% endif %}
device_class: blind
automations.yaml
- id: blinds_sync_status
alias: 'Blinds - Sync Status'
mode: queued
initial_state: 'on'
trace:
stored_traces: 5
trigger:
- platform: event
event_type: call_service
event_data:
domain: cover
service: open_cover
id: 'open'
- platform: event
event_type: call_service
event_data:
domain: cover
service: close_cover
id: 'close'
- platform: event
event_type: call_service
event_data:
domain: cover
service: stop_cover
id: 'stop'
condition:
- condition: template
value_template: "{{ ('cover.bedroom_3' in trigger.event.data.service_data.entity_id) or ('cover.living_room' in trigger.event.data.service_data.entity_id) or ('cover.master_bedroom' in trigger.event.data.service_data.entity_id) or ('cover.study' in trigger.event.data.service_data.entity_id) }}"
action:
- choose:
- conditions:
- condition: template
value_template: "{{ 'cover.bedroom_3' in trigger.event.data.service_data.entity_id }}"
sequence:
- service: input_select.select_option
data:
entity_id: input_select.cover_bedroom_3
option: >
{% if trigger.event.data.service == 'open_cover' %}
Open
{% elif trigger.event.data.service == 'close_cover' %}
Closed
{% else %}
Favourite
{% endif %}
- conditions:
- condition: template
value_template: "{{ 'cover.living_room' in trigger.event.data.service_data.entity_id }}"
sequence:
- service: input_select.select_option
data:
entity_id: input_select.cover_living_room
option: >
{% if trigger.event.data.service == 'open_cover' %}
Open
{% elif trigger.event.data.service == 'close_cover' %}
Closed
{% else %}
Favourite
{% endif %}
- conditions:
- condition: template
value_template: "{{ 'cover.master_bedroom' in trigger.event.data.service_data.entity_id }}"
sequence:
- service: input_select.select_option
data:
entity_id: input_select.cover_master_bedroom
option: >
{% if trigger.event.data.service == 'open_cover' %}
Open
{% elif trigger.event.data.service == 'close_cover' %}
Closed
{% else %}
Favourite
{% endif %}
- conditions:
- condition: template
value_template: "{{ 'cover.study' in trigger.event.data.service_data.entity_id }}"
sequence:
- service: input_select.select_option
data:
entity_id: input_select.cover_study
option: >
{% if trigger.event.data.service == 'open_cover' %}
Open
{% elif trigger.event.data.service == 'close_cover' %}
Closed
{% else %}
Favourite
{% endif %}