I’m trying to use dashboard helpers as inputs for multiple values in a blueprint, but I can’t get it to work to set the temperature.
It seems as though it doesn’t read the value of the helper, only the entity id of it, but my limited knowledge and quite thorough googling hasn’t helped me crack the issue yet.
Here’s the Blueprint in it’s entirety:
blueprint:
name: HVAC Daily Schedule, local version
description: Set the target HVAC temperature based on its mode.
domain: automation
input:
climate_id:
name: Thermostat
description: The thermostat to control.
selector:
entity:
domain: climate
multiple: false
cooling_temp:
name: Cool Set Point
description: The target temperature when cooling.
selector:
entity:
domain: input_number
multiple: false
#selector:
#number:
#min: 0.0
#max: 100.0
#step: 1.0
#mode: slider
#unit_of_measurement: "°C"
heating_temp:
name: Heat Set Point
description: The target temperature when heating.
selector:
entity:
domain: input_number
multiple: false
#selector:
#number:
#min: 0.0
#max: 100.0
#step: 1.0
#mode: slider
#unit_of_measurement: "°C"
at_time:
name: Time
description: The time to update this device.
selector:
entity:
domain: input_datetime
# selector:
# time: {}
retry_timeout:
name: Retry timeout
description: The time the automation should stop trying to resolve the automation.
selector:
time: {}
on_monday:
name: Monday
default: true
selector:
boolean: {}
on_tuesday:
name: Tuesday
default: true
selector:
boolean: {}
on_wednesday:
name: Wednesday
default: true
selector:
boolean: {}
on_thursday:
name: Thursday
default: true
selector:
boolean: {}
on_friday:
name: Friday
default: true
selector:
boolean: {}
on_saturday:
name: Saturday
default: true
selector:
boolean: {}
on_sunday:
name: Sunday
default: true
selector:
boolean: {}
source_url: http://localhost
variables:
weekly_schedule:
- !input on_monday
- !input on_tuesday
- !input on_wednesday
- !input on_thursday
- !input on_friday
- !input on_saturday
- !input on_sunday
heating_t: !input heating_temp
cooling_t: !input cooling_temp
trigger:
- platform: time
at: !input at_time
condition:
- condition: template
value_template: '{{ weekly_schedule[now().weekday()] }}'
action:
- if:
- condition: and
conditions:
- condition: time
before: !input "retry_timeout"
- condition: state
entity_id: !input "climate_id"
state: unavailable
then:
- repeat:
until:
condition: and
conditions:
- condition: time
before: !input "retry_timeout"
- not:
- condition: state
entity_id: !input "climate_id"
state: unavailable
sequence:
- if:
- condition: and
conditions:
- condition: time
before: !input "retry_timeout"
- condition: state
entity_id: !input "climate_id"
state: unavailable
then:
- delay: 00:01:00
else:
- choose:
- conditions:
- condition: state
entity_id: !input "climate_id"
state: heat
sequence:
- service: climate.set_temperature
entity_id: !input "climate_id"
data:
temperature: !input "heating_temp"
- conditions:
- condition: state
entity_id: !input "climate_id"
state: cool
sequence:
- service: climate.set_temperature
entity_id: !input "climate_id"
data:
temperature: '{{ cooling_t | float }}'
else:
if:
- condition: and
conditions:
- condition: time
before: !input "retry_timeout"
- not:
- condition: state
entity_id: !input "climate_id"
state: unavailable
then:
- choose:
- conditions:
- condition: state
entity_id: !input "climate_id"
state: heat
sequence:
- service: climate.set_temperature
entity_id: !input "climate_id"
data:
temperature: "{{ state(heating_t)| float }}"
- conditions:
- condition: state
entity_id: !input "climate_id"
state: cool
sequence:
- service: climate.set_temperature
entity_id: !input "climate_id"
data:
temperature: '{{ cooling_t | float }}'
else:
- stop: Still unavailable
mode: single
As you can see, I’ve tried both templates with variables and the input directly.
Nothing works.
With state I get:
Error rendering data template: UndefinedError: 'state' is undefined
Without state I get:
Error: Error rendering data template: ValueError: Template error: float got invalid input 'input_number.dagtemperatur_varme' when rendering template '{{ heating_t | float }}' but no default was specified
With the input I get:
expected float for dictionary value @ data['temperature']
because it tried to send the command like so:
service: climate.set_temperature
entity_id: climate.in2124614
data:
temperature: input_number.dagtemperatur_varme
So I don’t know how to make it read the value of the input_number chosen.