I’m making a blueprint script where I want to allow the user to select an input boolean, which will be used as a condition later on.
This is my script:
blueprint:
name: AL ES Adaptive Lights
description: Change lights based on time of day
domain: script
input:
target_light:
name: Lights
description: The light(s) with kelvin
selector:
entity:
filter:
- domain: light
multiple: true
start_time:
name: Start Time
description: Time to start the automation
selector:
time: {}
default: null
end_time:
name: End Time
description: Time the script should end
selector:
time: {}
start_template:
name: Start Template
description: Start based on a template
selector:
template:
default: false
steps_per_minute:
name: Steps per minute for all runs
description: Used for configuring percentage of each step for brightness and color temperature
default: 5
selector:
number:
min: 1
max: 12
start_kelvin:
description: Start Kelvin value
selector:
color_temp:
unit: kelvin
default: ""
name: Starting Kelvin
end_kelvin:
description: >-
Target Kelvin value
selector:
color_temp:
unit: kelvin
name: Target Kelvin
start_bright:
name: Start brightness
description: Start brightess percent
selector:
number:
min: 1
max: 100
default: ""
end_bright:
name: Maximum Brightness
description: End brightness percent
selector:
number:
min: 1
max: 100
default: ""
manual_override:
name: Input boolean for manual changes
description: Stop change of lights when manual change is made
selector:
entity:
filter:
- domain:
- input_boolean
reminder_continue_change:
name: Reminder to continue light change
description: >-
Send an actionable notification after time has passed to continue the light change
selector:
time: {}
default: "00:30:00"
mode: single
variables:
start_time: !input start_time
end_time: !input end_time
target_light: !input target_light
steps_per_minute: !input steps_per_minute
start_kelvin: !input start_kelvin
end_kelvin: !input end_kelvin
start_bright_pct: !input start_bright
end_bright_pct: !input end_bright
manual_override: !input manual_override
duration: >
{% set start = strptime(start_time, '%H:%M:%S') %}
{% set end = strptime(end_time, '%H:%M:%S') %}
{% set duration = (end_time - start_time).total_seconds() / 60 %}
intervals: "{{ duration * steps_per_minute | int }}"
step_kelvin: "{{ ((end_kelvin - start_kelvin) / intervals) | round}}"
step_bright: "{{ ((end_bright - start_bright) / intervals) | round }}"
sequence:
- variables:
current_bright: "{{ state_attr(target_light, 'brightness') | default(min_bright) }}"
current_kelvin: "{{ state_attr(target_light, 'color_temp_kelvin') | default(min_kelvin) }}"
start_bright: "{{ (start_bright_pct * 255 / 100) | round }}"
end_bright: "{{ (end_bright_pct * 255 / 100) | round }}"
step_kelvin: "{% if (start_kelvin > end_kelvin) %} {{ step_kelvin * (-1) }} {% else %} {{ step_kelvin }} {% endif %}"
step_bright: "{% if (start_bright > end_bright) %} {{ step_bright * (-1) }} {% else %} {{ step_bright }} {% endif %}"
- service: light.turn_on
target:
entity_id: "{{ target_light }}"
data:
brightness: "{{ start_bright }}"
color_temp_kelvin: "{{ start_kelvin }}"
- delay:
seconds: 2
- repeat:
until:
- condition: or
conditions:
- condition: state
entity_id: "{{ manual_override }}"
state: "on"
- condition: template
value_template: "{{ repeat.index == intervals | int }}"
sequence:
- service: light.turn_on
target: "{{ target_light }}"
data:
brightness: "{{ (start_bright + (step_bright * repeat.index)) | int }}"
color_temp_kelvin: "{{ (start_kelvin + (step_kelvin * repeat.index)) | int }}"
- delay:
seconds: 2
It gives the following error:
Error:Entity {{ manual_override }} is neither a valid entity ID nor a valid UUID for dictionary value @ data['sequence'][3]['repeat']['until'][0]['conditions'][0]['entity_id']. Got '{{ manual_override }}'
.
Why is that?