Добрый день. Помогите пожалуйста с написание правила включение - выключение реле по времени. Нужно чтобы реле в 6 вечера включалось, а в 6 утра выключалось. На пример такое реле wb-mr6c_113/K1
Оно?
Может и оно, я просто в этом вообще не понимаю.
Подскажите как сюда это реле прикрутить wb-mr6c_113/K1, чтобы оно срабатывало
Настоятельно рекомендую почитать про то как пишутся правила и пр.
В противном случае у вас будет много разных проблем “на ровном месте”.
Правило для вас (вашей задачи).
defineRule('Svet', {
when: cron('*/30 * * * *'), // каждые 30 секунд..
then: function () { // ..вызываем функцию
var currentTime = new Date(); // получить и сохранить в переменную currentTime текущее системное время контроллера
var currentHours = currentTime.getUTCHours() + 3; // сохранить в переменную currentHours значение часа из currentTime + 3 часа (корректировка часового пояса на +3 часа для MSK. PS Если это нужно)
var currentMinutes = currentTime.getUTCMinutes(); // сохранить в переменную currentMinutes значение минут из currentTime (если нужно будет оперировать не только "часами", но и "минутами")
if ( currentHours >= 6 && currentHours <= 18 ) // если число "часов" больше или равно 6 и меньше или равно 18, т.е. текущее время от 6:00 до 18:59
{
log("Сейчас День = ", currentHours); // Вывести в лог текст "Сейчас День =" и число "часов"
dev["wb-mr6c_113/K1"] = true; // включить (true) реле wb-mr6c_113/K1
} else{ // иначе (т.е. вне диапазона 6..18 часов, от 19:00 до 5:59 )
log ("Сейчас Ночь = ", currentHours) // Вывести в лог текст "Сейчас Ночь =" и число "часов"
dev["wb-mr6c_113/K1"] = false; // выключить (false) реле wb-mr6c_113/K1
}
}
});
// после отладки правила и проверки его работоспособности строчки с log() можно отключить (удалить или поставить перед ними // ) чтобы не забивать лог файл контроллера ненужной информацией
Постарался максимально подробно прокомментировать каждую строчку этого правила, чтобы у вас возникло понимание того , что и как здесь работает.
Обратите внимание, что оператор if() в данном примере сравнивает “цифру часов” - т.е. 18:59 для данного случае будет восприниматься как “18”
Поэтому “меньше или равно 18” включает в себя и 18:59.
Если хотите чтобы реле выключалось после 18 часов (т.е. в 18:00), то исправьте условие у оператора if на
if ( currentHours >= 6 && currentHours < 18 ) // если число "часов" больше или равно 6 и меньше 18, т.е. текущее время от 6:00 до 17:59
Добрый день!
Удалось ли решить вопрос?