WLED RGB-CCT LED strips don't work correctly in Home Assistant

Howdy! I’m having UI issues with Home Assistant and my WLED integration with RGB-CCT strips. This has been ongoing for a year. I tried to look into it, but I don’t know how to even begin to test or fix this stuff.

I’m on WLED 0.15.3 and Home Assistant 2025.12.3. Both are the latest as of this post.

I tried both Analog (unaddressable) and Digital (addressable) strips with 4 different WLED controllers, and all of them exhibited the same issue. It doesn’t seem to matter how many segments I have either. All exhibit the same issue.

Default config

WLED RGB-CCT config

In WLED, this is how I’ve configured my RGB-CCT strip:

This config is a bit different for non-addressable LEDs, but WLED gives you the same controls regardless.

And this is the white balance setting:

These settings result in a weird 3-slider UI:

  1. The color picker controls the RGB lights along with their brightness via the first slider.
  2. The second and third sliders control the brightness of both the white LEDs and the second is the color temperature.

This is pretty weird because the white color temperature and color LEDs are controlled independently in WLED, so you’d assume there’d be 2 separate light controls in Home Assistant or some way to combine them, but that’s not the case.

Home Assistant Light Settings

Home Assistant shows 3 screens like any RGBW light bulb:

  1. Brightness
  2. Colors (plus 2 other brightness sliders)
  3. Color Temperature

Everything works fine except the second screen (color picker). This adds 2 sliders below the color picker, one to set the color brightness and one to set the white brightness. These controls “work”, but after clicking anything, it immediately resets the UI back to:

  1. Middle-Orange (as pictured).
  2. 100% color brightness.
  3. 0% white brightness.

The Jank UI

You can still set these settings even if the UI keeps resetting, but sometimes, you have to click the color multiple times in a row for it to stick.

Sadly, setting the white balance in this mode will always turn the color to 100% brightness. Also, setting the color brightness to 0%, always sets the white brightness to 0% :frowning:.

Also, if you change the white balance, it won’t turn off the RGB LEDs. That’s the biggest issue. With a regular light bulb, if you only set the color temperature, the RGB colors go away, but with this WLED integration, they also stay on.

Using the light.turn_on Action

RGBW

I was able to turn off color and keep white at the current color temperature by using light.turn_on and RGBW:

WLED:

While this “works”, it’s also cumbersome and requires you set the color temperature in a separate action. This also means your LED strip can’t be part of a regular light group unless you rewrite your existing automations to use RGBW rather than simply setting the color temperature and brightness (or RGB value and brightness).

RGBWW

If I use RGBWW:

Then I run into another issue in WLED:

It still doesn’t set the color temperature, and the white brightness at 255 and 255 isn’t at max, it’s at ~85%. And the colors are now also at 100% brightness.

Modified WLED config

tl;dr: This also doesn’t work, but it should.

There is a setting in WLED to configure it such that you have 2 sliders. That looks like this:

From these settings:

The Big Issue

In this mode, you can set the white balance to separately control the white LEDs, but both colors and white are now mixed based on the color wheel. If you wanna completely turn off the RGB LED, you simply need to put the dot exactly in the center of the color wheel (100% white). You can also select “white” in the color palette for the same effect.

But now your RGB values are mixed with your white values when changing colors. It’s interesting, but now we have another issue:

Home Assistant no longer displays the Color Temperature screen. You can change RGB values, but color temperature is outta the question. This is also bad because Home Assistant is now going to approximate the color temperature using color values.

“Calculate CCT from RGB” not a fix

I verified, that even when using the “Calculate CCT from RGB” setting, the RGB LED will always be active unless your RGB value is 100% white. And in this mode, Home Assistant cannot control the color temperature separately like WLED, so it’s basically unusable.

Conclusion

At this point, I don’t have a solution:

  1. The color-picker UI is totally bugged.
  2. I don’t have color temperature controls when using “auto-calculate white”.
  3. I have to use RGBW to set the colors to 0 and white to 255 before configuring light.turn_on in my Automations.

There’s gotta be a solution. I can’t imagine I’m the only person using RGB-CCT lights in Home Assistant in the whole world. I’m surprised these bugs have been here for at least a year now :frowning:.

The worst part is, I shelved my LED strip project for a year because of this. I finally installed them, and now I realize the controls are still broken :cry:.

2 Likes

After writing that post, I realized there was possibly a way around this issue using RGBW. It doesn’t fix the UI, but it does fix my automations (the most important thing right now as the light strips are already installed).

Hacky Workaround

Here’s my hacky workaround for white that you can use today:

This is really funky, but I split the lights into 2 groups: ones controlled by WLED and ones not controlled by it:

alias: Split `lights` variable based on if controlled by WLED
variables:
  regular_lights: |
    {{ expand(lights)
       | rejectattr('name', 'search', 'Light Strip')
       | map(attribute='entity_id')
       | list }}
  wled_lights: |
    {{ expand(lights)
       | selectattr('name', 'search', 'Light Strip')
       | map(attribute='entity_id')
       | list }}

I then do parallel actions for turning on the lights. For the strips, there are 2 steps:

  1. Turn them on as usually with Kelvin and Brightness (that controls the global brightness, not the segment brightness). I do this with no transition set so it happens instantly.
  2. Then I call light.turn_on a second time which overrides the first one and this time, I use RGBW to set all RGB colors to 0 and the White brightness to 255 ([0,0,0,255]). While that looks like I’m setting it to 100%, remember, the global brightness control from the previous step will handle the actual brightness setting. This brightness value is more like a luminance-hue-saturation control, and you want that set to what is essentially 100% for white.
alias: Configure WLED light strip settings
sequence:
  - alias: Set light brightness and color temperature
    metadata: {}
    data:
      brightness_pct: 100
      kelvin: 3500
    target:
      entity_id: "{{ wled_lights }}"
    action: light.turn_on
  - alias: Set white LED brightness and turn off RGB LEDs in light strips
    metadata: {}
    data:
      rgbw_color:
        - 0
        - 0
        - 0
        - 255
      transition: 1.5
    target:
      entity_id: "{{ wled_lights }}"
    action: light.turn_on
    enabled: true

I had to update all my other scripts to target my new script. It’s possible I missed some places :man_shrugging:. This is super hacky as it is.

To be clear, this only works for automations or dashboard buttons that call this script. This doesn’t work for the UI. That’s still totally busted.

If I have any scenes that need light strips set a certain way, I can simply modify those in WLED and store the scene with Home Assistant.

I just purchased a BTF-LIGHTING FCOB COB SPI RGBCCT and I have the exact same problem. It’s quite annoying. How do you think this can be solved?

Did my hacky workaround solve it for you?

I get that the UI controls are botched, but automations should work with the solution I came up with about using RGBW and a separate “set color” light.turn_on action. Using both messes with some things because of transitions, but it should work.

Thank you for taking the time to document the issue.
I’ve run into the same, and found some posts of people encountering it too, since years.

1 Like