DIY Smart Accent Lighting

Not every smart home project needs to solve a problem. Sometimes, you just want to make something that looks awesome.

That’s what this project was about - adding a bit of Fast & Furious flair under the couch using addressable LEDs and a bit of open-source magic from WLED. It’s cheap, wireless, and a great intro to the world of DIY smart lighting.

Why WLED?

If you’ve been around the maker or Home Assistant space, you’ve probably come across WLED before.

It’s one of those rare open-source projects that’s simple to set up but ridiculously powerful once you start exploring. You can control everything from basic colour changes to complex animations, sync it with your smart home, and automate it to react to music or even what’s playing on your TV.

For me, this project was partly an excuse to learn more about WLED before using it in some bigger upcoming builds.

Hardware

I went with WS2805 RGB-CCT addressable LED tape, which gives you full RGB colour plus proper warm and cool white LEDs for better everyday lighting. It costs around $10 per metre and sticks straight to the underside of the couch.

Power comes from a Ugreen 25,000 mAh power bank, mounted with a custom 3D-printed quick-release bracket I designed in Fusion 360 (the files are up on Printables if you want to try it yourself). That means no cables across the floor — just pop out the battery to charge it when it runs low.

For control, I used a small WLED-compatible controller from IOTorero (via Athom). It runs straight off USB-PD, costs about $25, and does everything I need — Wi-Fi control, Home Assistant integration, and a built-in mic for sound-reactive effects.

All up, the hardware comes in around $55 — which is roughly half what you’d spend on a Govee or Philips Hue equivalent.

Setup and Automations

I flashed the controller with the latest WLED firmware and connected it to Wi-Fi. Once that’s done, setup takes just a few minutes — choose your LED type, set the voltage, and you’re good to go.

The real fun starts when you connect it to Home Assistant.


Mine automatically reacts to what’s playing through Plex — Star Wars triggers lightsaber-style effects, Jurassic Park fades between red and yellow, and Frozen has a blue/light blue aurora effect.

It’s one of those automations that doesn’t need to exist, but makes the room feel alive. When you pause, the lights fade back up so you can grab snacks. When the movie ends, they slowly fade out again.

If you’re interested, here is my YAML for the movie title triggered presets. The ‘fade out after a little while’ is handled by a separate automation that also handles the room lights.

alias: Couch Lighting Effects
description: "Recals WLED presets based on keywords in movie titles"
triggers:
  - trigger: state
    entity_id:
      - media_player.living_room_tv_android
    to: playing
    for:
      hours: 0
      minutes: 0
      seconds: 2
conditions: []
actions:
  - alias: Choose Couch Preset
    choose:
      - conditions:
          - condition: template
            value_template: |2-
                    {{ 
                      states.media_player.plex_living_room_tv.attributes.media_title is string 
                      and 'frozen' in states.media_player.plex_living_room_tv.attributes.media_title | lower
                      and states.media_player.plex_living_room_tv.state == 'playing'
                    }}
            alias: If title contains 'Frozen'
        sequence:
          - device_id: 4f27c6d9dc22cafcc06d54375b382b2c
            domain: select
            entity_id: 45afabd616931b50f7aa499937a1ec33
            type: select_option
            option: Frozen
      - conditions:
          - alias: If title contains 'Shrek'
            condition: template
            value_template: |2-
                    {{ 
                      states.media_player.plex_living_room_tv.attributes.media_title is string 
                      and 'Shrek' in states.media_player.plex_living_room_tv.attributes.media_title | lower
                      and states.media_player.plex_living_room_tv.state == 'playing'
                    }}
        sequence:
          - device_id: 4f27c6d9dc22cafcc06d54375b382b2c
            domain: select
            entity_id: 45afabd616931b50f7aa499937a1ec33
            type: select_option
            option: Shrek
      - conditions:
          - alias: If title contains 'Shrek'
            condition: template
            value_template: |2-
                    {{ 
                      states.media_player.plex_living_room_tv.attributes.media_title is string 
                      and 'Bluey' in states.media_player.plex_living_room_tv.attributes.media_title | lower
                      and states.media_player.plex_living_room_tv.state == 'playing'
                    }}
        sequence:
          - device_id: 4f27c6d9dc22cafcc06d54375b382b2c
            domain: select
            entity_id: 45afabd616931b50f7aa499937a1ec33
            type: select_option
            option: Frozen
        alias: If title contains 'Bluey'
    default:
      - device_id: 4f27c6d9dc22cafcc06d54375b382b2c
        domain: select
        entity_id: 45afabd616931b50f7aa499937a1ec33
        type: select_option
        option: Warm
        alias: Otherwise - Warm White
mode: single

The only hiccup I ran into was power draw. Even when “off,” the LED strip was still sipping power from the battery. The fix was adding a small MOSFET relay board so WLED could fully cut power when idle. It’s a tiny change that has greatly increased battery life (multiple weeks of regular use now)

I’ve recommended a different controller below with a built in relay so you don’t encounter the same issue!

Links to Products & Software

Here’s everything I used:

Final Thoughts

This is one of those “gateway” projects that’s perfect if you’re just starting with smart lighting or WLED. It looks great, teaches you the basics of addressable LEDs, and can easily grow into something bigger — under-bed lighting, display shelves, or even a DIY Ambilight setup.

I’ll be using WLED for a lot of projects in 2026 - so keep an eye out for those!

Next
Next

DIY Smart Home Dashboard