Node-RED с узлом Big Timer: Создание сложных расписаний автоматизации
В этом руководстве мы покажем вам, как можно легко создавать сложные расписания автоматизации, используя Node-RED и узел Big Timer. Узел Big Timer предоставляет огромный набор возможностей для работы с таймерами, который выведет вашу автоматизацию на новый уровень: вы можете управлять выходами на основе различных условий времени: часов, минут, дней недели, месяцев, включать/исключать определённые дни или месяцы, основываться на времени заката и восхода солнца, и многое другое.
После изучения того, как использовать узел Big Timer с Node-RED, вы сможете легко применять функции Big Timer для создания расписаний автоматизации и управления платами ESP32 и ESP8266. Ознакомьтесь с руководствами ниже:
ESP32: События на основе времени с использованием Node-RED и Big Timer
ESP8266: События на основе времени с использованием Node-RED и Big Timer
В этом руководстве мы рассмотрим следующие темы:
Установка Node-RED
Прежде чем продолжить, вам необходимо установить Node-RED. Вы можете установить Node-RED локально на свой компьютер, на Raspberry Pi или на облачный сервер. Ознакомьтесь с одним из следующих руководств для установки Node-RED:
Узел Big Timer
Узел Big Timer для Node-RED предоставляет огромный набор возможностей для работы с таймерами, который выведет вашу автоматизацию на новый уровень. Например, вы не хотите, чтобы ваши уличные светильники включались в 18:00, — вы хотите, чтобы они включались, когда стемнеет. Узел Big Timer может использовать вашу широту и долготу для оценки времени заката и восхода солнца и включать/выключать свет соответственно.
Узел Big Timer, созданный Питером Скаргиллом (Peter Scargill), — это мощный и простой в использовании узел таймера для Node-RED. Мы рекомендуем ознакомиться со страницей Big Timer в блоге Питера Скаргилла: страница Big Timer.
Установка узла Big Timer в Node-RED
Чтобы установить узел Big Timer, перейдите в главное меню в правом верхнем углу и нажмите Manage Palette.
Затем перейдите на вкладку Install и найдите node-red-contrib-bigtimer. Установите этот узел.
Теперь узел Big Timer доступен в вашей палитре на левой боковой панели в разделе advanced.
Перетащите узел bigtimer в поток. Вы заметите, что он имеет один вход и три выхода.
Документация чётко объясняет, что представляет собой каждый выход.
«BigTimer имеет 3 выхода, первый из которых срабатывает при изменении состояния и выводит одно из двух сообщений (для, например, MQTT или другого механизма управления), второй выход имеет тему «status» и содержит простое 1 или 0 каждую минуту в payload, а также имеет дополнительные выходы, отражающие сообщение о состоянии в msg.state, время сообщения и другие данные. Третий выход выводит сообщение, которое может быть использовано для голосового вывода или отладки.»
Вход может использоваться для переопределения свойств расписания. Вы можете проверить допустимые входные команды на странице документации.
Возможности узла Big Timer
Дважды щёлкните по узлу Big Timer, чтобы изучить его свойства.
Big Timer позволяет легко настраивать сложные расписания на основе нескольких условий. Например, у вас есть возможность установить два расписания On Time (время включения) и два расписания Off Time (время выключения). Вы можете выбрать конкретные часы или выбрать: конец дня (day end), рассвет (dawn), сумерки (dusk), солнечный полдень (solarnoon), восход (sunrise), закат (sunset), ночь (night), конец ночи (night end), восход луны (moonrise) и заход луны (moonset).
Вы можете настроить время с помощью полей Offset (смещение), чтобы установить срабатывание, например, за 15 минут до восхода солнца.
Первый выход узла Big Timer может быть сообщением для узла MQTT или для любой другой цели. Если вы будете выводить сообщение для узла MQTT, вы можете заполнить поля MQTT topic, On Msg и Off Msg.
Для точного определения восхода, заката и т.д. вы должны указать вашу широту и долготу.
Также есть возможность включить до 12 особых дней в году (например, Рождество) и до 6 особых дней недели в месяце.
Аналогичным образом вы можете исключить особые дни года и/или исключить особые дни недели в месяце.
Наконец, у вас также есть все эти другие параметры для включения/исключения определённых месяцев или дней недели, исключения чётных или нечётных дней и т.д.
Как видите, существует множество опций для легкой настройки индивидуальных и сложных расписаний.
Тестирование узла Big Timer: Пример потока Node-RED
Давайте быстро протестируем узел Big Timer в Node-RED, чтобы дать вам представление о том, как он работает.
Перетащите узел Big Timer и узел debug в поток. Соедините первый выход Big Timer со входом узла debug.
Дважды щёлкните по узлу Big Timer. Установите On Time (время включения) и Off Time (время выключения), близкие к текущему времени, чтобы вы могли быстро протестировать работу. Определите сообщение, которое должно отправляться на выход при достижении времени включения (ON Msg), и другое — при достижении времени выключения (OFF Msg). Мы устанавливаем сообщения 1 и 0 соответственно.
Дважды щёлкните по узлу debug и установите Output (выход) на complete msg object (полный объект сообщения), чтобы мы могли видеть полный вывод узла Big Timer.
Когда всё будет готово, нажмите Deploy (развернуть) для запуска приложения.
Обратите внимание, что под узлом Big Timer появилось сообщение, указывающее, сколько времени он будет включён или выключен.
Откройте окно Debug (отладка), нажав на значок жука в правом верхнем углу.
Если у вас отмечен флажок Repeat output (повторять вывод) в свойствах Big Timer (что должно быть по умолчанию), вы будете получать полный вывод узла Big Timer в окне отладки каждую минуту. Обратите внимание, что payload-сообщение изменяется в указанное вами время.
Как видите, с помощью узла Big Timer мы можем выводить разные сообщения для времени включения (ON) и для времени выключения (OFF). Затем вы можете использовать это выходное сообщение для управления любым устройством, потоком, системой или событием по вашему желанию.
Заключение
Это был лишь простой пример, показывающий, как использовать узел Big Timer в Node-RED для автоматизации событий на основе времени. Существует гораздо больше возможностей, которые вы можете использовать. Вы также можете использовать вход узла для переопределения текущего состояния включения/выключения, включения ручного/автоматического режима и остановки расписания. Вы найдёте много информации и примеров использования здесь.
Вы можете использовать выход узла Big Timer для отправки сообщений включения и выключения на платы ESP32 и ESP8266 для управления их выходами в определённое время дня или дни недели. Мы рассматриваем это в следующих руководствах: