| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- blueprint:
- name: Sleep Timer
- description: Perform one or more actions after a sleep timer expires
- domain: automation
- input:
- input_number:
- name: Input Number
- description: The input number that determines how many minutes the sleep timer
- should last for
- selector:
- entity:
- domain: input_number
- timer:
- name: Timer
- description: The entity that represents the timer itself
- selector:
- entity:
- domain: timer
- timer_cancel_action:
- name: Action on Timer Cancel
- description: The action(s) to run when the timer is canceled
- default: []
- selector:
- action: {}
- timer_expire_action:
- name: Action on Timer Expire
- description: The action(s) to run when the timer expires
- default: []
- selector:
- action: {}
- timer_start_action:
- name: Action on Timer Start
- description: The action(s) to run when the timer starts
- default: []
- selector:
- action: {}
- source_url: https://community.home-assistant.io/t/sleep-timer/256463
- mode: restart
- variables:
- slider: !input 'input_number'
- slider_value: '{{ states(slider) | int * 60 }}'
- trigger:
- - platform: state
- entity_id: !input 'input_number'
- - platform: state
- entity_id: !input 'timer'
- to: idle
- action:
- choose:
- - conditions:
- - condition: template
- value_template: '{{ trigger.to_state.state == "idle" }}
- '
- sequence:
- - service: input_number.set_value
- data:
- entity_id: !input 'input_number'
- value: 0
- - choose: []
- default: !input 'timer_expire_action'
- - conditions:
- - condition: numeric_state
- entity_id: !input 'input_number'
- below: 1
- sequence:
- - service: timer.cancel
- data:
- entity_id: !input 'timer'
- - choose: []
- default: !input 'timer_cancel_action'
- - conditions:
- - condition: numeric_state
- entity_id: !input 'input_number'
- above: 0
- sequence:
- - service: timer.start
- data:
- entity_id: !input 'timer'
- duration: '{{ slider_value }}'
- - choose: []
- default: !input 'timer_start_action'
|