So nach viel rumbastelei und zahllosen try and error Durchgängen habe ich es tatsächlich selbst geschafft, das Ding zum Laufen zu bekommen.
Am Ende habe ich’s dann sogar mein bisheriges Rolladengerät mit sämtlichen Entitäten umbenannt und versteckt, damit klar ist, dass dieses Gerät nicht direkt bedient werden soll, sondern nur das zuvorgeschaltete Template Cover verwendet werden sollte.
Mein Template Cover und das dazugehörige Skript sind hier anbei.
Template Cover:
cover:
- platform: template
covers:
rolladen_balkon:
unique_id: GESICHERTEBALKONROLLADENSTEUERUNG
device_class: shutter
friendly_name: "Rolladen Balkon"
value_template: "{{ states('cover.rolladen_device_balkon') }}"
position_template: "{{ state_attr('cover.rolladen_device_balkon','current_position') }}"
open_cover:
service: script.steuerung_balkon_rolladen_sicher
data:
modus: "open"
close_cover:
service: script.steuerung_balkon_rolladen_sicher
data:
modus: "close"
stop_cover:
service: script.steuerung_balkon_rolladen_sicher
data:
modus: "stop"
set_cover_position:
service: script.steuerung_balkon_rolladen_sicher
data:
modus: "set_position"
neueposition: "{{ position }}"
Script für die Rolladensteuerung:
alias: Steuerung Balkon Rolladen sicher
sequence:
- choose:
- conditions:
- condition: template
value_template: |-
{%- if (modus in [ "open", "stop"]) -%}
true {%- else -%} false {%- endif -%}
alias: Prüfen Öffnen oder Stopp
sequence:
- service: cover.{{modus}}_cover
target:
entity_id:
- cover.rolladen_device_balkon
alias: Risikofrei - öffnen oder stopp
- conditions:
- alias: Prüfe auf Schliessen
condition: template
enabled: true
value_template: |-
{%- if (modus == "close") -%} true
{%- else -%} false
{%- endif -%}
sequence:
- alias: Warte auf -no presence-
if:
- condition: state
entity_id: binary_sensor.aquara_balkon_presence
state: "on"
then:
- wait_for_trigger:
- platform: state
entity_id:
- binary_sensor.aquara_balkon_presence
to: "off"
- service: cover.close_cover
metadata: {}
data: {}
target:
entity_id: cover.rolladen_device_balkon
alias: Schliessen
- conditions:
- alias: Prüfe auf Set Position
condition: template
value_template: |-
{%- if ( modus == "set_position" ) -%} true
{%- else -%} false
{%- endif -%}
enabled: true
sequence:
- alias: Warte auf -no presence-
if:
- condition: state
entity_id: binary_sensor.aquara_balkon_presence
state: "on"
- condition: template
value_template: |-
{%- if ( neueposition | int <=70) -%} true
{%- else -%} false
{%- endif -%}
then:
- alias: Warte auf no-presence
wait_for_trigger:
- platform: state
entity_id:
- binary_sensor.aquara_balkon_presence
to: "off"
- service: cover.set_cover_position
metadata: {}
data:
position: "{{ neueposition|int }}"
target:
entity_id: cover.rolladen_device_balkon
enabled: true
alias: Position setzen
enabled: true
mode: restart
Vielleicht hilft es ja dem einen oder anderen.