Node-RED в RealIoT используется не только для сложных сценариев, но и для работы с виртуальными устройствами, историей, расписаниями, уведомлениями и MQTT-потоками. Это основной инструмент, когда логика уже выходит за рамки обычных If-Else сценариев.
Как открыть Node-RED
Node-RED встроен в систему и открывается из интерфейса RealIoT.
- Откройте рабочее поле.
- Перейдите в раздел сценариев.
- Нажмите кнопку Node-RED.
Актуальные узлы RealIoT
В палитре realiot доступны узлы для чтения состояний, управления устройствами, истории и виртуальных сущностей.
Узлы устройств и состояний
- mqtt input — реагирует на изменение состояния устройства.
- state trigger — триггер для запуска потока по условию.
- device state — получить текущее состояние одного устройства.
- get multi — получить состояния нескольких устройств сразу.
- actuator — отправить команду устройству.
- multi actuator — отправить команды нескольким устройствам.
Узлы истории и ожидания
- get history — получить исторические точки параметра.
- history stats — агрегировать историю: минимум, максимум, среднее и другие показатели.
- wait until — ждать, пока устройство перейдёт в нужное состояние.
- schedule link — читать состояние расписания из рабочего поля.
Узлы виртуальных устройств
- virtual switch — виртуальный переключатель.
- virtual number — виртуальное числовое значение.
- virtual sensor — виртуальный датчик для передачи произвольного параметра в UI.
- thermostat — логика для виджета VirtualThermostat.
- db-writer — запись вычисленных значений обратно в интерфейс и базу.
Узлы сообщений
- telegram — отправка Telegram сообщений.
- email — отправка email.
- sms — отправка SMS.
Что обязательно заполнить
- Рабочее поле — имя рабочего поля.
- Device SN — точный идентификатор устройства или виджета.
Если одно из этих полей заполнено неверно, узел не найдёт устройство и поток не будет работать.
Типовые потоки
- В mqtt input укажите датчик и параметр
occupancyили другой нужный параметр. - В switch проверьте значение
trueилиon. - В actuator отправьте
onна нужное реле.
Чтобы сделать задержку выключения, добавьте стандартный узел delay:
Так удобно делать автоотключение света, вентиляции, сирены или кратковременный импульс управления.
Для чтения расписания используйте schedule link. Он берёт данные из виджета Virtual Schedule.
- Укажите поля
Рабочее полеиDevice SNрасписания. - На выходе доступны текущее состояние
on/offи информация о следующем событии. - Редактирование интервалов выполняется на рабочем поле, а не внутри узла.
Для климатической логики используется связка:
Подробная логика виджета описана на странице VirtualThermostat.
- virtual switch — для режимов типа «Авто/Ручной».
- virtual number — для уставок и числовых параметров.
- virtual sensor + db-writer — для вывода вычисленных значений в интерфейс.
Это особенно удобно для статусов, расчётных величин и промежуточных логических флагов.
История и аналитика в потоках
Если у параметра включено хранение истории, Node-RED может работать с архивом напрямую:
- get history — выгружает сырые исторические данные.
- history stats — считает агрегаты по окну времени.
- Дальше можно использовать стандартные узлы function, switch, change, template.
Полезные стандартные узлы
- inject — периодический запуск потока.
- switch — развилка по условиям.
- change — преобразование структуры
msg. - function — JavaScript логика.
- delay — задержка, rate limit и буферизация.
- debug — проверка, что именно выходит из узла.
Сохранение и перенос flow
После любых изменений нажимайте Deploy.
- Для резервной копии откройте меню Export и сохраните JSON flow.
- Для переноса используйте меню Import.
- После импорта обязательно проверьте значения полей
Рабочее полеиDevice SN.
Типичные проблемы
- Опечатка в имени рабочего поля.
- Неправильный
Device SN. - Забыт Deploy после изменения flow.
- Выбран не тот параметр устройства.
- История не включена, но поток пытается читать архив.
✅ Node-RED в RealIoT готов к работе
Используйте Node-RED для сложной логики, виртуальных устройств, истории и интеграций, а простые автоматизации оставляйте в обычных сценариях If-Else.