Integrating LED Stack Lights with Home Assistant: A Practical DIY Tutorial
Ever walked into a garage and felt the buzz of a blinking tower light, only to wish it could tell you when the dryer finished or when the front door opened? That little glow can do a lot more than just look cool. With Home Assistant, you can turn a simple LED stack light into a smart signal hub for any event in your house. I tried it last month, and the result was a garage that talks back to me in colors. Here’s how you can pull the same trick together without a PhD in electronics.
What You Need
Before we dive in, gather the basics. Keeping the list short helps you stay focused and avoid last‑minute trips to the hardware store.
- LED stack light – a 5‑ or 7‑segment tower with built‑in MOSFET drivers is ideal. I use a 12 V, 5‑segment model from a local industrial supplier.
- Power supply – 12 V DC, 2 A is more than enough for most lights. A wall‑wart with a proper plug keeps things tidy.
- ESPHome‑compatible board – the ESP‑01 or ESP‑8266 NodeMCU works great. It will talk to Home Assistant over Wi‑Fi.
- Jumper wires – a few male‑to‑female and male‑to‑male leads for the connections.
- Soldering iron and solder – a quick solder makes the connection reliable.
- Home Assistant instance – running on a Raspberry Pi, a VM, or a spare laptop. I run mine on a Pi 4 with the default Docker add‑on.
- Optional: enclosure – a small project box to keep the ESP and wires safe from dust.
Choosing the Right Stack Light
Not all tower lights are created equal. Some come with built‑in controllers that expect a 0‑10 V analog signal. Others, like the one I use, have separate MOSFET channels that can be switched on or off with a simple 3.3 V logic level. The latter is perfect for ESP‑based projects because you can drive each segment directly from a GPIO pin.
If you already have a light from a factory floor, check the datasheet for “digital input” or “open collector” pins. Those are the ones you’ll want. If you’re buying new, look for “DIY friendly” or “Arduino compatible” in the description.
Wiring the Light to the ESP
Step 1 – Power the Light
Connect the 12 V positive from the power supply to the “V+” terminal on the stack light. Then connect the “GND” terminal to the power supply’s ground. This powers the LEDs but does not yet turn any segment on.
Step 2 – Connect the ESP Ground
Tie the ESP board’s ground pin to the same ground line you just used for the light. A common ground is essential; otherwise the ESP’s signals will float and the light won’t respond.
Step 3 – Hook Up the Control Pins
Each segment on the tower has a control wire (often labeled CH1, CH2, etc.). Connect each of these to a separate GPIO pin on the ESP. I used pins D1 through D5 on a NodeMCU because they are easy to reach. If you have more segments, just pick more free pins.
Step 4 – Add a Pull‑Down Resistor (Optional)
If the light’s control pins are “open collector,” you might want a 10 kΩ pull‑down resistor on each line to keep the segment off when the ESP is not driving it. Most modern lights have built‑in pull‑downs, so you can skip this step unless you see flickering.
Flashing ESPHome
Home Assistant loves ESPHome because it turns a tiny board into a plug‑and‑play device. Here’s a quick rundown:
- Install ESPHome – In Home Assistant, go to “Add‑On Store” and install the ESPHome add‑on.
- Create a new device – Click “New Device,” give it a name like “garage_light,” and select “ESP8266.”
- Edit the YAML – Replace the default config with something like:
esphome:
name: garage_light
platform: ESP8266
board: nodemcuv2
wifi:
ssid: "YOUR_SSID"
password: "YOUR_PASSWORD"
# Enable logging
logger:
# Enable Home Assistant API
api:
password: "YOUR_API_PASSWORD"
ota:
password: "YOUR_OTA_PASSWORD"
output:
- platform: gpio
pin: D1
id: seg1
- platform: gpio
pin: D2
id: seg2
- platform: gpio
pin: D3
id: seg3
- platform: gpio
pin: D4
id: seg4
- platform: gpio
pin: D5
id: seg5
light:
- platform: binary
name: "Garage Stack Light"
output: seg1
id: light_seg1
- platform: binary
name: "Garage Stack Light 2"
output: seg2
id: light_seg2
- platform: binary
name: "Garage Stack Light 3"
output: seg3
id: light_seg3
- platform: binary
name: "Garage Stack Light 4"
output: seg4
id: light_seg4
- platform: binary
name: "Garage Stack Light 5"
output: seg5
id: light_seg5
- Upload the firmware – Connect the ESP to your computer via USB, click “Install” and choose “Plug into this computer.” ESPHome will compile and flash the code.
- Add to Home Assistant – After flashing, Home Assistant will discover the new device automatically. You’ll see five new “binary lights” in the UI, each representing a segment.
Making the Light Do Something Useful
Now that Home Assistant can turn each segment on or off, you can create automations. Here are a few ideas I tried:
Dryer Done Indicator
automation:
- alias: Dryer Finished
trigger:
- platform: state
entity_id: sensor.dryer_status
to: "off"
action:
- service: light.turn_on
target:
entity_id: light.garage_stack_light_1
- delay: "00:00:10"
- service: light.turn_off
target:
entity_id: light.garage_stack_light_1
When the dryer sensor flips to “off,” the top segment flashes green for ten seconds. I love the subtle reminder that my laundry is ready without a beeping alarm.
Front Door Alert
automation:
- alias: Front Door Open
trigger:
- platform: state
entity_id: binary_sensor.front_door
to: "on"
action:
- service: light.turn_on
target:
entity_id: light.garage_stack_light_2
A red segment lights up whenever the front door opens after 10 pm. It’s a quiet way to know if a late visitor shows up.
Night Mode
You can also use the stack light as a low‑key night lamp. Set a schedule that turns on a soft blue segment from 11 pm to 6 am, giving the garage a gentle glow without waking anyone.
automation:
- alias: Night Light On
trigger:
- platform: time
at: "23:00:00"
action:
- service: light.turn_on
target:
entity_id: light.garage_stack_light_3
- alias: Night Light Off
trigger:
- platform: time
at: "06:00:00"
action:
- service: light.turn_off
target:
entity_id: light.garage_stack_light_3
Tips for a Smooth Build
- Label your wires – A piece of masking tape with “CH1” or “CH2” saves a lot of head‑scratching later.
- Secure the ESP – Mount it inside a small project box and drill a hole for the antenna. It keeps dust out and the board from getting knocked around.
- Test each segment – Before wiring everything together, use a simple “GPIO toggle” script in ESPHome to verify each pin lights its segment.
- Mind the voltage – Never feed 12 V into a GPIO pin. The MOSFET drivers on the tower light handle the high voltage; the ESP only sees 3.3 V logic.
Wrapping Up
Turning a plain LED stack light into a smart signal device is surprisingly easy once you have the right board and a bit of patience with solder. The biggest payoff is the visual feedback that blends right into the industrial look of a garage or workshop. No more noisy buzzers or flashing phone screens – just a tower of light that tells you exactly what’s happening at home.
Give it a try, tweak the colors, add more sensors, and you’ll find the tower light becomes a silent partner in your daily routine. The Stack Light Chronicles community loves seeing creative setups, so keep experimenting and let the lights guide you.
- → How to Choose and Set Up a Beginner‑Ready Smart Home Hub Without Breaking the Bank @smarthomestarter
- → Install a DIY Motion-Activated LED Light Strip in Any Room @brightmovesdiy
- → Create a Wi-Fi Controlled Motion Sensor Light with ESP8266 – A Beginner's Guide @brightmovesdiy
- → Converting a Standard Light Switch into a Smart Switch with Basic Tools @tinkertool
- → How to Add a Smart Thermostat to an Older Home Without Rewiring @homeinnovate