Bring back low, medium, and high settings for fans

A few months ago, we moved to using percentages for fan control. This totally makes sense as there are fans now with 6+ speed settings. However, this move can be cumbersome for Alexa. It seems like it would be slightly more intuitive to people who aren’t HA wizards to be able to control fans with traditional words like “low”, “medium”, and “high”. That’s much easier than telling my mom that she needs to say 33 (or some number around there) for “low”.

It seems like this should be pretty straight forward for just about any fan.
low = 33
med = 66
high = 100

That should work regardless of speeds available for a fan, while retaining the same granular controls afforded by the percentages.

Since you’ve done some work on this stuff in the past, hope you don’t mind the tags @bdraco @jbouwh

FWIW, I created a template for my specific fan a while ago, but it seems the low, med, high no longer works.

From your title it isn’t clear if you are asking to change the entity model back to the 3 speed model or add a translation layer in alexa.

If you are suggesting a translation layer for Alexa, it would be better to use the built in percentage to named speed conversion logic then specific values (33/66/100)

I don’t think we should change the entity model, but how it’s presented to alexa is largely left up to the integration authors. I’m not an Alexa users so I don’t have any opinion on that

Please see the section on Preset Modes

They are not intended to be used for speeds

An issue is the value for “Med”. Should it be 66 or 67 (round(2/3))? I have a fan where the control for the medium speed requires 66, but the custom card display interprets and shows that value as Low, not Medium.

Thanks for the reply! I’m sorry, I don’t know enough to specifically address your question.

Previously, low/med/high was available to Alexa (as well as in the HA UI). When things transitioned to percentages, that was no longer the case. Since that’s when it stopped working, that makes me think its not the integrations, but the devices themselves. This greatly reduces the Partner Acceptance Factor for fan control. Does that make sense?

Here is a FR that already has over 100 votes for the same request that I put up in May of last year.

I doubt it will happen.

Open source benefit: Anyone at any time can PR this change to incorporate into the design. I know I personally can’t take it on, but it’s POSSIBLE to!

It seems that I forgot that I participated in that thread.

I would have sworn that low/med/high didn’t work in my fan template, but @rhodges seems to suggest they do.

It still makes zero sense that low/med/high wouldn’t be natively supported.

1 Like

Me too! :laughing:

It sounds like you are asking for a change with Alexa and not to change the fan entity model, which might be doable as it looks like AlexaRangeController could still be implemented along side PercentageController

I put together a rough concept.

I don’t use alexa though so I have no way to test if it works.

1 Like

Holy crap that’s AWESOME. Is there an easy way for me to cherry pick this and test it?

You can checkout the PR and copy the alexa directory to /config/custom_components/alexa and restart

Alan has a tool that does most of the work for you GitHub - alandtse/pr_custom_component: Create a custom component from a Home Assistant Integration Pull Request. Use this when you want to test a pull request that changes a built in integration.

1 Like

You’re a wizard. Thank you so much.

This did not seem to work.

Hopefully someone who has an alexa can take that and figure out what needs to be adjusted.