При переключении цветов в виртуальным устройстве через веб интерфейс с цвета с 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;
}
}
});
Опытным путем установили: если цвета содержат 0, то они каким-то образом складываются в 0 0 0. Только если переключать через виртуальное устройство. Помогите пожалуйста
Это Архив. Версия прошивки 1.3.2 Как посмотреть версию аппаратной ревизии у wb-mrgbw-d(если для этого нужно его извлечь физически, можем пока обойтись тем , что есть?)?
приложен диагностический архив, доступен только сотрудникам поддержки
(112,1 КБ)
ps. Есть еще второй диммер wb-mrgb (такая же проблема и с ним)
Это нужно для того чтобы было реализовано виртуальное устройство с функциями: гирлянды, включения разных лент в различные цвета, а так же для выбора одноименного цвета(два диммера), несколько блоков питания для разных лент и управления голосом через Яндекс виртуальным устройством. До обновления на “Release name wb-2304 stable” все работало идеально. Давайте пожалуйста разберемся с правилом.Правило упростили до 1 диммера и выбора цвета, простое для чтения и из “коробки” должно работать. Возможно это баг.
Если устройство работает корректно, то с очень большой вероятностью проблема в правиле.
По вашему утверждению, что правило работало корректно на 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 (в Вашей вики этого нет, либо мы не увидели)?