Finally was able to add the desired timer
Mainly using the idea of tboyce1 Stopwatch. Slightly modifiying it, and using a 3rd Sensor to display the remaining time in minutes.
The addtiional code:
configuration.yaml
input_boolean: stopwatch: name: Stopwatch initial: off dummy: name: Dummy initial: off
groups.yaml
card_dysonlr:
name: Dyson Wohnzimmer
entities:
- input_boolean.livingroomfanoscillate
- input_boolean.livingroomfanpower
- input_slider.livingroom_fanspeed
- input_slider.livingroom_fantime
- sensor.timedyson
customize.yaml
> sensor.timedyson:
> icon: mdi:timelapse
automations.yaml
- alias: Stopwatch start
trigger:
platform: state
entity_id: input_boolean.stopwatch
to: "on"
action:
- service: input_boolean.toggle
entity_id: input_boolean.dummy
- alias: Stopwatch stop
trigger:
platform: state
entity_id: input_boolean.stopwatch
to: 'off'
action:
- service: input_boolean.toggle
entity_id: input_boolean.dummy
- alias: Stopwatch update
trigger:
platform: time
seconds: '/30'
condition:
condition: state
entity_id: input_boolean.stopwatch
state: 'on'
action:
service: input_boolean.toggle
entity_id: input_boolean.dummy
######################################################Dyson LR Turn Timer Slider to 0 if PowerButton is Off###########################################
- action:
- service: input_slider.select_value
data_template:
entity_id: input_slider.livingroom_fantime
value: '0'
alias: PowerOff
id: '1505854845302'
trigger:
platform: state
entity_id: input_boolean.livingroomfanpower
to: 'off'
############################################################### TURN ON STOPWATCH IF TIMER IS BIGGER THAN 0 ############################################
- action:
- service: input_boolean.turn_on
data:
entity_id: input_boolean.stopwatch
alias: PowerOn
id: '1505854865109'
trigger:
platform: state
entity_id: input_slider.livingroom_fantime
condition:
condition: template
value_template: '{{ trigger.to_state.state | int > 0 }}'
################################################################ TURN OFF STOPWATCH IF POWER IS OFF ####################################################
- action:
- service: input_boolean.turn_off
data:
entity_id: input_boolean.stopwatch
alias: OscillatePower
id: '1505854845101'
trigger:
platform: state
entity_id: input_boolean.livingroomfanpower
to: 'off'
sensors.yaml
- platform: template
sensors:
stopwatch:
friendly_name: "Stopwatch"
value_template: >
{% if is_state('input_boolean.stopwatch', 'on') %}
{{ (now() - states.automation.stopwatch_start.attributes.last_triggered).total_seconds() | int }}
{%-elif is_state('sensor.stopwatch', 'unknown') %}
0
{% else %}
{{ states.sensor.stopwatch.state }}
{% endif %}
unit_of_measurement: 'sec'
entity_id:
- automation.stopwatch_start
- automation.stopwatch_update
- automation.stopwatch_stop
- platform: template
sensors:
timedyson:
friendly_name: "Time Left"
value_template: '{{ (states.input_slider.livingroom_fantime.state | int - states.sensor.stopwatch.state | int / 60)| round }}'
unit_of_measurement: 'min'