1 Как в CRON в строке назначения времени срабатывания использовать переменные?
Например:
var minu= " variable * * * * * ";
defineRule(‘croneRule’, {
when: cron(minu),
Если я вставляю переменные, то ошибок нет, но и не работает как надо.
2 По работе CRON вопрос:
var minu= " 4 * * * * * ";
defineRule(‘croneRule’, {
when: cron(minu),
then: function () {
dev[‘wb-gpio/EXT1_K1’] = false;
}
У меня реле срабатывает 1 раз в минуту, а не раз в 4 сек. Когда то ранее выставлял 1 мин. Действительно.
Если я заменю var minu= " 4 * * * * * "; на var minu= " * * * * * * ";, то реле срабатывает 1 раз в секунду, как и должно быть. Верну опять 4 и будет срабатывать 1 раз в минуту. Это как так?
Но важный нюанс: объект cron() создаётся один раз, в момент загрузки правил. Если вы потом где-то поменяете переменную – уже созданное cron-расписание не обновится.
Если хотите на лету менять расписание, то делайте срабатывание раз в секунду, а внутри then проверяйте условия. Либо используйте таймеры.