Skip to content

Issues between white (msl100) and colored bulbs (msl120) #592

Description

@Coolmanchambers

Describe the bug
After updating Home Assistant to 2026.3.1+, my Meross white-only bulbs (msl100d) became unavailable in Home Assistant.

I then applied the fix referenced in PR #591 to address the white bulb issue, and that restored the white-only bulbs. However, after making that change, my color bulbs (msl120d and msl120da) became unavailable instead.

From testing, the problem appears to be that the white-bulb fix was applied too broadly. White-only dimmable bulbs need to report ColorMode.BRIGHTNESS, but color-capable bulbs should not advertise BRIGHTNESS together with RGB and/or COLOR_TEMP.

In my setup:

I was able to resolve the issue by changing the light entity logic so that:

  • white-only dimmable bulbs use ColorMode.BRIGHTNESS
  • RGB / color temperature bulbs only advertise RGB and/or COLOR_TEMP
  • BRIGHTNESS is only used when it is the sole supported mode

This restored proper behavior for both device types in my environment.


Your environment
Installation method
Home Assistant OS

Core
2026.3.3

Supervisor
2026.03.2

Operating System
17.1

Frontend
20260312.0


Affected devices

  • White-only bulbs: msl100d
  • Color bulbs: msl120d
  • Color bulbs: msl120da

Logs taken when the issue happened

I do not have active logs from when the issue occurred.

Observed behavior:

  • When the issue was present, the affected bulbs showed as unavailable in Home Assistant.
  • Before applying the white-bulb fix, the unavailable devices were the white-only msl100d bulbs.
  • After applying the fix broadly, the unavailable devices became the color bulbs msl120d and msl120da.

Additional context
It looks like Home Assistant 2026.x is stricter about valid supported color mode combinations.

The issue appears to be that ColorMode.BRIGHTNESS cannot be advertised alongside RGB or COLOR_TEMP. Restricting BRIGHTNESS to white-only dimmable bulbs resolved the problem in my environment.

I’m including the code path below because it resolved the issue for me, and I wanted to share it for maintainer and community review to confirm whether this is the correct long-term fix for mixed white-only and color-capable Meross bulbs under Home Assistant 2026.x.


Suggested fix for review

Below is the logic that resolved it for me in LightEntityWrapper.

supported_color_modes

@property
def supported_color_modes(self) -> set[ColorMode] | set[str] | None:
    """
    Home Assistant requires BRIGHTNESS to be the only mode when used.
    So:
    - RGB/COLOR_TEMP bulbs must not also advertise BRIGHTNESS
    - white-only dimmable bulbs should use BRIGHTNESS
    - plain on/off bulbs use ONOFF
    """
    res = set()

    if self._device.get_supports_rgb(channel=self._channel_id):
        res.add(ColorMode.RGB)

    if self._device.get_supports_temperature(channel=self._channel_id):
        res.add(ColorMode.COLOR_TEMP)

    if not res and self._device.get_supports_luminance(channel=self._channel_id):
        res.add(ColorMode.BRIGHTNESS)

    if not res:
        res.add(ColorMode.ONOFF)

    return res

color_mode

@property
def color_mode(self) -> ColorMode | str | None:
    """
    Report the most appropriate active mode.
    """
    rgb = None
    temp = None

    if self._device.get_supports_rgb(channel=self._channel_id):
        rgb = self._device.get_rgb_color(channel=self._channel_id)

    if self._device.get_supports_temperature(channel=self._channel_id):
        temp = self._device.get_color_temperature()

    if rgb is not None and isinstance(rgb, tuple) and len(rgb) == 3:
        return ColorMode.RGB

    if temp is not None:
        return ColorMode.COLOR_TEMP

    if self._device.get_supports_luminance(channel=self._channel_id):
        return ColorMode.BRIGHTNESS

    return ColorMode.ONOFF

This change allowed:

  • msl100d to work again as white-only dimmable bulbs
  • msl120d and msl120da to remain functional as color-capable bulbs

Attaching my full light.py file incase it helps for further context

light.py.new.txt

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions