Уважаемые добрый день.
Подскажите, что изменить, чтоб только выключался свет мастер кнопкой. при повторном длинном нажатии не включался?
defineVirtualDevice(“power_off”, {
title: “Мастер-гостинная”,
cells: {
power_off: {
type: “pushbutton”
},
}
});
var ps = new PersistentStorage(“power-storage”, { global: true });
var lights = [“wb-mr6c_22/K1”, “wb-led_194/Channels 3_4”, “wb-mr6c_48/K5”];
var isPowerOff = true;
defineRule({
whenChanged: [“wb-mcm8_211/Input 3 Long Press Counter”, “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;
}
});
Пока задержку изменил на 5000 мс
Ткните, пожалуйста, начинающего программиста)) где прописать, чтоб при повторном длинном нажатии не включалось?
А еще вопрос, будет около 40 отключаемых мастер кнопкой источников света.
Как прописать задержку примерно 500 мс, чтоб по очереди гасли включенные источники.
Замените вот это:
На вот это:
lights.forEach(function (light) {
ps[light] = dev[light];
dev[light] = false;
});
Супер, помогло.
А как задержку поставить при отключении 40 устройств ? чтоб они не разом все обесточивались и скачков не было напряжения, да и красиво будет когда последовательно все тухнет.
О! хорошая ссылка.
Спасибо.
Ещё бы в том разобраться…
А вот на комнаты уже есть мастер выключатели, так думаю, что надо в общем мастер включателе дергать уже существующие в комнатах.
Как такая функция будет называться?
У вас же уже срабатывание правила триггерится по нескольким контролам. В тот же массив предлагаю добавить контрол от мастер-выключателя мастер-выключателей.
1 лайк
Подскажите, есть ли ещё вопросы?
Да, если можно про массив и тригерение по нескольким контролам подробнее расскажите.
я в итого добавил все устройства на общий выключатель, не разобрался как обращаться к локальным…
А погодите.
var lights = [“wb-mr6c_22/K1”, “wb-led_194/Channels 3_4”, “wb-mr6c_48/K5”];
Суда вписать название “off_gostinnaya/power_off”
?
Коллеги, уважаемые, такой вопрос.
defineRule({
whenChanged: “wb-led_20/Input 1 Double Press Counter”,
then: function (newValue, devName, cellName) {
dev[“wb-mr6c_22/K2”] = true;
}
});
Как написать, чтоб при повторном нажатии mr6c-22/K2 перешло в статус false ?
т.е. переключал свет двойным нажатием.
dev[“wb-mr6c_22/K2”] = !dev[“wb-mr6c_22/K2”];
SyntaxError: error parsing token (line 4)
duk_lexer.c:1272
Кавычки руками перепишите. Они тут форматируются на “красивые”.
А сюда как вписать мастер выключатель описанный так.
defineVirtualDevice(“power_off_kabinet”, {
title: “ВЫКЛ кабинет”,
cells: {
power_off: {
type: “pushbutton”
},
}
});
var ps = new PersistentStorage(“power-storage”, { global: true });
var lights = [“wb-led_194/Channel 1”,“wb-mdm3_18/K1”];
var isPowerOff = true;
defineRule({
whenChanged: [“wb-mcm8_211/Input 1 Single Press Counter”, “power_off/power_off”],
then: function (newValue, devName, cellName) {
lights.forEach(function (light) {
ps[light] = dev[light];
dev[light] = false;
});
}
});
не могу физически проверить, надеюсь, все работает…
Подскажите, вопрос:
Ещё актуален?
Вот этот вопрос, к сожалению не поняла. Опишите подробнее, пожалуйста.