Request: Attribute to Identify Supported Fan Speeds

Are there any plans to extend the Fan Speed capability with an attribute (or other approach) to identify what fanSpeed values are supported for a fan?

Description

From what I’ve seen, most published Fan Speed device handlers implement the speeds 0-3:

Speed Description
0 Off
1 Low
2 Medium
3 High

As such, our Fan Speed tile in SharpTools.io is designed to cycle through these speeds, but we’ve had a few requests for devices that support other speeds - for example, a Bond powered device that supports a speed 4 = Max. Unfortunately, there doesn’t appear to be a way to identify which speeds a fan device supports from the reported device details.

Expand for notes on ST Schema Profiles

That being said, I noticed that the reference ST Schema profiles for Fans have options for a variety of different speeds. (Oddly, all excluding a 0 value for off in the example speeds)

Name Capabilities
c2c-fan-controller-2speed Switch, Fan Speed[1,2]
c2c-fan-controller-3speed Switch, Fan Speed[1,2,3]
c2c-fan-controller-4speed Switch, Fan Speed[1,2,3,4]

Reference: SmartThings Schema Device Handler Types

Prior Art

There is prior art in the SmartThings Capabilities that supports this concept. For example, the Thermostat Mode capability includes a supportedThermostatModes attribute which defines an array of valid mode values.

You can find other similar supportedXXX type of attributes for Dishwasher Operating State, Dryer Operating State, Media Input Source, Oven Operating State, Thermostat Fan Mode and more.

Perhaps an equivalent supportedFanSpeeds attribute could be added so other integrations could better understand what fan speeds are supported.


Also tagging @bond-jacob and @bond-merck to see if they have any thoughts as it seems like something that would be helpful for SmartThings to add as it would make the device handlers for the various Bond products easier to use in other integrations. :slight_smile:

5 Likes

Tagging @jody.albritton

But the fan speed capability isn’t an enum in the new system. It’s a positive integer. So, I am assuming this is a percentage of the total possible speed. This would allow for fans with 4 speeds and fans with 3 speeds to be controlled simultaneously without having to convert from one range to another. I personally prefer the alpha method but i can see the logic in this as well.

If you were to do a number = to speed within a range, you would have different number meaning different things for different fans. for a 4 speed 4 would be high but for a 3 speed 3 would be high. This makes managing two fans within the same system very complicated.

1 Like

Looks like Leviton has a z-wave model with 4 speeds they are trying to integrate

2 Likes