Это нужно для того чтобы было реализовано виртуальное устройство с функциями: гирлянды, включения разных лент в различные цвета, а так же для выбора одноименного цвета(два диммера), несколько блоков питания для разных лент и управления голосом через Яндекс виртуальным устройством. До обновления на “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 (в Вашей вики этого нет, либо мы не увидели)?
Я в логе вижу запись “0;0;0” При записи в устройство строки с нулями я ожидаю что все каналы будут иметь “0”, то есть выключены.
То есть поведение вполне логично.
Возможно - я не совсем понимаю саму проблему?
Проблема такая. Есть виртуальное устройство, оно управляет физическим rgb. При выборе цвета , к примеру с 255.0.0 на 0.0.255 включится черный цвет 0 0 0. Я подозреваю проблема в том , что 0 устанавливается по очереди на канал.
Я, кстати, так и не понял вашего скрипта, к сожалению. Какие-то сравнения строк, неявные преобразования… Я бы просто разобрал рекурсивно строку и менял бы значения индивидуально…