Okay, so I know this is confusion, but I need some help. I’ve got the LZW36 fan. It supports “breezey” mode by setting the percentage of the fan to 1, as well as the standard off, low, medium, and high speeds. I’m trying to build a simple template fan that enables that option. Here’s what I have so far:
my_fan_template:
friendly_name: "My Fan"
value_template: "{{ states('fan.actual_fan_device') }}"
percentage_template: "{{ state_attr('fan.actual_fan_device', 'percentage') }}"
preset_mode_template: >
{% if is_state_attr('fan.actual_fan_device', 'percentage', 1) %}
breezy
{% endif %}
turn_on:
service: fan.turn_on
entity_id: fan.actual_fan_device
turn_off:
service: fan.turn_off
entity_id: fan.actual_fan_device
set_percentage:
service: fan.set_percentage
entity_id: fan.actual_fan_device
data:
percentage: "{{percentage}}"
set_preset_mode:
service: fan.set_percentage
entity_id: fan.actual_fan_device
data:
percentage: 1
preset_modes:
- 'breezy'
speed_count: 3
This pretty much works, except for that I can never get the fan state to actually report “breezy” mode. If I set the preset mode to breezey, it sets the fan percentage to 1. Then if I go check the state, it says the speed is “low”, the preset_mode is null, and the percentage is 1. I want it to report preset_mode as breezy.
I tried having percentage_template only return the value if it was > 1, but when it’s 1, HA gives this error:
ERROR (MainThread) [homeassistant.components.template.fan] Received invalid percentage:
It looks like it’s not possible based on what I see here: core/fan.py at e5c70c87896686717d45f5fe7d06b3af064a93ef · home-assistant/core · GitHub But I’m hoping I’m wrong.