118 lines
3.3 KiB
YAML
118 lines
3.3 KiB
YAML
|
|
||
|
# values to store within HA
|
||
|
variable:
|
||
|
test_timer_countdown:
|
||
|
value: 0
|
||
|
attributes:
|
||
|
icon: mdi:timer
|
||
|
# dummy device value to turn on and off
|
||
|
test_timer_device:
|
||
|
value: 'OFF'
|
||
|
attributes:
|
||
|
icon: mdi:flash
|
||
|
|
||
|
input_number:
|
||
|
test_timer_duration:
|
||
|
name: "Duration"
|
||
|
unit_of_measurement: seconds
|
||
|
initial: 3
|
||
|
min: 1
|
||
|
max: 15
|
||
|
step: 1
|
||
|
icon: mdi:camera-timer
|
||
|
|
||
|
script:
|
||
|
start_test_timer:
|
||
|
sequence:
|
||
|
- service: variable.set_variable
|
||
|
data:
|
||
|
variable: test_timer_countdown
|
||
|
value_template: '{{ states.input_number.test_timer_duration.state | int }}'
|
||
|
- service: variable.set_variable
|
||
|
data:
|
||
|
variable: test_timer_device
|
||
|
value: 'ON'
|
||
|
- service: automation.turn_on
|
||
|
data:
|
||
|
entity_id: automation.test_timer_countdown
|
||
|
- service: automation.turn_on
|
||
|
data:
|
||
|
entity_id: automation.test_timer_zero_trigger
|
||
|
|
||
|
|
||
|
abort_test_timer:
|
||
|
sequence:
|
||
|
- service: automation.turn_off
|
||
|
data:
|
||
|
entity_id: automation.test_timer_countdown
|
||
|
- service: automation.turn_off
|
||
|
data:
|
||
|
entity_id: automation.test_timer_zero_trigger
|
||
|
- service: variable.set_variable
|
||
|
data:
|
||
|
variable: test_timer_device
|
||
|
value: 'OFF'
|
||
|
- service: persistent_notification.create
|
||
|
data:
|
||
|
message: "Timer was Aborted"
|
||
|
title: "ALERT"
|
||
|
|
||
|
#
|
||
|
automation:
|
||
|
- alias: test_timer_zero_trigger
|
||
|
initial_state: false
|
||
|
trigger:
|
||
|
platform: numeric_state
|
||
|
entity_id: variable.test_timer_countdown
|
||
|
below: 1
|
||
|
action:
|
||
|
- service: automation.turn_off
|
||
|
entity_id: automation.test_timer_countdown
|
||
|
- service: variable.set_variable
|
||
|
data:
|
||
|
variable: test_timer_device
|
||
|
value: 'OFF'
|
||
|
#
|
||
|
- alias: test_timer_countdown
|
||
|
initial_state: false
|
||
|
trigger:
|
||
|
platform: time_pattern
|
||
|
seconds: '/1'
|
||
|
action:
|
||
|
- service: variable.set_variable
|
||
|
data:
|
||
|
variable: test_timer_countdown
|
||
|
value_template: '{{ [((variable.state | int) - 1), 0] | max }}'
|
||
|
|
||
|
# lovelace ui view for timer, copy into ui-lovelace.yaml as a view (lovelace in yaml mode)
|
||
|
# - title: Timer
|
||
|
# cards:
|
||
|
# - type: vertical-stack
|
||
|
# cards:
|
||
|
# - type: horizontal-stack
|
||
|
# cards:
|
||
|
# - type: entity-button
|
||
|
# name: start timer countdown
|
||
|
# icon: mdi:timer
|
||
|
# tap_action:
|
||
|
# action: call-service
|
||
|
# service: script.turn_on
|
||
|
# service_data:
|
||
|
# entity_id: script.start_test_timer
|
||
|
# entity: script.start_test_timer
|
||
|
# - type: entity-button
|
||
|
# name: abort timer
|
||
|
# icon: mdi:timer-off
|
||
|
# tap_action:
|
||
|
# action: call-service
|
||
|
# service: script.turn_on
|
||
|
# service_data:
|
||
|
# entity_id: script.abort_test_timer
|
||
|
# entity: script.abort_test_timer
|
||
|
# - type: entities
|
||
|
# entities:
|
||
|
# - entity: variable.test_timer_countdown
|
||
|
# - entity: variable.test_timer_device
|
||
|
# name: dummy device
|
||
|
# - entity: input_number.test_timer_duration
|