IR FAN (Dyson AM07) Harmony Full Control

Finally was able to add the desired timer :slight_smile:
Mainly using the idea of tboyce1 Stopwatch. Slightly modifiying it, and using a 3rd Sensor to display the remaining time in minutes.

Capture

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'