Size: a a a

ioBroker smarthome

2021 April 10

A

Anzor in ioBroker smarthome
var timeout;


on({id: "megad.0.p0_P0"/*P0*/, change: "gt"}, async function (obj) {
 var value = obj.state.val;
 var oldValue = obj.oldState.val;
 (function () {if (timeout) {clearTimeout(timeout); timeout = null;}})();
 setState("megad.0.p7_P7"/*P7*/, true);
 timeout = setTimeout(async function () {
   setState("megad.0.p7_P7"/*P7*/, false);
 }, 5000);
});
источник

A

Anzor in ioBroker smarthome
блокли в JS  мое все )
источник

AD

A D in ioBroker smarthome
setStateDelayed
источник

AD

A D in ioBroker smarthome
а я наоборот - нагромождение картинок раздражает
источник

A

Anzor in ioBroker smarthome
function button(DI, DO) {
 on({id: DI, change: "gt"}, function () {
   setState(DO, !(getState(DO).val));
 });
}
button("megad.0.p1_P1", "megad.0.p7_P7"); // Once
button("megad.0.p0_P0", "megad.0.p7_P7"); // Once
button("megad.0.p3_P3", "megad.0.p12_P12"); // Once
button("megad.0.p3_P3_long", "megad.7.p7_P7"); // Long:900

button("megad.4.p1_P1", "megad.1.p8_P8"); // 60,N
button("megad.4.p1_P1", "megad.1.p9_P9"); // 180,N
button("megad.7.p1_P1", "megad.4.p9_P9"); // 300,N
источник

A

Anzor in ioBroker smarthome
вот этот можешь подсказать, как с помощью setStateDelayed сделать красиво? )
источник

AD

A D in ioBroker smarthome
добавляешь в функцию третью переменную к DI и DO, за setState даешь команду вторую уже с параметром задержки, при вызове button будет три параметра, третий время
источник

A

Anzor in ioBroker smarthome
чисто логически, я тебя понял, но не осилю )
источник

A

Anzor in ioBroker smarthome
function button(DI, DO, TO) {
 on({id: DI, change: "gt"}, function () {
   setState(DO, !(getState(DO).val)); setStateDelayed(TO);
 });
}
источник

AD

A D in ioBroker smarthome
function button(DI, DO, TD) {
 on({id: DI, change: "gt"}, function () {
   setState(DO, !(getState(DO).val));
 setStateDelayed(DO, 0, TD));
 });
}
button("megad.0.p1_P1", "megad.0.p7_P7", 60000); // 60 s
источник

A

Anzor in ioBroker smarthome
ругается на 4ю срочку
источник

AD

A D in ioBroker smarthome
скобку лишнюю оставил в строке
источник

A

Anzor in ioBroker smarthome
подправил
источник

A

Anzor in ioBroker smarthome
но теперь, если megad.0.p1_P1 еще раз сработает в рамках действия 60 сек то свет выключится
источник

AD

A D in ioBroker smarthome
если еще раз нажать кнопку выключение будет через время от первого нажатия
источник

A

Anzor in ioBroker smarthome
нет
источник

A

Anzor in ioBroker smarthome
если еще раз нажать, выключает сразу
источник

AD

A D in ioBroker smarthome
так первая команда по нажатию меняет состояние на противоположное, а задержка продолжает выполняться... нажми еще раз - загорится, а выключится по самому первому таймеру
источник

A

Anzor in ioBroker smarthome
это не кнопка, это ДД, и если в 60 сек он сработает еще раз - свет выключится. даже если бы была кнопка, сути не меняет, второе нажатие приводит к выключению
источник

AD

A D in ioBroker smarthome
ровно также как выключился бы и в старом варианте без второй команды задержки выключения... смена состояния входа меняет состояние выхода на противоположное
источник