Hallo,
irgendwie fehlt mir das Verständnis für das Auswerten von Ausdrücken in Skripten.
Ich versuche gerade ein Cover Template zu erstellen, das verhindert, dass der Rolladen heruntergefahren wird, solange noch jemand auf dem Balkon ist.
Dazu habe ich ein Skript erstellt, das alle Serviceaufrufe managen soll, also öffnen, schließen, stoppen und auf Position setzen. Dafür übergebe ich 2 Parameter an das Script {{modus}} und {{position}}
Egal, welchen Dienst ich für das Template Cover aufrufe ich lande immer in der Standardaktion der Optionen, der eigentlich nie ausgeführt werden sollte, da alle möglichen Optionen/Modi behandelt werden.
In den Debug Ausgaben des Skriptes sehe ich auch, dass die Parameter richtig übergeben wurden.
Allerdings liefern mir die Ausdrücke, mit denen ich den Inhalt der variablen überprüfen will, immer den Wert false zurück.
Kann mir bitte jemand von euch auf die Sprünge helfen was ich was ich hier falsch mache?
Mein Cover Template sieht so aus:
cover:
- platform: template
covers:
balkon_cover:
device_class: shutter
friendly_name: "Balkonrolladen"
value_template: "{{ states('cover.rolladen_balkon') }}"
position_template: "{{ state_attr('cover.rolladen_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"
position: "{{ position }}"
und das dazugehörige Script in dem die Expressions nicht machen was ich will:
alias: Steuerung_Balkon_Rolladen_sicher
sequence:
- service: script.notify_send_message_to_phone
metadata: {}
data:
title: "Debug: Benachrichtigung bei start"
message: Werte übergeben {{modus}} {{position}}
- choose:
- conditions:
- condition: template
value_template: "{{modus}} == 'stop'"
sequence:
- service: cover.stop_cover
target:
entity_id: cover.rolladen_balkon
data: {}
alias: Stoppen
- conditions:
- condition: template
value_template: "{{modus}} == 'open'"
sequence:
- service: cover.open_cover
data: {}
target:
entity_id: cover.rolladen_balkon
alias: Öffnen
- conditions:
- condition: template
value_template: "{{modus}} == 'close'"
sequence:
- if:
- condition: state
entity_id: binary_sensor.aquara_presence_balkon_geplant_presence
state: "on"
then:
- wait_for_trigger:
- platform: state
entity_id:
- binary_sensor.aquara_presence_balkon_geplant_presence
to: "off"
- service: cover.close_cover
target:
entity_id:
- cover.rolladen_balkon
data: {}
alias: Schliessen
- conditions:
- condition: template
value_template: "{{modus}} == 'set_position'"
sequence:
- if:
- condition: and
conditions:
- condition: state
entity_id: binary_sensor.aquara_presence_balkon_geplant_presence
state: "on"
- condition: template
value_template: "{{position}} | int < 80"
then:
- wait_for_trigger:
- platform: state
entity_id:
- binary_sensor.aquara_presence_balkon_geplant_presence
to: "off"
- service: cover.set_cover_position
target:
entity_id: cover.rolladen_balkon
data:
"[object Object]": null
else:
- service: cover.set_cover_position
target:
entity_id: cover.rolladen_balkon
data:
"[object Object]": null
alias: "Auf Position "
enabled: true
default:
- service: script.notify_send_message_to_phone
metadata: {}
data:
title: "Debug: Benachrichtigung Standardaktion ??"
message: Werte übergeben {{modus}} {{position}}
enabled: true
mode: single