219 lines
6.0 KiB
Markdown

---
title: Fan
description: Instructions on how to setup Fan devices within Home Assistant.
ha_category:
- Fan
ha_release: 0.27
ha_quality_scale: internal
ha_domain: fan
ha_codeowners:
- '@home-assistant/core'
ha_integration_type: entity
---
The **Fan** {% term integration %} allows you to control and monitor fan devices.
{% include integrations/building_block_integration.md %}
## The state of a fan entity
The state of a fan entity can be either **On** or **Off**.
In addition, the entity can have the following states:
- **Unavailable**: The entity is currently unavailable.
- **Unknown**: The state is not yet known.
## Actions
### Fan control actions
Available actions:
`fan.set_percentage`, `fan.set_preset_mode`, `fan.set_direction`, `fan.oscillate`, `fan.turn_on`, `fan.turn_off`, `fan.toggle`, `fan.increase_speed`, `fan.decrease_speed`
{% note %}
Not all fan actions may be available for your platform. You can check which actions are available for your fan(s) under **Developer Tools** > **Actions**.
{% endnote %}
### Action `fan.set_percentage`
Sets the speed percentage for fan device.
| Data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | yes | String or list of strings that define the entity ID(s) of fan device(s) to control. To target all fan devices, use `all`.
| `percentage` | no | Percentage speed setting
#### Automation example
```yaml
automation:
triggers:
- trigger: time
at: "07:15:00"
actions:
- action: fan.set_percentage
target:
entity_id: fan.kitchen
data:
percentage: 33
```
### Action `fan.set_preset_mode`
Sets a preset mode for the fan device. Available preset modes are defined by the integration that supplies the fan entity to Home Assistant. For example, the ESPHome [Speed Fan](https://esphome.io/components/fan/speed.html) component provides three available presets by default: `Low`, `Medium`, and `High`.
| Data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | yes | String or list of strings that define the entity ID(s) of fan device(s) to control. To target all fan devices, use `all`.
| `preset_mode` | no | The preset mode
#### Automation example
```yaml
automation:
triggers:
- trigger: time
at: "07:15:00"
actions:
- action: fan.set_preset_mode
target:
entity_id: fan.kitchen
data:
preset_mode: auto
```
### Action `fan.set_direction`
Sets the rotation for fan device.
| Data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | yes | String or list of strings that define the entity ID(s) of fan device(s) to control. To target all fan devices, use `all`.
| `direction` | no | The direction to rotate. Either `forward` or `reverse`
#### Automation example
```yaml
automation:
triggers:
- trigger: time
at: "07:15:00"
actions:
- action: fan.set_direction
target:
entity_id: fan.kitchen
data:
direction: forward
```
### Action `fan.oscillate`
Sets the oscillation for fan device.
| Data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | yes | String or list of strings that define the entity ID(s) of fan device(s) to control. To target all fan devices, use `all`.
| `oscillating` | no | Flag to turn on/off oscillation. Either `True` or `False`.
#### Automation example
```yaml
automation:
triggers:
- trigger: time
at: "07:15:00"
actions:
- action: fan.oscillate
target:
entity_id: fan.kitchen
data:
oscillating: True
```
### Action `fan.turn_on`
Turn fan device on. This is only supported if the fan device supports being turned off. See a similar example under `fan.turn_off`.
| Data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | yes | String or list of strings that define the entity ID(s) of fan device(s) to control. To target all fan devices, use `all`.
| `percentage` | yes | Percentage speed setting
| `preset_mode` | yes | The preset mode
### Action `fan.turn_off`
Turn fan device off. This is only supported if the fan device supports being turned on.
| Data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | yes | String or list of strings that define the entity ID(s) of fan device(s) to control. To target all fan devices, use `all`.
#### Automation example
```yaml
automation:
triggers:
- trigger: time
at: "07:15:00"
actions:
- action: fan.turn_off
target:
entity_id: fan.kitchen
data:
speed: low
```
### Action `fan.increase_speed`
Increases the speed of the fan device.
| Data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | yes | String or list of strings that define the entity ID(s) of fan device(s) to control. To target all fan devices, use `all`.
| `percentage_step` | yes | Increase speed by a percentage. Should be between 0..100.
#### Automation example
```yaml
automation:
triggers:
- trigger: device
device_id: 097cd9f706a86e9163acb64ba7d630da
domain: lutron_caseta
type: press
subtype: raise
actions:
- action: fan.increase_speed
target:
entity_id: fan.dining_room_fan_by_front_door
```
### Action `fan.decrease_speed`
Decreases the speed of the fan device.
| Data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | yes | String or list of strings that define the entity ID(s) of fan device(s) to control. To target all fan devices, use `all`.
| `percentage_step` | yes | Decrease speed by a percentage. Should be between 0..100.
#### Automation example
```yaml
automation:
triggers:
- trigger: device
device_id: 097cd9f706a86e9163acb64ba7d630da
domain: lutron_caseta
type: press
subtype: lower
actions:
- action: fan.decrease_speed
target:
entity_id: fan.dining_room_fan_by_front_door
```