Template Fan


The template platform creates fans that combine integrations and provides the ability to run scripts or invoke services for each of the turn_on, turn_off, set_speed, set_oscillating, and set_direction commands of a fan.

To enable Template Fans in your installation, add the following to your configuration.yaml file:

# Example configuration.yaml entry
fan:
  - platform: template
    fans:
      bedroom_fan:
        friendly_name: "Bedroom fan"
        value_template: "{{ states('input_boolean.state') }}"
        speed_template: "{{ states('input_select.speed') }}"
        oscillating_template: "{{ states('input_select.osc') }}"
        direction_template: "{{ states('input_select.direction') }}"
        turn_on:
          service: script.fan_on
        turn_off:
          service: script.fan_off
        set_speed:
          service: script.fan_speed
          data_template:
            speed: "{{ speed }}"
        set_oscillating:
          service: script.fan_oscillating
          data_template:
            oscillating: "{{ oscillating }}"
        set_direction:
          service: script.fan_direction
          data_template:
            direction: "{{ direction }}"
        speeds:
          - '1'
          - '2'
          - '3'

Configuration Variables

fans

(map)(Required)

List of your fans.

friendly_name

(string)(Optional)

Name to use in the frontend.

value_template

(template)(Required)

Defines a template to get the state of the fan. Valid value: ‘on’/‘off’

speed_template

(template)(Optional)

Defines a template to get the speed of the fan.

oscillating_template

(template)(Optional)

Defines a template to get the osc state of the fan. Valid value: true/false

direction_template

(template)(Optional)

Defines a template to get the direction of the fan. Valid value: ‘forward’/‘reverse’

availability_template

(template)(Optional)

Defines a template to get the available state of the component. If the template returns true, the device is available. If the template returns any other value, the device will be unavailable. If availability_template is not configured, the component will always be available.

Default value:

true

turn_on

(action)(Required)

Defines an action to run when the fan is turned on.

turn_off

(action)(Required)

Defines an action to run when the fan is turned off.

set_speed

(action)(Optional)

Defines an action to run when the fan is given a speed command.

set_oscillating

(action)(Optional)

Defines an action to run when the fan is given an osc state command.

set_direction

(action)(Optional)

Defines an action to run when the fan is given a direction command.

speeds

(string | list)(Optional)

List of speeds the fan is capable of running at.

Default value:

[“low”, “medium”, “high”]