It’s easy enough to have a light display a single color notification on a smart bulb (turn red when I am in a meeting), but what if another notification comes in at the same time (pulse blue if it starts to rain and windows are open). How do you share one bulb with multiple notifications?
I have been developing an integration to deal with just this situation: one RGB bulb that can display multiple notifications, while still acting like a normal light.
Color Notify is a new HACS integration that allows you to share a light bulb across multiple notifications. With Color Notify, you can create a “Notification Light” by wrapping an existing light entity. You can then define priority-sorted notifications, including color, animations, and duration, and subscribe specific lights to any subset of these notifications.
The wrapper entity functions like a regular light entity, allowing you to turn it on, off, toggle it, and set colors. Additionally, notifications can be defined as “switch” entities, with the light wrapper managing multiple simultaneous notifications while still allowing the light to be used in its normal function.
Here’s how to configure it:
- Create a new wrapper light
Once wrapped, you should no longer use the ‘real’ light entity and should only interact with the wrapper light.
You can then create ‘Notification Pools.’ In these pools you can define notifications, which are Switch entities that can be toggled on and off. They can be defined as a solid color or an animated pattern, and can auto-clear after a set duration or can stay active until cleared.
Once you have a light and a notification pool, you can start subscribing your lights to notifications. The light can subscribe to individual notifications, or entire pools at once.
For example, this light is subscribed to 3 entire pools, plus a few notifications from the General Notifications pool:
and here’s the entities in my General Notifications pool:
That’s pretty much it. Wrap a light, define notifications, subscribe the lights.
This is an update to my previous AppDaemon script, rewritten as a Custom Integration. It was way more work than expected converting it to an Integration, so I hope that others find it useful