Здравствуйте. Ищу возможность переопределять время срабатывания правила, запланированного через cron.
Пока создал функцию создающую cron-правило, куда время срабатывания передаётся переменной.
Столкнулся с проблемой, что если вызывать эту функцию из правила, назначенного, например, на нажатие кнопки, то функция не создаёт cron-правило.
(Пробую по аналогии с этим )
var cron_rule_id = null;
var alarm_clock_time = "5 * * * *";
function setCron(){
log("setCron function started ");
cron_rule_id = defineRule("cron_alarm_clock", {
when: cron(alarm_clock_time),
then: function () {
log("Alarmed");
}
});
log("cron_alarm_clock_id = " + cron_rule_id );
};
//setCron(); // Если вызывать функцию здесь, то работает нормально.
defineVirtualDevice("alarm_clock", {
title: "alarm_clock",
cells: {
enabled:{
type: "switch",
value: false
},
}
});
defineRule("alarm_clock_enabled", {
whenChanged: "alarm_clock/enabled",
then: function (newValue, devName) {
if (newValue == true) {
setCron();
}
}
});
В итоге в логе только “setCron function started”
Подскажите, что не так?