Открыть меню
Toggle preferences menu
Открыть персональное меню
Вы не представились системе
Your IP address will be publicly visible if you make any edits.

Условие попадания события во временной промежуток

Материал из Sprut.hub Wiki

Если вы хотите проверить условие по периоду времени с точностью до минут, то пока придется использовать блок кода в разделе Если. При этом сам период времени - не является триггером для срабатывания сценария. При включенном "желтом кружочке" - триггером будет являться только время начала и окончания периода.

Вариант в блочном сценарии

В блочных сценариях появился блок, в котором можно выбирать период времени, при соблюдении которого - сценарий будет выполняться.

Он добавляется в блоке Если, с условием выполнения всех блоков в разделе Если в режиме "Все сразу"

При этом его использовать можно несколькими способами:

Если блок периода времени, включен как триггер, то это запустит срабатывание сценария в указанные часы в промежутке времени. То есть в данном примере - сценарий будет запущен в 7 утра и 23 часа вечера.

Причем в 7 утра - сработает блок Тогда, а в 23 часа - сработает блок Иначе, при его наличии, так как период времени завершен

Чтобы использовать период времени только как условие попадания события в этот промежуток, триггер с блока периода времени необходимо снять. Тогда сценарий будет работать только тогда, когда сработает тревога у сигнализации в период с 7 утра до 23 вечера.

Вариант с помощью блоков кода

При этом, данный блок кода не является триггером для запуска сценария. Его можно использовать только в качестве дополнительного условия проверки в режиме: "Если сработал датчик движения и текущее время находится в указанном промежутке, тогда выполнить вот это"

Внутри одних суток

let time = new Date().getHours() * 60 + new Date().getMinutes();
let start = 01 * 60 + 25;
let end = 03 * 60 + 30;
return ((time >= start) && (time <= end))

где:

в блоке start 01 - это часы, 25 это минуты начального периода

в блоке end: 03 - это часы, 30 это минуты конечного периода

При переходе через полночь

let time = new Date().getHours() * 60 + new Date().getMinutes();
let start = 17 * 60 + 25;
let end = 03 * 60 + 30;
return ((time >= start) || (time <= end))

где:

в блоке start 17 - это часы, 25 это минуты начального периода

в блоке end: 03 - это часы, 30 это минуты конечного периода