Supported_features wrong for multiple devices?

Hi, I’m trying to use supported_features in my custom dashboard to figure out what features to render for different devices.

E.g. take light as a simple example:

# Bitfield of features supported by the light entity
SUPPORT_BRIGHTNESS = 1
SUPPORT_COLOR_TEMP = 2
SUPPORT_EFFECT = 4
SUPPORT_FLASH = 8
SUPPORT_COLOR = 16
SUPPORT_TRANSITION = 32
SUPPORT_WHITE_VALUE = 128

if supported_features === 1 in this case, it would mean it only supports SUPPORT_BRIGHTNESS. (If I’m reading all the other forum posts about supported_features correctly)

However after checking multiple of my devices, their supported_features number is incorrect…

For example I have a LIFX Z (LED strip), with: supported_features: 36

That would mean the light strip should only support SUPPORT_TRANSITION, & SUPPORT_EFFECT and nothing else… But that’s not true, it has full support for at least brightnes, color and white value as well. I can even send the callService messages and adjust the brightness using home assistant with no issues… So why does home assistant think my light strip only supports “36”?

Another example, I have an Aqara hub with a light on it, I connected to home assistant via the homekit integration… That has supported_features: 0 But that’s also wrong, I can adjust the brightness and change the color of that light as well? So it should have AT LEAST supported_features of 17…

Same story for other devices as well. (I have only checked lights so far, but clearly this value cannot be trusted :frowning:)

Where does home assistant come up with these feature sets from, why are they so wrong? and is there any way to correct this?