Здравствуйте!
Привожу здесь правило для удобного просмотра:
defineVirtualDevice("power_off", {
title: "Мастер-выключатель",
cells: {
power_off: {
type: "pushbutton"
},
}
});
var ps = new PersistentStorage("power-storage", { global: true });
var lights = ["wb-mdm3_50/K1", "wb-mdm3_50/K2", "wb-mdm3_50/K3"];
var isPowerOff = true;
defineRule({
whenChanged: ["wb-gpio/A1_IN", "power_off/power_off"],
then: function (newValue, devName, cellName) {
if (isPowerOff) {
lights.forEach(function (light) {
ps[light] = dev[light];
dev[light] = false;
});
} else {
lights.forEach(function (light) {
dev[light] = ps[light];
});
}
isPowerOff = !isPowerOff;
}
});
Прокомментируйте, пожалуйста, несколько моментов…
- Почему мы ориентируемся на переменную
var isPowerOff = true;
а не на вход выключателя “wb-gpio/A1_IN”?
Ведь можно так:
if (dev[“wb-gpio/A1_IN”] ==true) - Почему правило
defineRule({
не имеет названия? - почему не указываем явно в правиле?
else
{
dev[light] = true;
}
Спасибо!