Нужна помощь по коду

Добрый день, помогите с кодом. Есть виртуальная кнопка и допустим физический выключатель. Виртуальная кнопка работает, выключатель - тоже. Вопрос следующий, что нужно добавить в код, чтобы при нажатии физического выключателя переключалось положение виртуальной кнопки?

defineVirtualDevice("Light", {
	title: "Light_room",// включение света
	cells: {
		enabled: {
		type: "switch",
		value: false
		}
	}
});
// Виртуальная кнопка
defineRule("Light_room_switch", {
whenChanged: "Light/enabled",
        then: function (newValue, devName, cellName) { 
        dev["wb-mr6c_47/K1"] = newValue;
        }
})
// Физический выключатель
defineRule("switch_1", {
whenChanged: "wb-mr6c_47/Input 1",
        then: function (newValue, devName, cellName) {
        dev["wb-mr6c_47/K1"] = newValue;
        }
});
defineVirtualDevice("Light", {
	title: "Light_room",// включение света
	cells: {
		enabled: {
		type: "switch",
		value: false
		}
	}
});
// Виртуальная кнопка
defineRule("Light_room_switch", {
whenChanged: "Light/enabled",
        then: function (newValue, devName, cellName) { 
        dev["wb-mr6c_47/K1"] = newValue;
        }
})
// Физический выключатель
defineRule("switch_1", {
whenChanged: "wb-mr6c_47/Input 1",
        then: function (newValue, devName, cellName) {
        dev["wb-mr6c_47/K1"] = newValue;
        if(newValue){
            dev["Light/enabled"] = !dev["Light/enabled"]
        }
});
2 Likes

Добрый день.
Проще код будет выглядеть так:

// Физический выключатель
defineRule("switch_1", {
whenChanged: "wb-mr6c_47/Input 1",
        then: function (newValue, devName, cellName) {
        dev["wb-mr6c_47/K1"] = newValue;
        dev["Light/enabled"] = newValue;
        }
});

В таком случае состояние виртуального переключателя будет изменяться, при каждом изменении состоянии кнопки =D

Изначальное ТЗ было: “при нажатии физического выключателя переключалось положение виртуальной кнопки”

Немного не логично, но да, если нужно четко по ТЗ, то ваш вариант верен.