Template Fan


The template platform creates fans that combine components and provides the ability to run scripts or invoke services for each of the turn_on, turn_off, set_speed, and set_oscillating 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') }}"
        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 }}"
        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

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 a osc state command.

speeds

(string list)(Optional)List of speeds the fan is capable of running at.

Default value: [“low”, “medium”, “high”]