Fan.decrease does not turn off the fan

I have a fan with four speeds:, 0, 33%, 66%, 100%. A made an automation that decreases the fan speed. When I call this:

action: fan.decrease_speed
target:
  entity_id: fan.fan
data: {}

…while the fan is at 33%, nothing happens. It does not decrease further. Am I doing something wrong? Increase speed works for 0 → 33%.

use fan.turn_off to turn off the fan.

How come the decrease button does not decrease from the lowest percentage?

An automation to increase fan speed looks incredibly simple. If UP button pressed, call action fan.increase_speed. That’s it.

As it is now, the decrease automation looks like:

If DOWN button pressed:

if (current speed == lowest speed increment)
then fan.turn_off

else: fan.decrease_speed

I see no reason why INCREASE is able to turn ON a fan, but DECREASE cannot turn OFF a fan. There’s no reason for these to not function symmetrically. Heck I’d rather the INCREASE not turn the fan on, so at least the functions match.

Write up a Feature Requests. I’m just describing what you have to do currently. :+1:

Seems to be a bug, and further investigation came with more details. Bug created here Action for fan decrease speed only works once · Issue #124097 · home-assistant/core · GitHub