Log Entry // July 13, 2026
homeassistantwleddiy

Custom Indoor Christmas Tree Lighting with ESP8266 and WLED

Driving custom addressable LED displays for an indoor Christmas tree using custom ESP8266 boards with WLED segmentation.

Custom Indoor Christmas Tree Lighting with ESP8266 and WLED

While my exterior rooflines run on robust QuinLED Dig-Quads, my indoor Christmas tree required a more compact, DIY footprint.

Instead of relying on expensive, cloud-locked commercial light strings (like Twinkly), I built my own addressable LED controller to fully integrate my tree into Home Assistant via WLED.


Parts List & Tools

To build this, you need a few basic components:

Part Description Purchase Link
ESP8266 NodeMCU Compact Wi-Fi microcontroller board Amazon
Buck Converter Step-down transformer (12V to 5V) Amazon
WS2812B Fairy Lights Lightweight addressable LED copper wire strings Amazon
5V 10A Power Supply Reliable power brick for holiday strings Amazon
3D-Printed Enclosure Custom-designed protective case Printables


The Hardware: Custom ESP8266 Controller

I built a custom controller using a raw ESP8266 microcontroller. The hardware, including a small step-down buck converter and wiring harnesses, is housed in a custom 3D-printed enclosure. This keeps the exposed pins and wiring safe and tidy under the tree skirt.

Wiring the Tree

I wrapped the tree heavily in 5V WS2812B fairy-light style addressable LEDs. These strings are much lighter and easier to wrap tightly around branches than standard IP65 silicon-coated strips used outdoors.


WLED Segmentation

The true magic of WLED comes from segmentation. The tree is logically divided in the WLED UI into two primary zones:

  1. The Tree Body: This segment runs traditional twinkling, “Fairy”, or slow-fade color palettes.
  2. The Star: A dedicated segment mapped exclusively to the LEDs at the very top of the tree. This allows me to cast a solid, bright golden-yellow color on the star independently of the chaotic animations running below it.

Home Assistant Integration

By pulling the ESP8266 into Home Assistant via the native WLED integration, the tree is now fully context-aware. If we start watching a movie on the living room TV (detected via Apple TV state), Home Assistant automatically dims the tree body to 10% brightness to reduce glare on the screen, while keeping the Star glowing.

Conclusion

By prioritizing a local-first approach with this hardware, you ensure maximum reliability and data privacy for your homelab. Check out the GitHub repository for the full configuration files!