I find that using NR core modules to be easier than the node-red-contrib-shelly. BUT, you do have to craft the messages yourself. I use this on a RGBW Gen 1 to control my lights for different 'levels' of lighting. This in a Function node...
switch (msg.payload) {
case 1:
msg.payload = {"turn": "off"};
break;
case 2:
msg.payload = {"mode": "color", "red": 255, "green": 255, "blue": 255, "white": 100, "gain": 100, "effect": 0, "transition": 0, "turn": "on" };
break;
case 4:
msg.payload = {"mode": "color", "red": 255, "green": 255, "blue": 255, "white": 100, "gain": 80, "effect": 0, "transition": 0, "turn": "on" };
break;
case 8:
msg.payload = { "mode": "color", "red": 255, "green": 255, "blue": 255, "white": 100, "gain": 50, "effect": 0, "transition": 0, "turn": "on" };
break;
case 16:
msg.payload = {"mode": "color", "red": 252, "green": 173, "blue": 25, "white": 100, "gain": 100, "effect": 0, "transition": 0, "turn": "on" };
break;
case 32:
msg.payload = {"mode": "color", "red": 252, "green": 173, "blue": 25, "white": 20, "gain": 40, "effect": 0, "transition": 0, "turn": "on" };
break;
case 64:
msg.payload = {"mode": "color", "red": 252, "green": 173, "blue": 25, "white": 20, "gain": 100, "effect": 0, "transition": 0, "turn": "on" };
break;
default:
msg.payload = 1024
}
msg.topic = "shellies/Living_Room/color/0/set";
return msg;