Relative Light Group

Hi,

I’d like to share my (more or less) first custom Home Assistant integration. The main idea was taken from this wonderful project: GitHub - oscarb/relative-brightness-light-group: Light group for Home Assistant that maintains relative brightness between lights as group brightness is changed. · GitHub. However, since it is no longer maintained and lacks some features that I consider necessary for this integration, I decided to create my own.

571419037-c2cb4651-b97e-4279-8762-a96722c17bc0

This custom Home Assistant integration that creates light groups with relative brightness control. This integration is built upon the codebase of the official Home Assistant group integration, extending its native functionality.

Unlike standard light groups, this integration maintains the relative brightness ratio between lights when adjusting the group brightness. Changes to color, effects, and other attributes are only applied to lights that are currently on — off lights are never accidentally turned on by attribute changes.

:point_right: https://github.com/Cheerpipe/relative-light-group

This integration creates light groups that adjust brightness relatively instead of absolutely.

Instead of forcing all lights to the same brightness, it preserves their relative levels — so brighter lights stay brighter and dimmer ones stay dimmer.

It also avoids common issues with standard groups, like turning on lights unintentionally when changing attributes.

Features

  • Relative Brightness — When you change the group brightness, each on-light’s brightness is adjusted proportionally. Brighter lights stay brighter, dimmer lights stay dimmer.
  • Only-On-Lights — Color, effect, color temperature, and other visual attribute changes are only sent to lights that are currently on. Off lights remain off.
  • Remember on/off state — If enabled, when the group is turned off and on again, only the lights that were previously on will turn on.
  • Remember brightness — If enabled, the group remembers each light’s individual brightness. Ratios are preserved even after hitting brightness limits. Individual brightness can only be changed directly on each light, not from the group.
  • Optimistic State Debounce — Prevents UI “bouncing” (slider jumping) by ignoring member state updates for a short period after a group command is sent.
  • Configurable Debounce Time — Adjust the debounce window (default 2000ms) to match your network’s latency.
  • Native Group Features — Supports the same standard options as the native integration: selecting light entities, “All entities must be on”, and “Hide members”.
  • Config Flow UI — Create and configure groups entirely through the Home Assistant UI (Settings → Helpers).
  • Multi-language — Localized in English, Spanish, German, French, Italian, and Portuguese.
2 Likes

Haha, I’m not browsing the forums often but I was looking through the “Share your projects” and this title got me thinking “this reminds of something I built myself…” :laughing:

As the author of the original relative brightness group I just want to say:

  • first off, sorry for the absence on that project, I’ll blame it on a lack of notifications and that I moved on to other things :framed_picture:
  • secondly, thanks for crediting the original work and you seem to have improved a lot on it! :clap:

It still boggles my mind though that this is still not something built-in to Home Assistant… :roll_eyes: Especially now that you can see individual lights inside a group details view now… Anyway, thanks for carrying on the torch! :fire:

1 Like

Did you try to get it in?

Touché. And now the more I think about it would probably be quite a big change to already existing behaviors, so maybe in the end this works best as a custom integration after all.