Включение реле по времени

Добрый день. Помогите пожалуйста с написание правила включение - выключение реле по времени. Нужно чтобы реле в 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
2 лайка

Добрый день!

Удалось ли решить вопрос?