Триггеры времени dzVents
Существует несколько вариантов триггеров времени. Важно знать, что события таймера Domoticz запускаются только один раз каждую минуту, поэтому одна минута — это самый маленький интервал для ваших таймерных скриптов. Тем не менее, dzVents дает вам много возможностей для полного контроля над тем, когда и как часто вызывается ваш скрипт (время в формате 24 часа и все даты в дд / мм).
Триггеры времени в скриптах мы определяем для того, чтобы скрипт срабатывал в строго указанное Вами время или промежуток времени.
Пример. Розетка включается каждый день в 13:00 и выключается в 21:00. Ночник включается при наличии движения в комнате от заката до рассвета.
Пример использования триггера времени в скриптах dzVents (timer)
on = { timer = { 'every minute', -- вызывает скрипт каждую минуту 'every other minute', -- каждую минуту: xx: 00, xx: 02, xx: 04, ..., xx: 58 'every xx minutes', -- начиная с xx: 00 запускает каждые xx минут -- значение (от 0 до 24) 'every hour', -- 00:00, 01:00, ..., 23:00 (24x за 24hrs) 'every other hour', -- 00:00, 02:00, ..., 22:00 (12x за 24hrs) 'every xx hours', -- начиная с 00:00, запускает каждый xx час -- значение (от 0 до 24) 'at 13:45', -- конкретное время 'at *:45', -- каждые 45 минут часа 'at 15:*', -- каждую минуту с 15:00 до 16:00 'at 12:45-21:15', -- между 12:45 и 21:15. Использовать '*' нельзя! 'at 19:30-08:20', -- между 19:30 и 8:20, а затем на следующий день 'at 13:45 on mon,tue', -- в 13:45 только по понедельникам и вторникам (английский) 'on mon,tue', -- по понедельникам и вторникам 'every hour on sat', -- вы правильно догадались 'at sunset', -- использует информацию о закате солнца из Domoticz 'at sunrise', -- использует информацию о восходе солнца из Domoticz 'at sunset on sat,sun', 'xx minutes before sunset', 'xx minutes after sunset', 'xx minutes before sunrise', 'xx minutes after sunrise' -- Угадай ;-) 'between aa and bb' -- aa / bb может быть отметкой времени, как 15:44 -- aa / bb может быть восход / закат -- aa / bb может быть xx минут до / после восхода / заката 'at nighttime', -- между закатом и восходом солнца 'at daytime', -- между восходом и закатом 'at daytime on mon,tue', -- между восходом и закатом только по пн и вт 'in week 12,44' -- в 12 или 44 неделю 'in week 20-25,33-47' -- между 20-25 или между 33-47 неделями 'in week -12, 33-' -- неделя <= 12 или неделя >= 33 'every odd week', 'every even week', -- нечетные или четные недели 'on 23/11', -- 23 ноября (дд / мм) 'on 23/11-25/12', -- между 23/11 и 25/12 'on */2,15/*', -- каждый день в феврале или каждый 15-й день месяца 'on -3/4,4/7-', -- до 3/4 или после 4/7 -- все их можно объединить: -'at nighttime at 21:32-05:44 every 5 minutes on sat, sun', -'every 10 minutes between 20 minutes before sunset and 30 minutes after sunrise on mon,fri,tue on 20/5-18/8' -- или просто сделайте: function(domoticz) -- вы можете использовать domoticz.time чтобы получить текущее время -- Обратите внимание, что эта функция вызывается каждую минуту! -- пользовательский код, который возвращает true или false ... end }, }
События таймера запускаются каждую минуту. Если такой триггер возникает, dzVents будет сканировать все события на основе таймера и будет оценивать правила. Если у вас есть правило on mon, скрипт будет выполняться каждую минуту, но только в понедельник. Помните о логике при использовании нескольких типов триггеров таймера. Нет смысла комбинировать триггер для определенного или мгновенного времени с триггером для диапазона или последовательности раз (например, «на закате» каждые 6 минут) в той же конструкции. По аналогии ‘between aa and bb’ имеет смысл только с мгновенными aa и bb.
Одно важное замечание: если Domoticz по какой-либо причине пропускает событие таймера, вы можете пропустить триггер! Таким образом, вы должны создать некоторые отказоустойчивые проверки или некоторую избыточность (проверка по двум условиям), если у вас есть критические временные элементы для управления. Нет ничего, что нельзя сделать на dzVents.
Ограничения при использовании
Реализация every xx minutes и every xx hours ограничена. Интервал сбрасывается каждые *: 00 (для минут) или 00: *для часов. Используйте интервал, который является целым делителем из 60 (или 24 часа). Таким образом, можно использовать значения 1, 2, 3, 4, 5, 6, 10, 12, 15, 20 и 30 минут.