Баг wb-mrgbw-d, встает в черный

Кто то может помочь с вопросом? По факту обновили и перестало работать.

Я в логе вижу запись “0;0;0” При записи в устройство строки с нулями я ожидаю что все каналы будут иметь “0”, то есть выключены.
То есть поведение вполне логично.
Возможно - я не совсем понимаю саму проблему?

Проблема такая. Есть виртуальное устройство, оно управляет физическим rgb. При выборе цвета , к примеру с 255.0.0 на 0.0.255 включится черный цвет 0 0 0. Я подозреваю проблема в том , что 0 устанавливается по очереди на канал.

Как вариант, покажите пример виртуального устройства для управления wb rgb

Я не настоящий программист, прошу простить за корявый код:

//08_08_test_01.js
log.info("script 08_08_test_01.js started")
//#setInterval(function(){
//#  log("wb-mrgbw-d-fw3_189/RGB Palette is {}".format(dev["wb-mrgbw-d-fw3_189/RGB Palette"]))
//#}, 1000)

function makeNewVirtualControl(vdName, nameControl, typeControl){
  //log.info("GetDevice", getDevice("vdName"))
  if (getDevice(vdName) === undefined) {
    log.info("Define new")
    defineVirtualDevice(vdName, {
      title: vdName,
      cells: {

      },
    })
  }
     //Тут проверим есть ли уже контрол и если нет - создадим.
    if (!getDevice(vdName).isControlExists(nameControl)) {
      log.info("Контрола нет, создаем.")
      getDevice(vdName).addControl(nameControl, typeControl);
    }
 
}

makeNewVirtualControl("Temp_RGB", "test1", {type: "rgb", value: "#FFFFFF", readonly: false});

defineRule("Foo RGB conrol", {
  whenChanged: 'Temp_RGB/test1',
  then: function(value) {
    log.info("Temp_RGB/test1", value)
    dev["wb-mrgbw-d-fw3_189/RGB Palette"] = value;
  }
})

И да, кстати: Совместимость скриптов при обновлении wb-rules — Wiren Board

Спасибо, проверим отпишусь!

Я, кстати, так и не понял вашего скрипта, к сожалению. Какие-то сравнения строк, неявные преобразования… Я бы просто разобрал рекурсивно строку и менял бы значения индивидуально…

Эта тема была автоматически закрыта через 7 дней после последнего ответа. В ней больше нельзя отвечать.