Как включить в виртуальном устройстве контрол pushbutton с другого контрола pushbutton

Есть виртуальное устройство с контролами pushbutton :
defineVirtualDevice("LS", {
......
Koridor_Off: {
title: "Коридор - ВЫКЛ",
type: "pushbutton",
},
Koridor_Vecher: {
title: "Коридор - Вечер",
type: "pushbutton",
},
.......
});

Для одного контрола написан скрипт выключающий несколько выходов диммера:

//Сценарий Выкл весь свет в Коридоре
defineRule("LS_Koridor_Off", {
whenChanged: ["LS/Koridor_Off"],
then: function(newValue, devName, cellName) {
//выключаем все в Коридоре
dev["wb-led_198/Channel 1"] = false;
dev["wb-led_198/Channel 2"] = false;
dev["wb-led_198/Channel 3"] = false;
}
});

Вопрос - как записать в правиле, чтобы из контрола Koridor_Vecher инициировать контрол Koridor_Off

defineRule("LS_Koridor_Vecher", {
whenChanged: ["LS/Koridor_Vecher"],
then: function(newValue, devName, cellName) {
dev["LS/Koridor_Off"] = ?????

Или это в принципе не возможно, так как pushbutton возвращает 1 только по факту срабатывания?

Добрый день!

Возможно, но надёжнее сделать по-другому: вынесите выключение света в коридоре в отдельную функцию и вызывайте её из обоих правил. Можете посмотреть нашу страницу с примерами правил, возможно, сможете какие-то вещи использовать в своей реализации

Расскажите, пожалуйста, что должна делать кнопка «Коридор — Вечер», так я смогу подсказать точнее.

Добрый день!

Коридор - Вечер должен включать 2 выхода на wb-led с определенной яркостью и светильник DALI. Просто перед этим я хотел туда вставить скрипт на выключение всего света в коридоре, чтобы уже гарантированно ничего лишнего не оставалось включенным.

Но еще почему хочу иметь возможность запускать разные сценарии света висящие на pushbutton - я думал в дальнейшим прикрутить их на физические выключатели подключенные к MCM8. Условно чтобы физическая кнопка при разных условиях включала виртуальную кнопку определенного сценария.

Тогда удобнее оформить каждую сцену света отдельной функцией, которая сразу задаёт состояние всем светильникам коридора: нужные включает с заданной яркостью, остальные выключает. Тогда не придётся сначала всё гасить, и горящий свет не будет мигать при переключении сцен. Такие функции вызываются из любого правила: и по виртуальной кнопке в веб-интерфейсе, и по нажатию физической кнопки на WB-MCM8.

Пример, как одна кнопка выключает сразу список выходов.

Пример, как обрабатывать нажатия кнопок на WB-MCM8, в том числе разные типы нажатий.

Согласен, через функцию будет логичней и удобней, спасибо