Shelly RGBW2 Integration Issue with white channel

Hello,
I assume that the Shelly RGBW2 integration has an issuse with using the white channel. At the moment it is not possible to use just the white channel, like the Shelly App behaves when in RGBW Mode.
Most people with just RGB Stripes do not have this problem. Probably it affects just people with RGBW Stripes who actually uses mainly the white channel (like I do :D)
I found similar topics over the last years in this forum but no real solution until now.

I think the error ist, that the color mode of the Shelly RGBW2 light in Home Assistant is ColorMode.RGBW. But I think it should be ColorMode.RGB + ColorMode.WHITE based on this documentation Light entitys in Home Assistant I think this would solve the Issue.

Unfortunatly I don’t know where to adress this issue or how i can fix it myself (i am relative new to HA).

What can I do to fix it myself in my Home Assistant?
Or where can I adress this issue in this specific implementation?
Can someone fix this issue in the integration?

Regards
Siggi

Maybe for better understanding some examples with full brightness:

The stripe is on and red
“ison”: true,
“mode”: “color”,
“red”: 255,
“green”: 0,
“blue”: 0,
“white”: 0,
“gain”: 100,

The stripe is on and white. (gain is zero!)
“ison”: true,
“mode”: “color”,
“red”: 0,
“green”: 0,
“blue”: 0,
“white”: 255,
“gain”: 0,

The stripe is white and off.
“ison”: false,
“mode”: “color”,
“red”: 0,
“green”: 0,
“blue”: 0,
“white”: 255,
“gain”: 0,

The stripe is red and off. (ison=true but gain=zero)
“ison”: true,
“mode”: “color”,
“red”: 255,
“green”: 0,
“blue”: 0,
“white”: 0,
“gain”: 0,

Even in the GUI the white channel is completly seperated.

Conclusion: Gain is just effectig the colors, not the white channel.

As the solution home assistant should:

  • either the Brightness just effects the gain channel (color) und white becomes a standalone slider
  • or there should be two lights: one rgb lamp (where brightness is gain) and one white lamp (where brightness is the white channel)

I got a solution which worked for me. Is use a light template which fit my needs.

  • Brightness is always just the white value. When changing the brightness the actual color is set to zero
  • I can still select colors
  • i can even use the built in effects of the shelly rgbw
  • change brightness of the color is not possible with this light entity. I always use 100% in the rare cases I want colors. If needed you can use the original light entity to regulate the gain (color brightness)
light:
  - platform: template
    lights:
      passive_beleuchtung_white:
        friendly_name: "Passive Beleuchtung weiß"
        level_template: "{{ state_attr('light.passive_beleuchtung','rgbw_color')[3] }}"
        value_template: "{{ states('light.passive_beleuchtung') }}"
        rgbw_template: "{{ state_attr('light.passive_beleuchtung','rgbw_color') }}"
        effect_list_template: "{{ state_attr('light.passive_beleuchtung','effect_list') }}"
        effect_template: "{{ state_attr('light.passive_beleuchtung','effect') }}"
        icon_template: mdi:led-strip-variant
        turn_on:
          action: light.turn_on
          target:
            entity_id: light.passive_beleuchtung
          data: {}
        turn_off:
          action: light.turn_off
          target:
            entity_id: light.passive_beleuchtung
          data: {}
        set_level:
          action: light.turn_on
          target:
            entity_id: light.passive_beleuchtung
          data:
            rgbw_color:
              - 0
              - 0
              - 0
              - "{{ brightness }}"
        set_rgb:
          action: light.turn_on
          target:
            entity_id: light.passive_beleuchtung
          data:
            rgbw_color:
              - "{{ r }}"
              - "{{ g }}"
              - "{{ b }}"
              - 0
        set_effect:
          action: light.turn_on
          target:
            entity_id: light.passive_beleuchtung
          data:
            effect: "{{ effect }}"