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

Добрый день.

При переключении цветов в виртуальным устройстве через веб интерфейс с цвета с 255;0;0 на цвет 0;255;0 устройство включает черный 0;0;0.
release wb-2304(stable), wb-rules 2.18.2 990
Подскажите, пожалуйста в чем может быть проблема.

Лог работы
2023-07-29 21:04:25Цвет над телевизором_1 255;0;0
2023-07-29 21:04:25Цвет над телевизором_2 255;0;0
2023-07-29 21:04:25RGBcolor.sofa_1 255;0;0
2023-07-29 21:04:29Цвет над телевизором_1 0;255;0
2023-07-29 21:04:29Цвет над телевизором_2 0;255;0
2023-07-29 21:04:29RGBcolor.sofa_1 0;0;0
2023-07-29 21:04:29RGBcolor.sofa_2 0;0;0
2023-07-29 21:04:29RGBcolor.sofa_1 0;255;0
2023-07-29 21:04:29Цвет над телевизором_1 0;0;0
2023-07-29 21:04:29Цвет над телевизором_3 0;0;0
2023-07-29 21:04:29RGBcolor.sofa_1 0;0;0
2023-07-29 21:04:29RGBcolor.sofa_2 0;0;0

Скрипт

var RGBcolor = {
  'sofa' : 'wb-mrgbw-d_161/RGB',
}

defineVirtualDevice("light_RGB", { 
    title: "Светодиодные ленты",
    cells: {
        
      'Цвет над телевизором': {
            type: "rgb",
            value: 0
        },
}  
});

var rule_RGB_device_sofa_color = defineRule('RGB_device_sofa_color', { 
  whenChanged: 'light_RGB/Цвет над телевизором', 
  then: function (newValue, devName, cellName){
    log('Цвет над телевизором_1',newValue);
    if ((newValue != '0;0;0') && (newValue != null)){
      // что-то делаем еще
      log('Цвет над телевизором_2',newValue);
      dev[RGBcolor.sofa] = newValue;
    }
    else {
      log('Цвет над телевизором_3',newValue);
      if (newValue != null)
        dev[RGBcolor.sofa] = newValue;
    }
  }
});


var rule_RGB_sofa_device_color = defineRule('RGB_sofa_device_color', { 
  whenChanged: RGBcolor.sofa, 
  then: function (newValue, devName, cellName){
    log('RGBcolor.sofa_1',newValue);
    if ((newValue != '0;0;0') && (newValue != null)){
      // что-то делаем
    }
    else {
      log('RGBcolor.sofa_2',newValue);
      if (newValue != null)
        dev['light_RGB/Цвет над телевизором'] = newValue;
    }
  }
});

Проверил и на wb rgbd , тоже повисло.

Что тут не так? Кто то сталкивался?

Опытным путем установили: если цвета содержат 0, то они каким-то образом складываются в 0 0 0. Только если переключать через виртуальное устройство. Помогите пожалуйста

Здравствуйте.
Извините за долгий ответ.
Попробую воспроизвести вашу проблему. Постараемся найти решение вашего вопроса.

Спасибо, будем ждать

Какие версии прошивки и аппаратной ревизии у wb-mrgbw-d?
Также скиньте диагностический архив.

Это Архив. Версия прошивки 1.3.2 Как посмотреть версию аппаратной ревизии у wb-mrgbw-d(если для этого нужно его извлечь физически, можем пока обойтись тем , что есть?)?

приложен диагностический архив, доступен только сотрудникам поддержки
(112,1 КБ)

ps. Есть еще второй диммер wb-mrgb (такая же проблема и с ним)

Здесь по сути проблема скорее всего в самом правиле.
Наблюдается ли у вас данный эффект при изменении цвета через команды:

mosquitto_pub -t "/devices/wb-mrgbw-d_161/controls/RGB/on" -m "255;0;0"
mosquitto_pub -t "/devices/wb-mrgbw-d_161/controls/RGB/on" -m "0;255;0"

Не совсем ясно, какой функционал вы пытаетесь реализовать через данное правило. Чем не устраивает стандартный виджет?

1 лайк

Это нужно для того чтобы было реализовано виртуальное устройство с функциями: гирлянды, включения разных лент в различные цвета, а так же для выбора одноименного цвета(два диммера), несколько блоков питания для разных лент и управления голосом через Яндекс виртуальным устройством. До обновления на “Release name wb-2304 stable” все работало идеально. Давайте пожалуйста разберемся с правилом.Правило упростили до 1 диммера и выбора цвета, простое для чтения и из “коробки” должно работать. Возможно это баг.

mosquitto_pub -t "/devices/wb-mrgbw-d_161/controls/RGB/on" -m "255;0;0"
mosquitto_pub -t "/devices/wb-mrgbw-d_161/controls/RGB/on" -m "0;255;0"

Вот так работает.

Подскажите, какой у вас был релиз до обновления на wb-2304? А также версию контроллера.

К сожалению не помню. Wb rules были примерно 1.7. Wirenboard 6

Крайний раз обновлял примерно : февраль 2021

Добрый день, данных которые я предоставил достаточно?

Михаил помогите пожалуйста, из за этой проблемы испытываем трудности в использование “умного дома”.

Если устройство работает корректно, то с очень большой вероятностью проблема в правиле.
По вашему утверждению, что правило работало корректно на wb-rules 1.7 и Wirenboard 6, пока что не получилось воспроизвести.
Попробуйте пока что перед

dev['light_RGB/Цвет над телевизором'] = newValue;

добавить

log.info("записываем в топик light_RGB/Цвет над телевизором значение", newValue, "типа", typeof(newValue)  );

и посмотреть, что по сути передается устройству.

2023-08-04 13:17:08Цвет над телевизором_1 255;0;0
2023-08-04 13:17:08Цвет над телевизором_2 255;0;0
2023-08-04 13:17:12Цвет над телевизором_1 0;255;0
2023-08-04 13:17:12Цвет над телевизором_2 0;255;0
2023-08-04 13:17:12записываем в топик light_RGB/Цвет над телевизором значение 0;0;0 типа string
2023-08-04 13:17:12Цвет над телевизором_1 0;0;0
2023-08-04 13:17:12Цвет над телевизором_3 0;0;0
2023-08-04 13:17:12записываем в топик light_RGB/Цвет над телевизором значение 0;0;0 типа string

Михаил выше лог, в том виде как Вы просили. Можно пример правила для создания виртуального устройства, которое управляет RGB (в Вашей вики этого нет, либо мы не увидели)?

Михаил добрый день. Вы не забыли про нас?