Получается для управления внешними системами код должен быть примерно такой:
//wb_mrgbw_d_fw_v1.js 17.05.23 test
var dimmNumber = "01" //name VIRTUAL device (this) #ChangeMe!#
var devDimmer = "wb-mrgbw-d-fw3_28" // For name REAL MRGBW-D device #ChangeMe!#
defineVirtualDevice(dimmNumber +"mrgbw-d", {
title: dimmNumber +" MRGBW-D", //
cells: {
colourTemp1 : {
type : "range",
value : 4150, // for neutral white
min : 2000, // warm white
max : 6500, // cool white
readonly: false,
order: 5,
},
colourTemp2 : {
type : "range",
value : 4150, // for neutral white
min : 2000, // warm white
max : 6500, // cool white
readonly: false,
order: 5,
},
}
});
defineRule("colourTemp1_change", {
whenChanged: dimmNumber +"mrgbw-d/colourTemp1",
then: function (newValue, devName, cellName) {
coolWhite = Math.round(((1000000 / dev[dimmNumber +"mrgbw-d/colourTemp1"]) - 2035) / 45);
dev[devDimmer +"/CCT1 Temperature"] = coolWhite;
}
});
defineRule("colourTemp2_change", {
whenChanged: dimmNumber +"mrgbw-d/colourTemp2",
then: function (newValue, devName, cellName) {
coolWhite1 = Math.round(((1000000 / dev[dimmNumber +"mrgbw-d/colourTemp2"]) - 2035) / 45);
dev[devDimmer +"/CCT2 Temperature"] = coolWhite1;
}
});
т.е. мы создаем 2 дополнительных топика, в них внешняя система управления передает значения в майредах, после чего переданные значения пересчитываем в кельвины, линейно переводим в условные единицы WB и записываем в целевой топик.
Код рабочий, тему можно закрывать. К цветовой температуре конечно отношения не имеет, но стало возможно поправить баланс белый / желтый.