I’ve added many Lutron Caséta dimmers and switches and have them working perfectly. However, I just installed my first Lutron Caséta Smart Fan Speed Control switch (model PD-FSQN-WH) and have run into some oddities with the core Caseta integration (core-2021.7.4, Home Assistant OS on NUC). I’m hoping someone can shed some light on whether there’s an issue with the integration, documentation, or just my understanding of how things should work.
Using the physical switch, the fan has four speed settings in addition to “off”. Monitoring the switch through the HASS developer tools while using the physical switch, I see the following sequence, starting at “off” and clicking the switch up one speed each time:
off button reported speed: off reported percentage: 0
up button reported speed: low reported percentage: 25
up button reported speed: medium reported percentage: 50
up button reported speed: high reported percentage: 75
up button reported speed: high reported percentage: 100
The attributes also include a speed_list
which contains “off”, “low”, “medium”, and “high” which correspond to what’s displayed above. The first oddity is that “high” is displayed for both 75% and 100% speed. Looking at the integration source code, I see the following line which implies there should also be a “medium_high” speed available for the 75% level:
ORDERED_NAMED_FAN_SPEEDS = [FAN_LOW, FAN_MEDIUM, FAN_MEDIUM_HIGH, FAN_HIGH]
Moving on to controlling via HASS, the core Lutron Caséta docs say "Available services: fan.turn_on
, fan.turn_off
, and fan.set_speed
". The Fan integration docs say that fan.set_speed
is deprecated, but takes a string such as “low”, “medium”, or “high”. The newer fan.set_percentage
is not listed as an available service.
Using service fan.set_speed
, below is what the fan reports back after receiving the associated speed command:
fan.set_speed: off reported speed: off reported percentage: 0
fan.set_speed: low reported speed: medium reported percentage: 50
fan.set_speed: medium reported speed: high reported percentage: 75
fan.set_speed: high reported speed: high reported percentage: 100
So, using fan.set_speed
with “low”, “medium”, and “high” does NOT result in the correct speeds of the fan. I’m guessing this is because the Lutron switch uses percentage_step: 25
(as reported by the attributes) but fan.set_speed
has only three settings, which I assume roughly translate to 33%, 67%, and 100%.
Even though it’s not listed as supported, I tried service fan.set_percentage
on the switch, and it worked correctly (using 25% increments). It did still report back “speed: high” for both 75% and for 100% though, just like the first test above.
So, since fan.set_percentage
works correctly, and fan.set_speed
does not, should the documentation be updated to reflect this, and discourage the use of fan.set_speed
? The integration source also says that fan.set_speed
is the only “supported_feature” so I’d think code changes would be required as well to ensure everything’s in sync.
Wasn’t sure if I should open an issue on github before getting some input here, in case I’m confused about how things should work.
Thanks!