Signal Light - for lights that are for lighting, accents, *and* signals

This is an integration I put together to manage the full-color Hue bulbs[1] I have at various places in my home, because I have three distinct purposes for them, all of which clash.

  1. In the short term, to signal various conditions (person at the door, Alexa has a notification for me, the house is on fire) which need to be addressed.
  2. In the medium term, to adopt various accents depending on the situation. At the short end, add a dim and cozy look to movie-watching sessions. At the longer end, run festive lighting routines for holidays. That sort of thing.
  3. And in the long term, just be a light doing what lights do and blending into the rest of the lighting system.

The problem, of course, is the vexing question when all of these things are going on at once of, well, who owns the light right now? Which is to say, which automations are in charge, and how do they know if there’s someone else who will want it back after they’ve done their thing, and so forth.

Managing all this manually with a cluster of scripts, automations, and helpers is what one might refer to, in technical terms, as a clusterfrack.

And so unto this, my Signal Light integration, which is basically a centralized coordinator for such lights. It sets up a three-layer model, with a base light entity that you use to set what the light should be doing by default, with an accent layer on top of that, and a signal layer on top of that.

(The accent layer uses a priority stack and the signal layer a priority queue such that you can specify which accents or signals should take priority over others. For the former, for example, movie-watching mode should obviously be prioritized over decoration routines; while for the latter someone’s-at-the-door needs more immediate attention than Alexa-has-a-notification, and the-house-is-on-fire has priority over everything.

There is also a configurable threshold indicating how high the priority of a signal has to be before it turns the light on if it's not already on. Because you don't want a random parcel-delivery-today notification to wake you up at 3 am, but you do want your alarm clock signal to wake you and the emergency lighting to come on at any time of the day or night, and so forth.)

And the coordinator takes care of all the ensuring that these things all happen in the right order, high priority over low, signals over accents over base settings, and that when one terminates, control of the light is handed back to the appropriate signal/accent routine/base settings depending on what the situation is now[2].

Anyway, if this sounds useful to you in your Home Assistant lighting adventures, grab it and take a look. It's still very early in development, but I'm very happy to take bug reports, feature requests, and pulls. It and its documentation can be found here:

arkane-systems/ha-signal-light: A Home Assistant extension to coordinate signal/accent lights.


  1. Although, I should emphasize, it works fine with any kind of light; there are no Hue-specific dependencies. ↩︎

  2. Which will usually, but not always, be the previous thing. If the movie ended while you were answering the door, Signal Light will understand that movie-watching mode has ended and not try to reinstate it. For example. I could make up more complex examples all day, but you get the idea. ↩︎