Adjust light entities for minimum dimming value and gamma ramp

I have a load of Qubino dimmers in my setup, connected to several different types of light fitting. Many of these don’t glow below a certain dimming value, meaning people can leave lights switched “on” with no light output. Also, most of the lights have a brightness range that is decidedly non-linear (when perceived by a human, at least), so the HA dashboard is awkward to use to set the right dimming value.

For example, 20% might be the point at which the light starts to glow, with most of the visible difference in brightness being between 20% and 50%. I might not be able to notice any appreciable difference in brightness (or power usage) between 70% and 100%

To solve this, I want to find a way to maps the input brightness value to a physical dimmer value that adjusts for the minimum, maximum and gamma ramp of each light. Honestly, I think this would be a great feature if HA had it built in, as I can imagine this isn’t an uncommon complaint. However, right now, I’m just looking for something practical for me.

I used to be able to solve the minimum dimming issue with a setting in the Z-Wave dimmer, but the firmware is buggy and now this conflicts with other ZWave-JS fixes which means the wrong dimmer value is reported back to HA if I use this feature.

So I’m looking for an alternative solution… It seems to me the best option is to wrap the “real” light entity with a new entity that maps the input brightness value to a physical dimmer value that adjusts for the minimum, maximum and gamma ramp of each light, and then to hide the underlying entity.

I think I can try to use the template light to achieve this, but there will just be so much config to maintain if I need to write an individual template for each light.

Has anyone got any suggestions of how I can achieve this? Like a way for me to write something like “For Each light, create template entity”? Or any solution at all really, although I would like to avoid HACS.

Thanks,
Mark

2 Likes

I managed to do what I wanted, by creating a custom helper integration to achieve this in the UI. I didn’t like the template solution.

1 Like