I've always had a complicated relationship with the more premium side of smart lighting, case in point, Philips Hue. Yes, the hardware is polished, the app is slick, and the ecosystem works well — until you start thinking about what you're actually paying for. A single Hue light strip starter kit can easily run north of $80, and that's before including the fact that you'd probably need a much longer strip for your purpose, and the proprietary hub you need just to make it talk to anything.

But when you can replace your entire smart home hub for $50, why can't you replicate what a Philips Hue strip can do with some off-the-shelf RGB strips? The answer is you can, and do much more than Philips can offer.

SwitchBot Turning on Switch
I bought a robotic finger and now my dumb light switch is smart

This brilliant smart home device makes any switch smart.

Home Assistant unlocks lighting you won't find in commercial apps

Why local automation opens up effects and controls beyond Philips Hue

Front view of ESP32 controlling RGB strips.
Photo by Yadullah Abidi | No Attribution Required.

If you've spent any time in the DIY smart lighting space, you've likely heard of WLED, an open-source firmware that can turn any ESP32 into a feature-packed LED controller with 200+ effects and a polished browser UI. It's excellent software, but it's also completely irrelevant for what I had on hand.

You see, WLED only works with addressable LED strips like the WS2812B, SK6812, and similar varieties that have a single data line and a tiny IC chip embedded at each LED cluster. I had a cheap, non-addressable, 12V LED strip that worked with a Wi-Fi controller likely based on the ESP8266. The best course of action was to replace the provided controller entirely with an ESP32, some MOSFETs to drive the red, green, and blue channels, while retaining the original 12V power supply.

And then there's the level of control you get. Home Assistant exposes hundreds of automation triggers, if not more, that allow you to control your lights in all sorts of ways. You can have your lights change color based on weather, sunlight, presence, inputs from other sensors, and many more control options.

Home Assistant logo
OS
Windows, macOS, Linux, Raspberry Pi
Developer
Open Home Foundation
Price model
Free, Open-source

A self-hosted, open-source smart home platform that lets you control, automate, and unify all your devices locally without relying on the cloud.

The hardware is surprisingly affordable

An ESP32, a cheap LED strip, and a power supply are all you really need

The whole build revolves around an ESP32 DevKit V1 board, and three IRLZ44N N-channel MOSFETs — one per channel — powered by the original 12V 1.5A supply. Since cheaper LED strips often run on 12V channels, MOSFETs are important to allow the ESP32's 3.3V GPIO pins to control their respective channels.

Wiring involved connecting the IRLZ44N drain pins to the LED strip's color channels, source pins to a common ground rail (which the ESP32 connects to as well), and the gate pins to three PWM pins on the ESP32.

Adding gate resistors (100 to 470Ω) between the GPIO pins and the MOSFET gates is the proper way to do this. I didn't have suitable values on hand, so I decided to risk my ESP32. You shouldn't.

I kept the ESP32 separate from the 12V used to run the lights as its onboard AMS1117 voltage regulator would be pushed close to its maximum rating of 12V. USB is safer and simpler in this case, but you can throw in a cheap buck converter to knock that voltage down to 5V and run everything off the same power source.

ESP32 dev board.
Brand
Espressif
Connectivity Features
Wi-Fi, Bluetooth

ESP32 is a low-cost microcontroller with built-in Wi-Fi and Bluetooth, widely used for IoT projects and DIY electronics.

ESPHome does the heavy lifting

A few lines of YAML are enough to turn raw hardware into a polished smart light

Even though I can't use WLED for my LED strip, ESPHome configuration handles RGB lights with ease, and the same logic applies here. I created three outputs in the YAML, one per GPIO pin, and handled the PWM dimming for each channel at 1,000Hz. The rgb light platform ties them together and exposes a single color-capable light entity to Home Assistant.

The configuration even saves the LED strips' last state and returns to it after a power cycle rather than blasting full white at you every time. There's also the color_interlock: true flag to prevent Home Assistant from simultaneously activating the color picker and the color temperature sliders, which otherwise can cause unexpected behavior on an RGB-only strip with no white channel.

Philips Hue can't match this level of control

Custom effects, automations, sensor-driven lighting, and integrations that go far beyond presets

RGB Strip in green color with ESP32.
Photo by Yadullah Abidi | No Attribution Required.

Since the ESP32-based controller now gives you full control over your LED strips and integrates into Home Assistant, the sky is the limit for the automations you can come up with.

You can have color-based notifications for things like doorbell triggers or internet outages. The lights can automatically fade to a slow warm color at sunset, and brightness can even be tied to occupancy sensors in the room if you have one. You can use your phone as a presence sensor in Home Assistant, meaning the lights can turn on and off automatically when you enter or exit the room.

I can even connect it to my Uptime Kuma instance and have the strip flash a specific color when a specific service or Docker container goes down. I can color-code my work status for my office, sync the strip with a temperature sensor to change the color as per the temperature of my office, or even have it flash when Pi-hole blocks spike above a threshold, which can indicate unusual network activity.

All of that with a barely $10 LED strip and a $5 board with full local control, talking intelligently to the rest of my home, with zero cloud dependency, and zero subscriptions. Philips Hue doesn't even come close.

You don't need premium hardware for premium features

A $15 DIY setup delivers capabilities that rival, and sometimes surpass, much pricier systems

Making smart home devices has never been more accessible. I'm yet to move this setup to a permanent perfboard and solder everything in place, but even on a breadboard, I can have the circuit run perfectly fine as long as it's not disturbed, No $80 light strips that don't even cover half my room, no ecosystem locks, and no expensive hubs required to integrate my LED strips with the rest of my smart house.

ESP32 showing internet outage.
I never have to ask “is it me or the internet?” thanks to this $10 build

My ISP can’t gaslight me anymore.

2

With a few minutes of online shopping, a bill of parts barely more than $15, you can have that too. You don't need to be an embedded devices expert to pull any of this off. Just some research about what components you have on hand (or purchasing the right ones) is more than enough to come up with a circuit, and ESPHome covers the software, which will give you a much better experience than a significantly expensive commercial setup.