adds code


After I bought some RGB bulbs the first thing I wanted to do was set something up that would take all the bulbs and do weird color things with them — wouldn't it be cool to have something like that running for a party? A few months later I finally got it figured out and working, and the video above shows what it looks like when running. Everything runs locally: ESPHome firmware on an ESP32 drives the bulbs, Home Assistant exposes them as light entities, and Node-RED handles the color logic.

Quick answer: Flash the bulb controller with ESPHome, let Home Assistant pick up the light entities, and build your color loops or scenes in Node-RED with service calls to those entities. The single biggest improvement is using transition times instead of hard switches — the colors blend instead of snapping.

How the ESPHome → Home Assistant → Node-RED chain works

In this setup each bulb or LED controller runs ESPHome firmware. A minimal ESPHome config defines a light platform — RGB, monochromatic, or addressable, depending on the hardware — and once the ESP32 joins your network, Home Assistant discovers it automatically and lists it as a regular light entity. Node-RED never talks to the hardware directly: it sends service calls to Home Assistant, which forwards them to the device.

That layering sounds like overhead, but it buys you two things. First, the color logic in Node-RED survives hardware changes — swap a bulb or reflash a controller and the flow keeps working as long as the entity name stays the same. Second, you can mix devices freely: Tuya bulbs, ESPHome nodes, and Zigbee lights all look the same to the flow once they exist in Home Assistant.

Why transitions beat hard switches for color loops

The practical tip that makes the biggest difference: put a transition time in every light.turn_on call instead of switching colors hard. In the Node-RED call-service node the payload looks like {"brightness": 255, "red": 255, "green": 0, "blue": 0, "transition": 2}. With a 1–2 second transition each step of the loop blends into the next, and the whole room reads as one smooth animated gradient. Without it, every message snaps the color instantly and the effect strobes.

The same trick works for scenes. Instead of jumping a room from “movie dim” to “party bright”, a 2–3 second transition makes the change feel deliberate. If a step still looks choppy, slow the inject interval down before touching anything else — Node-RED firing faster than the bulb can blend is the usual culprit.

DIY addressable strips or ready-made RGB bulbs?

There are two paths to this kind of effect. The DIY route — an ESP32 plus addressable LED strips — gives you per-pixel control and is what the flow in the video was built around. The other path is off-the-shelf RGB and tunable-white bulbs, which get you the same color-loop tricks with zero soldering. Before buying either, it pays to compare RGB smart bulbs on measured brightness and color specs rather than trusting box claims: lumens tell you whether a bulb is actually bright enough for the room, color rendering decides how good whites and colors look, and the radio — Zigbee, Wi-Fi, or Matter — decides what your setup can even join.

If you buy through links on the sites we recommend, we may earn a small commission.

Where to get the flow and what else it can do

The GitHub page has the instructions and the JSON flow you can import straight into your Node-RED installation: https://github.com/nightshade00013/RGB_Party_Bulbs. The same account has a second Node-RED flow that shows the current basic weather on two bulbs, which is great in the mornings if you don't have a clear outward-facing window.

If you're planning the wider setup, the local smart home build guide covers how the pieces fit together, and the Zigbee getting-started guide is worth reading before you commit to a radio for new bulbs.

Previous Post Next Post