Добрый день, прошу помощи, поправить скрипт.
Вроде все просто в полночь по Москве, реле должно выключаться, каждый день, но не срабатывает. В чем ошибка?
function dailyRelayOff_EXT1_K14(deviceName){
defineRule(“dailyRelayOff_EXT1_K14”, {
when: cron(“0 00 21 * *”),
then: function () {
dev[“wb-gpio/EXT1_K14”] = false;
}
}
) }
Cron правила
И если не ошибаюсь время не московское, а минус 3 часа
Тут с секундами. 6 позиций.
Время системное. Которое установлено на контроллере. Если настроен часовой пояс, то локальное.
1 лайк
azazzelo:
Cron правила
Это точно из документации к используемой библиотеки?
Выставил в консоли часовой пояс Москвы.
исправил на when: cron(“0 0 0 * * *”),
Все равно не отключает.
Подскажите, пожалуйста, что может быть не так.
А правило, обернутое в функцию точно нужно? Функция откуда-то вызывается? Или достаточно:
defineRule("dailyRelayOff_EXT1_K14", {
when: cron('0 0 0 * * *'),
then: function ()
{
dev["wb-gpio/EXT1_K14"] = false;
}
});
1 лайк
в файле еще таймеры есть.
Убрал функцию, все равно не сработало(
//light in the vestibule
function deviceTimerOff4(deviceName, timerValue){
var timerId = null;
defineRule( “wb-mr6c_105/K6_vestibule” ,{
whenChanged: “wb-mr6c_105/K6”,
then: function (newValue, devName, cellName){
//log.info (“I’m here!”, newValue)
if(newValue) { //Если включилось
if (timerId){ //Если таймер УЖЕ есть
//log.info (“Timer started BEFORE”, newValue)
clearTimeout(timerId); //останавливаем таймер
}
//log.info (“Timer started”, newValue) //Запускаем таймер
timerId = setTimeout(function () { //Начинаем описывать таймер
dev[“wb-mr6c_105/K6”] = false; //выключаем
timerId = null; //Сбрасываем идентификатор отработавшего таймера
}, timerValue);
}
}
})
}
deviceTimerOff4(“wb-mr6c_105/K6”, 300*1000);//время - в миллисекундах
//light in Amilia upper sockets
//function dailyRelayOff_EXT1_K14(deviceName){
defineRule(“dailyRelayOff_EXT1_K14”, {
when: cron(‘0 48 9 * * *’),
then: function ()
{
dev[“wb-gpio/EXT1_K14”] = false;
}
});
Все заработало, большое спасибо за помощь!