I Replaced My Cloud LED Strips With WLED and Home Assistant Home Automation

I Replaced My Cloud LED Strips With WLED and Home Assistant

by Joule P. Kraft · June 19, 2026

As an Amazon Associate I earn from qualifying purchases. No affiliate relationship influences my recommendations.

Last spring one of my LED strips behind the TV stopped responding. Not because the hardware failed. The vendor pushed an app update, the update logged me out, the login flow looped, and a perfectly good strip of lights sat dark until I could be bothered to fight my way back into an account I never wanted in the first place. That was the moment I decided every addressable LED strip in the house was getting rebuilt on WLED.

A year later, every strip in the house runs WLED on a cheap ESP32, every one of them shows up in Home Assistant automatically, and not a single one asks me to log in. This is the build log for getting there: what to buy, the power math nobody explains until you have already bought the wrong supply, the level shifter that fixes the flicker, and how it all lands in Home Assistant as a normal light entity.

Why WLED Instead of an Off-the-Shelf Strip

The cloud LED strips are genuinely easy to buy. You peel, you stick, you scan a QR code, you have color-changing lights in ten minutes. I am not going to pretend that is hard. What I am going to push back on is what you give up for that convenience.

You give up a local network path. Most of these strips route their commands through a vendor server, so the app talks to the cloud and the cloud talks to your lights sitting six feet away. You give up reliability when that server has a bad day. You give up your account staying logged in across app updates. And increasingly, you give up screen space to ads and “discover” tabs in an app whose only job is to turn lights on.

WLED is free, open source firmware that runs on an ESP32 or ESP8266 microcontroller and drives addressable LED strips directly. It has a clean web interface, more effects than you will ever use, a real local API, and first-class Home Assistant support. Once it is flashed, the lights live entirely on your network. No account, no vendor, no cloud round trip. That is the trade I wanted: a little more assembly up front in exchange for lights that just keep working.

What You Actually Need

The parts list is short and cheap. For a single strip you need a controller, the strip itself, a power supply sized to the strip, and a level shifter for a clean data signal.

  • An ESP32 DevKit board (about $8 for a 2-pack). Any ESP32-WROOM board works. I prefer ESP32 over ESP8266 here because it has more memory headroom for the longer strips and the newer effects, and the WiFi is more stable.
  • An addressable LED strip. This is the one real decision, and I cover it in the next section.
  • A 5V power supply sized to the strip. Undersizing this is the single most common mistake, so do the math below before you buy.
  • A 74AHCT125 level shifter (a couple dollars). This buffers the ESP32’s 3.3V data signal up to the 5V the strip expects. Skipping it is why people get a flickering first LED or random color glitches.

That is it for one strip. Maybe $25 to $35 all in, less than a single name-brand cloud strip of the same length, and you can drive several meters off one controller.

WS2812B or WS2815: Pick Your Voltage

The strip choice comes down to two families, and the difference matters more than the marketing does.

WS2812B is the classic. It runs at 5V, every LED is individually addressable, and it is the cheapest option on the shelf. The catch is voltage drop. Because it is 5V, a long run loses brightness toward the far end as the voltage sags along the copper, and the last meter looks dimmer and pinker than the first. For runs up to about 3 meters it is perfect and I reach for it every time.

WS2815 runs at 12V. Higher voltage means less current for the same power, which means far less voltage drop over distance, so a 5-meter run stays even end to end. It also has a backup data line, so if one LED dies the rest of the strip keeps receiving data instead of going dark from that point on. It costs a little more and you need a 12V supply instead of 5V, but for anything long or hard to reach later, it is the one I install.

My rule of thumb: short and accessible, WS2812B. Long, or behind drywall, or anywhere I do not want to revisit, WS2815.

The Power Math Everybody Skips

Here is the part that bites people. Each addressable LED draws roughly 60mA at full white, all three color channels maxed. That number is the worst case, but it is the number you size your supply against, because the day you set every LED to bright white is the day an undersized supply browns out, resets the ESP32, or worse, gets hot.

Do the arithmetic before you buy. A 5-meter 5V strip at 30 LEDs per meter is 150 LEDs. At 60mA each that is 9 amps at full white. So a 5V 10A supply is the floor for that strip, with a little headroom. A denser 60 LEDs-per-meter strip doubles that to 300 LEDs and 18 amps, and now you are into beefy supply territory or you cap the brightness in software.

Two things make this manageable:

  1. Cap max brightness or max current in WLED. WLED has an “Automatic Brightness Limiter” in the LED settings where you enter your supply’s amperage and the LED count, and it will hold total draw under that limit no matter what effect is running. I set this on every install. It is the safety net that lets you run a slightly smaller supply with confidence.
  2. Inject power for long runs. On a long 5V strip, run a second pair of power wires from the supply to the far end (and the middle for very long runs) so the whole strip gets full voltage instead of relying on the thin strip copper to carry 9 amps end to end. This is “power injection,” and it is the fix for the dim-far-end problem on 5V strips. WS2815 mostly sidesteps it by being 12V.

Get the supply right and the rest of the build is easy. Get it wrong and you will chase mysterious resets for a week.

Flashing WLED

This used to be the intimidating part. It is not anymore. WLED has a browser-based installer that flashes the firmware over USB with no toolchain to install.

  1. Plug the ESP32 into your computer with a data USB cable (not a charge-only cable, which is a classic time-waster).
  2. Open the official WLED web installer in Chrome or Edge (the install page is linked from the WLED docs at kno.wled.ge). The installer talks to the board over the browser’s serial support.
  3. Pick the latest stable WLED build, click install, and select the serial port for your ESP32.
  4. When it finishes, the ESP32 broadcasts a WLED-AP WiFi hotspot. Connect your phone to it, open the captive portal, and point WLED at your home WiFi.

The whole flash takes about two minutes. From here on the ESP32 is on your network and you never need the USB cable again. Everything else happens in the web UI at the board’s IP address.

A note on credentials: you enter your WiFi password once in the WLED captive portal, and it stays on the device. There is no .env file to manage and nothing to commit anywhere, which is one less secret to leak.

Wiring the Strip

Three connections, and one of them is the level shifter.

  1. Power. The 5V (or 12V) supply’s positive and negative go to the strip’s + and GND pads, and the supply ground also ties to the ESP32 ground. Common ground between the controller and the strip is mandatory, or the data signal has no reference and the strip does nothing.
  2. Data through the level shifter. The ESP32’s data GPIO (I use GPIO16) goes into the 74AHCT125’s input, and the shifter’s 5V-level output goes to the strip’s DIN pad. Power the shifter from the 5V rail. This is what cleans up the 3.3V-to-5V mismatch.
  3. A small series resistor (around 330 to 470 ohms) on the data line between the shifter and the strip’s DIN tames ringing on the signal. Optional, but cheap insurance on long runs.

Mount the ESP32 in a small project box near the strip’s start, keep the data wire between the shifter and the first LED short, and you are done with hardware.

Adding It to Home Assistant

This is the payoff, and it is almost anticlimactic. Home Assistant ships a native WLED integration, and WLED announces itself on the network, so discovery is automatic.

  1. In Home Assistant, go to Settings, Devices and Services. A discovered WLED device usually appears on its own within a minute of the ESP32 joining WiFi.
  2. Click configure, confirm, and it adds a light entity plus extra entities for effects, presets, and the intensity and speed of the current effect.
  3. That light entity behaves like any other Home Assistant light: on, off, brightness, color, and effect selection, all over your LAN.

No integration YAML to hand-write, no API key, no cloud account linking step. The WLED integration just needs the device on the network, which it already is.

Now the lights are a normal entity, you can automate them like anything else. Here is the automation that runs my under-cabinet strip as warm task lighting in the evening and a dim amber path light overnight:

automation:
  - alias: "Kitchen strip: warm in the evening"
    trigger:
      - platform: sun
        event: sunset
        offset: "-00:30:00"
    action:
      - service: light.turn_on
        target:
          entity_id: light.kitchen_strip
        data:
          brightness_pct: 70
          rgb_color: [255, 180, 107]

  - alias: "Kitchen strip: dim amber overnight"
    trigger:
      - platform: time
        at: "23:00:00"
    action:
      - service: light.turn_on
        target:
          entity_id: light.kitchen_strip
        data:
          brightness_pct: 12
          rgb_color: [255, 120, 40]

Because the WLED device exposes its presets to Home Assistant too, I also keep a couple of WLED effect presets (a slow sunrise fade, a movie-night bias light) and trigger them by name from HA scenes. The effects run on the ESP32 itself, so even a fancy animated preset costs Home Assistant nothing to play.

What I’d Skip

A few honest notes after a year of this.

  • You do not need a fancy controller board for most installs. The community boards are lovely and worth it for permanent whole-house builds, but a bare ESP32, a level shifter, and a decent supply cover the vast majority of strips. Do not let the deluxe builds talk you out of starting.
  • Do not cheap out on the power supply. This is the one place to buy quality. A no-name supply that runs hot is the part that turns a fun project into a fire-safety conversation. Size it correctly and buy a reputable one.
  • Skip the 5V strip for long outdoor runs. I tried to save a few dollars with WS2812B on a 6-meter soffit run and spent an afternoon fighting voltage drop before swapping to WS2815. Learn from my wasted Saturday.

The Bottom Line

If you want lights in ten minutes and you genuinely do not mind an app and an account, the cloud strips are fine and I am not going to lecture you out of one. They work right up until the day they do not, and for some people that day never comes.

But if you run Home Assistant and you want lighting that lives on your own network, an afternoon with WLED pays off for years. A few dollars of ESP32, the right strip for the run, a supply sized to the LEDs, and a level shifter gets you color-accurate, fully local, deeply automatable lighting that shows up in Home Assistant on its own and never once asks you to sign in. Do the power math, cap the current in software, and then mostly forget the strips exist except to enjoy them. That is exactly how a smart home should feel.

Frequently Asked Questions

Does WLED work with Home Assistant without the cloud?+
Yes, and that is the whole point. WLED runs entirely on the ESP32 on your own network, and Home Assistant's built-in WLED integration discovers it locally over your LAN with no account, no app login, and no internet. If your internet drops, the lights and their automations keep working.
Do I need a level shifter for WLED on an ESP32?+
Usually yes for a clean signal. The ESP32 outputs 3.3V data and WS2812B strips expect 5V logic, so a 74AHCT125 level shifter on the data line prevents the flicker and first-LED glitches that plague long runs. Short strips sometimes work without one, but I would not build a permanent install on a coin flip.
WS2812B or WS2815: which should I use with WLED?+
WS2812B is 5V, cheapest, and fine for runs up to a few meters. WS2815 is 12V with a backup data line, so it loses less voltage over distance and keeps running if one LED dies. For anything longer than about 5 meters or hard to reach, I use WS2815.
How much power does a WLED LED strip actually need?+
Budget roughly 60mA per LED at full white. A 5-meter 5V strip at 30 LEDs/meter is 150 LEDs, so up to about 9 amps, which is why a 5V 10A supply is the floor for that length. You rarely hit full white, but you size the supply for the worst case, not the average.
Can I still use Alexa or Google with WLED after going local?+
Yes. WLED exposes itself to Alexa and Google directly, and once it is in Home Assistant you can expose it through HA's voice integrations too. You get local control as the foundation and voice on top, instead of voice being the only way in.