Node-RED с узлом Big Timer: Создание сложных расписаний автоматизации

В этом руководстве мы покажем вам, как можно легко создавать сложные расписания автоматизации, используя Node-RED и узел Big Timer. Узел Big Timer предоставляет огромный набор возможностей для работы с таймерами, который выведет вашу автоматизацию на новый уровень: вы можете управлять выходами на основе различных условий времени: часов, минут, дней недели, месяцев, включать/исключать определённые дни или месяцы, основываться на времени заката и восхода солнца, и многое другое.

Node-RED с узлом Big Timer — Создание сложных расписаний автоматизации

После изучения того, как использовать узел Big Timer с Node-RED, вы сможете легко применять функции Big Timer для создания расписаний автоматизации и управления платами ESP32 и ESP8266. Ознакомьтесь с руководствами ниже:

В этом руководстве мы рассмотрим следующие темы:

Установка Node-RED

Логотип 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.

Установка новых узлов в Node-RED

Затем перейдите на вкладку Install и найдите node-red-contrib-bigtimer. Установите этот узел.

Установка Big Timer в Node-RED

Теперь узел Big Timer доступен в вашей палитре на левой боковой панели в разделе advanced.

Узел Big Timer в палитре Node-RED

Перетащите узел bigtimer в поток. Вы заметите, что он имеет один вход и три выхода.

Узел Big Timer в потоке Node-RED

Документация чётко объясняет, что представляет собой каждый выход.

«BigTimer имеет 3 выхода, первый из которых срабатывает при изменении состояния и выводит одно из двух сообщений (для, например, MQTT или другого механизма управления), второй выход имеет тему «status» и содержит простое 1 или 0 каждую минуту в payload, а также имеет дополнительные выходы, отражающие сообщение о состоянии в msg.state, время сообщения и другие данные. Третий выход выводит сообщение, которое может быть использовано для голосового вывода или отладки.»

Вход может использоваться для переопределения свойств расписания. Вы можете проверить допустимые входные команды на странице документации.

Возможности узла Big Timer

Дважды щёлкните по узлу Big Timer, чтобы изучить его свойства.

Свойства узла Big Timer

Big Timer позволяет легко настраивать сложные расписания на основе нескольких условий. Например, у вас есть возможность установить два расписания On Time (время включения) и два расписания Off Time (время выключения). Вы можете выбрать конкретные часы или выбрать: конец дня (day end), рассвет (dawn), сумерки (dusk), солнечный полдень (solarnoon), восход (sunrise), закат (sunset), ночь (night), конец ночи (night end), восход луны (moonrise) и заход луны (moonset).

Выбор времени включения и выключения узла Big Timer

Вы можете настроить время с помощью полей Offset (смещение), чтобы установить срабатывание, например, за 15 минут до восхода солнца.

Первый выход узла Big Timer может быть сообщением для узла MQTT или для любой другой цели. Если вы будете выводить сообщение для узла MQTT, вы можете заполнить поля MQTT topic, On Msg и Off Msg.

Для точного определения восхода, заката и т.д. вы должны указать вашу широту и долготу.

Также есть возможность включить до 12 особых дней в году (например, Рождество) и до 6 особых дней недели в месяце.

Возможности узла Big Timer

Аналогичным образом вы можете исключить особые дни года и/или исключить особые дни недели в месяце.

Включение и исключение особых дней в узле Big Timer

Наконец, у вас также есть все эти другие параметры для включения/исключения определённых месяцев или дней недели, исключения чётных или нечётных дней и т.д.

Исключение особых дней недели в Big Timer

Как видите, существует множество опций для легкой настройки индивидуальных и сложных расписаний.

Тестирование узла Big Timer: Пример потока Node-RED

Давайте быстро протестируем узел Big Timer в Node-RED, чтобы дать вам представление о том, как он работает.

Перетащите узел Big Timer и узел debug в поток. Соедините первый выход Big Timer со входом узла debug.

Пример потока с узлом Big Timer и узлом debug

Дважды щёлкните по узлу Big Timer. Установите On Time (время включения) и Off Time (время выключения), близкие к текущему времени, чтобы вы могли быстро протестировать работу. Определите сообщение, которое должно отправляться на выход при достижении времени включения (ON Msg), и другое — при достижении времени выключения (OFF Msg). Мы устанавливаем сообщения 1 и 0 соответственно.

Заполнение полей узла Big Timer

Дважды щёлкните по узлу debug и установите Output (выход) на complete msg object (полный объект сообщения), чтобы мы могли видеть полный вывод узла Big Timer.

Установка узла debug на complete msg object

Когда всё будет готово, нажмите Deploy (развернуть) для запуска приложения.

Кнопка Deploy в Node-RED

Обратите внимание, что под узлом Big Timer появилось сообщение, указывающее, сколько времени он будет включён или выключен.

Узел Big Timer показывает время до выключения

Откройте окно Debug (отладка), нажав на значок жука в правом верхнем углу.

Открытие окна Debug в Node-RED

Если у вас отмечен флажок Repeat output (повторять вывод) в свойствах Big Timer (что должно быть по умолчанию), вы будете получать полный вывод узла Big Timer в окне отладки каждую минуту. Обратите внимание, что payload-сообщение изменяется в указанное вами время.

Отладка вывода узла Big Timer в Node-RED

Как видите, с помощью узла Big Timer мы можем выводить разные сообщения для времени включения (ON) и для времени выключения (OFF). Затем вы можете использовать это выходное сообщение для управления любым устройством, потоком, системой или событием по вашему желанию.

Заключение

Это был лишь простой пример, показывающий, как использовать узел Big Timer в Node-RED для автоматизации событий на основе времени. Существует гораздо больше возможностей, которые вы можете использовать. Вы также можете использовать вход узла для переопределения текущего состояния включения/выключения, включения ручного/автоматического режима и остановки расписания. Вы найдёте много информации и примеров использования здесь.

Вы можете использовать выход узла Big Timer для отправки сообщений включения и выключения на платы ESP32 и ESP8266 для управления их выходами в определённое время дня или дни недели. Мы рассматриваем это в следующих руководствах: