Здравствуйте, у меня есть диммер WB-LED (прошивка 3.9.0) в режиме 2*W+W+W. К нему подключены 3 ленты:
- каналы 1 и 2 объединены из-за большой мощности одноцветной ленты
- канал 3 для второго контура ленты
- канал 4 для третьего контура ленты
Также, к этому диммеру подключены 3 кнопки:
- вход 1 - должен управлять каналами 1,2 и 4 одновременно вкл/выкл (короткое нажатие) и диммирование (длинное нажатие)
- вход 3 - управляет только лентой на канале 3
- вход 4 - должен дублировать функции кнопки на входе 1, то есть также управлять каналами 1,2 и 4 в том же режиме.
Стандартных настроек, чтобы один вход мог управлять сразу тремя каналами я не нашел, поэтому вопрос - как корректно сделать правило, которое будет выполнять такую функцию?
Вот какие каналы MQTT у меня есть:
- Вход 1 (короткое нажатие для вкл/выкл каналов 1,2 и 4) - wb-led_101/Input 1 Single Press Counter
- Вход 4 (короткое нажатие для вкл/выкл каналов 1,2 и 4) - wb-led_101/Input 4 Single Press Counter
- Вход 1 (длинное нажатие для регулировки яркости каналов 1,2 и 4) - wb-led_101/Input 1 Long Press Counter
- Вход 4 (длинное нажатие для регулировки яркости каналов 1,2 и 4) - wb-led_101/Input 4 Long Press Counter
- Каналы 1 и 2 (вкл/выкл) - wb-led_101/Channels 1_2
- Канал 4 (вкл/выкл) - wb-led_101/Channel 4
- Каналы 1 и 2 (диммирование) - wb-led_101/Channels 1_2 Brightness
- Канал 4 (диммирование) - wb-led_101/Channel 4 Brightness
С одновременным включением и выключением вроде разобрался с помощью правила:
defineRule({
whenChanged:[
“wb-led_101/Input 4 Single Press Counter”,
“wb-led_101/Input 1 Single Press Counter”,
],
then: function (newValue, devName, cellName) {
dev[“wb-led_101/Channels 1_2”] = !dev[“wb-led_101/Channels 1_2”];
dev[“wb-led_101/Channel 4”] = !dev[“wb-led_101/Channel 4”];
}
});
А вот с диммированием пока проблема. Возможно получится доработать такое правило, добавив в него вторую кнопку на входе 4 и второй контур на канале 4?
var direction = false; defineRule({ whenChanged: "wb-led_101/Input 1 Long Press Counter", then: function (newValue, devName, cellName) { // Запуск таймера для изменения значения уровня яркости startTicker("wb-led_101/Input 1 Long Press Counter", 40); } }); // Правило для регулировки яркости по таймеру удерживания кнопки defineRule({ when: function () { return timers["wb-led_101/input1_long_press"].firing; }, then: function () { var i = dev["wb-led_101/Channels 1_2 Brightness"]; if (dev["wb-led_101/Input 1"]) { if ( i < 100 && direction) { i++ } else if (i > 0 && !direction) { i-- } dev["wb-led_101/Channels 1_2 Brightness"] = i } else { timers["wb-led_101/input1_long_press"].stop(); direction = !direction; } } });
P.S. пробовал базовыми настройками LED модуля привязать короткое и длинное нажатие входа 1 к каналам 1 и 2, а сценарием привязать эту же кнопку к каналу 4. Но была проблема в том, что каналы 1 и 2 могли уменьшать яркость, а канал 4 в это же время увеличивать яркость. Синхронной работы этих каналом добиться не получилось