WB-MRGBW-D maximum load and best practices

Here is a sample script that creates a virtual device that allows you to change colors separately. You can add any logic (coefficients, ratios) between colors and brightness to it.
Describe what formula do you want to use to correct the color?

//01_12_test_01.js
var dimmNumber = "01" //name VIRTUAL device (this) #ChangeMe!#
var devDimmer = "wb-mrgbw-d_189" // For name REAL MRGBW-D device #ChangeMe!#

defineVirtualDevice(dimmNumber +"mrgbw-d", {
  title: dimmNumber +" MRGBW-D", //
  cells: {
    RLine : {
        type : "range",
        value : 0,
        max:255,
        readonly: false,
        order: 1,
    },
    GLine : {
        type : "range",
        value : 0,
        max:255,
        readonly: false,
        order: 2,
    },
    BLine : {
        type : "range",
        value : 0,
        max:255,
        readonly: false,
        order: 3,
    },
    WLine : {
        type : "range",
        value : 0,
        max:255,
        readonly: false,
        order: 4,
    },

  }
});

function changeSetting(){
  log.info("Enter function");
  stringRGB = dev[dimmNumber +"mrgbw-d/RLine"].toString() +";"+ dev[dimmNumber +"mrgbw-d/GLine"].toString() +";"+ dev[dimmNumber +"mrgbw-d/BLine"].toString();
  //log.info("stringRGB=",stringRGB);
  dev[devDimmer +"/RGB"] = stringRGB;
  dev[devDimmer +"/White"] = dev[dimmNumber +"mrgbw-d/WLine"];
}


defineRule( "RLine_change" ,{
  whenChanged: dimmNumber +"mrgbw-d/RLine",
  then: function (newValue, devName, cellName){
    //log.info("RLine changed", newValue)
    changeSetting();
  }
});

defineRule( "GLine_change" ,{
  whenChanged: dimmNumber +"mrgbw-d/GLine",
  then: function (newValue, devName, cellName){
    //log.info("GLine changed", newValue)
    changeSetting();
  }
});

defineRule( "BLine_change" ,{
  whenChanged: dimmNumber +"mrgbw-d/BLine",
  then: function (newValue, devName, cellName){
    //log.info("BLine changed", newValue)
    changeSetting();
  }
});

defineRule( "WLine_change" ,{
  whenChanged: dimmNumber +"mrgbw-d/WLine",
  then: function (newValue, devName, cellName){
    //log.info("WLine changed", newValue)
    changeSetting();
  }
});

1 Like