For some reason that clicked and this seems to work, you basically redirect the default 33/66/99 of the buttons to new values.
- fan:
- name: "Fan Master"
unique_id: 0c14dcef-7658-4db5-9e4f-9f4d9f298123
state: "{{ states('fan.master_fan_2') }}"
turn_on:
- action: fan.turn_on
target:
entity_id: fan.master_fan_2
turn_off:
- action: fan.turn_off
target:
entity_id: fan.master_fan_2
percentage: >
{{ state_attr('fan.master_fan_2', 'percentage') }}
speed_count: 3
set_percentage:
- action: fan.set_percentage
target:
entity_id: fan.master_fan_2
data:
percentage: >-
{% if percentage >= 70 %}
100
{% elif percentage >= 34 %}
60
{% elif percentage > 0 %}
20
{% else %}
0
{% endif %}
preset_modes:
- "off"
- "low"
- "medium"
- "high"
preset_mode: >
{% if is_state('fan.master_fan_2', 'on') %}
{% if state_attr('fan.master_fan_2', 'percentage') >= 70 %}
high
{% elif state_attr('fan.master_fan_2', 'percentage') >= 34 %}
medium
{% else %}
low
{% endif %}
{% else %}
off
{% endif %}
set_preset_mode:
- action: fan.set_percentage
target:
entity_id: fan.master_fan_2
data:
percentage: >-
{% if preset_mode == 'high' %}
100
{% elif preset_mode == 'medium' %}
60
{% elif preset_mode == 'low' %}
20
{% else %}
0
{% endif %}