Fake light with custom effects to control tuya light with Node-Red

Hi everyone,

I have been using home assistant for about 8 months and most of the time I can figure things out. However this time I do need some help. This is a long read. a TL;DR is at the bottom

So recently I bought some RGB string light from Action (dutch store) and they sell rebranded tuya smarthome equipment. I like to control all my stuff locally and most of my lights are Zigbee lights.
These string lights are RGB and controlled over Wifi. I use Local Tuya to control my smartplugs and would like to do the same with these string lights. However these string lights aren’t supported (yet). I don’t really want to use the official Tuya intergration, because I don’t want my lights on the cloud.

So I dug around a bit to see how these lights can be controlled. I have used tinytuya to get some more information. There are 3 datapoints on these lights that can be controlled:

20  (True or False)
101 (Type of color)
102 (Effect type)

With local tuya I can only turn the device on or off since dp 20 is fairly standard in Tuya devices. However the other ones are quite unique.

The color dp works different. Instead of using HSV or RGB values it can only display a full color or white with an effect. So if dp 101 has a value of 'R' it means the string light is red. 'B' is blue and 'G' is green. Combining colors can be done by passing combination of the three for e.g. 'RG' is yellow. If the value 'Color' is passed than every LED has its own random color.

The effect dp works by just sending a string with the effect that is desired. I haven’t gotten all effect types but two of them are 'Stream' and 'Bright'.

I figured that I could control the lights with Node-Red. I used the node-red-contrib-tuya-smart-device npm package and I can control the string light with it. Now I only need a dummy front end light to control node-red. I already have used virtual components from HACS in the past to do this kind of thing. The problem now however is that I need to have a custom effect list. virtual components doesn’t support this.

I already tried to make a template light that doesn’t really do anything with a custom none service I got from github GitHub - chomupashchuk/empty-service-home-assistant: Empty/dummy service for home assistant

My configuration in lights.yaml for this dummy light looks like this:

- platform: template
  lights:
    string_lights:
      friendly_name: "string_lights"
      turn_on:
        service: none.none
      turn_off:
        service: none.none
      set_color:
        service: none.none

This creates a dummy light that in about the same way virtual components does it. I want to add a custom effects list that I can pass through Node-Red with effect_list_template. However I can’t get it to work properly I already looked at the documentation and the example however Home asssistant is always giving me an error like this if I try:

Invalid config for [light.template]: some but not all values in the same group of inclusion 'effect' @ data['lights']['string_lights'][<effect>]. Got None. (See ?, line ?).

How do I make a Fake light with a custom effect list?
Other suggestions on how to do this entire thing in different way are also welcome.

TL;DR:
I want to make a Fake light with a custom effect list to control my tuya string light locally in Node-Red