Try…
value_template: '{{ now().strftime("%-H") == states.sensor.alarm_hour.state and now().strftime("%-M") == states.sensor.alarm_minutes.state }}'
Try…
value_template: '{{ now().strftime("%-H") == states.sensor.alarm_hour.state and now().strftime("%-M") == states.sensor.alarm_minutes.state }}'
Here is my latest sample code…
Changes:
now()
issue caused by changes in version 0.29input_boolean.alarmstatus
because we can now turn on/off the automation from the front end introduced in version 0.28 (replace by automation.wake_me_up
in group)Sample code:
input_slider:
alarmhour:
name: Hour
icon: mdi:timer
initial: 9
min: 0
max: 23
step: 1
alarmminutes:
name: Minutes
icon: mdi:timer
initial: 0
min: 0
max: 55
step: 5
input_boolean:
alarmweekday:
name: Weekdays Only
initial: off
icon: mdi:calendar
sensor:
platform: template
sensors:
alarm_time:
friendly_name: 'Time'
value_template: '{{ "%0.02d:%0.02d" | format(states("input_slider.alarmhour") | int, states("input_slider.alarmminutes") | int) }}'
group:
default_view:
view: yes
entities:
- group.alarmclock
alarmclock:
name: Wake Me Up
entities:
- automation.wake_me_up
- sensor.alarm_time
- input_slider.alarmhour
- input_slider.alarmminutes
- input_boolean.alarmweekday
automation:
- alias: 'Wake Me Up'
trigger:
platform: template
value_template: '{{ now().strftime("%H") == "%0.02d" | format(states("input_slider.alarmhour") | int) and now().strftime("%M") == "%0.02d" | format(states("input_slider.alarmminutes") | int) }}'
condition:
condition: or
conditions:
- condition: and
conditions:
- condition: state
entity_id: input_boolean.alarmweekday
state: 'on'
- condition: time
weekday:
- mon
- tue
- wed
- thu
- fri
- condition: state
entity_id: input_boolean.alarmweekday
state: 'off'
action:
service: notify.notify
data:
message: 'Good morning. Time to Wake Up!'
title: ""
Does not work.
But I noticed - if I move the slider “minutes” to the current time - avtomation work. And if I move slider even for a several minutes forward - automation dont work.
Yeah broken here too
On the latest version, and tried the updated code above, but does not work unfourtantly.
I have updated the above sample code because there was an indentation mistake in the automation.
Hey!
I updated it but it behaves odd, if I press the automation and trigger it from hass manually then it triggers, but when setting a time and all that to let it activate like that then it doesn’t work I tried copying everything you did but ever since I updated hass to latest version it’s a no go, don’t know what else to do
Thanks for being so quick and awesome to respond btw!
I have similar problem
weird. i changed my code back to earlier version and it also failed. Maybe it is a bug in version 0.29.6. anyone has any success?
After further testing, I found out this automation works in version 0.28.2. After I upgraded back to 0.29.6 and change the now.time().strftime to now().strftime, it stop working…
- alias: 'Wake Me Up'
trigger:
platform: template
value_template: '{{ now().strftime("%-H") == states.sensor.alarm_hour.state and now().strftime("%-M") == states.sensor.alarm_minutes.state }}'
condition:
condition: or
conditions:
- condition: and
conditions:
- condition: state
entity_id: input_boolean.alarmweekday
state: 'on'
- condition: time
weekday:
- mon
- tue
- wed
- thu
- fri
- condition: state
entity_id: input_boolean.alarmweekday
state: 'off'
action:
service: notify.telegram
data_template:
message: 'Good morning. Time to Wake Up!'
title: ""
template triggers only check for their triggers when one of the entity’s specified in value_template it’s state changes if their state does not change the template trigger value is not checked and no trigger will trigger.
a workaround might be to create a time sensor with hours & minutes and add this sensors in value_template somehow without it having an effect like so perhpas (not tested)
sensor:
- platform: template
sensors:
time:
value_template: '{{ now().strftime("%H:%M")}}'
and change the value template to include the sensor.time like so for example
value_template: '{{ (now().strftime("%-H") == states.sensor.alarm_hour.state and now().strftime("%-M") == states.sensor.alarm_minutes.state) and states.sensor.time == states.sensor.time }}'
the time sensors state will change every minute so the trigger is being checked at least every minute.
A better way is to use the a time trigger that checks every minute with a template condition
something like (not tested)
automation:
- alias: 'Wake Me Up'
trigger:
platform: time
minutes: '/1'
seconds: 0
condition:
condition: or
conditions:
- condition: and
conditions:
- condition: state
entity_id: input_boolean.alarmweekday
state: 'on'
- condition: time
weekday:
- mon
- tue
- wed
- thu
- fri
- condition: state
entity_id: input_boolean.alarmweekday
state: 'off'
- condition: template
value_template: '{{ now().strftime("%-H") == states.sensor.alarm_hour.state and now().strftime("%-M") == states.sensor.alarm_minutes.state }}'
action:
service: notify.telegram
data_template:
message: 'Good morning. Time to Wake Up!'
title: ""
thanks a lot
Hey there, any idea what I have to change to get it working again:
input_select:
wecker:
name: Wecker
options:
- '05:15'
- '05:45'
- '06:00'
- '06:30'
automation:
- alias: 'Sunrise'
trigger:
platform: template
value_template: '{{ now().strftime("%-H:%-M") == states.input_select.wecker.state }}'
action:
- [...]
Any hints?
I did the following to get it to work (mines in win 10 tho’ so don’t use the %R basically just move the template into a condition and the trigger runs every min)
you only have one entity_id in your template and it’s static so it will never trigger because the state of an input select only changes if you select something in the input select.
Use a time trigger that checks every minute and use a template condition
WORKS √
This is my config:
input_select:
wecker:
name: Wecker
options:
- '05:15'
- '05:45'
- '06:00'
- '06:30'
automation:
- alias: 'Sunrise'
trigger:
platform: time
minutes: '/1'
seconds: 0
condition:
platform: template
value_template: '{{ now().strftime("%H:%M") == states.input_select.wecker.state }}'
action:
- [...]
Keith & Joyrider, many thanks for your hints!
I manage to fix this by add Time & Date sensor and then change the automation trigger to…
value_template: '{{ states.sensor.time.state == states.sensor.alarm_time.state }}'
Working great now! Thank you so much for keeping this up!
Hi,
There is another aproach using the three template sensors:
Sensors:
sensor:
- platform: template
sensors:
alarm_hour:
friendly_name: 'Hour'
value_template: '{{ states.input_slider.alarmhour.state|round(0)|string }}'
alarm_minutes:
friendly_name: 'Minutes'
value_template: '{{ states.input_slider.alarmminutes.state|round(0)|string }}'
alarm_time:
friendly_name: 'Alarm'
value_template: '{% if states.input_slider.alarmhour.state|round(0)|string|length == 1 %}0{% endif %}{{ states.input_slider.alarmhour.state|round(0)|string }}:{% if states.input_slider.alarmminutes.state|round(0)|string|length == 1 %}0{% endif %}{{ states.input_slider.alarmminutes.state|round(0)|string }}'
time:
value_template: '{{ now().strftime("%H:%M")}}'
Inputs:
input_slider:
alarmhour:
name: Hour
icon: mdi:timer
initial: 7
min: 0
max: 23
step: 1
alarmminutes:
name: Minutes
icon: mdi:timer
initial: 0
min: 0
max: 55
step: 5
input_boolean:
alarmstatus:
name: Active
initial: off
icon: mdi:alarm-check
alarmweekday:
name: workdays
initial: off
icon: mdi:calendar
Automation:
- alias: 'Alarm'
trigger:
platform: time
minutes: '/1'
seconds: 0
condition:
condition: and
conditions:
- condition: template
value_template: '{{ states.sensor.time.state == states.sensor.alarm_time.state }}'
- condition: or
conditions:
- condition: and
conditions:
- condition: state
entity_id: input_boolean.alarmstatus
state: 'on'
- condition: state
entity_id: input_boolean.alarmweekday
state: 'on'
- condition: time
weekday:
- mon
- tue
- wed
- thu
- fri
- condition: and
conditions:
- condition: state
entity_id: input_boolean.alarmstatus
state: 'on'
- condition: state
entity_id: input_boolean.alarmweekday
state: 'off'
action:
- service: notify.miguel
data:
message: 'morning'
title: 'ALARM'