9/27/2026Чтение займет: 2 минуты

Как за один час научиться работать в Node-RED

Node-RED — это визуальный инструмент программирования для соединения устройств, API и онлайн-сервисов. Вместо написания сотен строк кода вы перетаскиваете узлы в рабочую область и соединяете их. Это идеально для IoT, автоматизации и быстрых прототипов.

Освоив это руководство, вы научитесь:

  • Запускать редактор и разбираться в интерфейсе.
  • Создавать несколько рабочих потоков.
  • Использовать функции, контекст и отладку.
  • А также получите базу для самостоятельного развития.

NR.png

Шаг 1. Запуск и доступ

Начните с самого простого: установите Node-RED в Windows и запустите его. Для этого сначала потребуется установить Node.js. Скачайте его по ссылке: https://nodejs.org/dist/v24.21.0/node-v24.21.0-x64.msi и запустите.

После установки Node.js откройте командную строку (нажмите Win + R, в открывшемся окне введите cmd и нажмите Enter) и проверьте, что Node.js доступен, набрав в командной строке:

node --version && npm --version

01.png

Node.js установлен, теперь для установки Node-RED там же в командной строке Windows наберите:

npm install -g --unsafe-perm node-red

Нажмите Enter. npm — это пакетный менеджер Node.js, который установит программу. Дождитесь конца установки. Когда она закончится, запустите Node-RED, набрав в командной строке:

node-red

И нажмите Enter.

02.png

Не закрывайте окно командной строки Windows!

Теперь откройте браузер и задайте в адресной строке: http://localhost:1880. Откроется окно Node-RED.

03.png

Шаг 2. Знакомство с интерфейсом

Перед вами четыре основные области:

  • Палитра узлов (слева) — список всех доступных узлов, сгруппированных по категориям.
  • Рабочая область (центр) — здесь вы собираете поток.
  • Боковая панель (справа) — вкладки Info (справка), Debug (отладочные сообщения), Context (контекст).
  • Кнопка Развернуть (справа вверху) — развёртывает изменения, чтобы поток заработал.

Узлы соединяются перетаскиванием от выходного порта (справа) к входному (слева).


Шаг 3. Первый поток: Hello World

  1. Найдите в палитре узел inject (категория “общие”). Перетащите его на холст.
  2. Найдите узел debug (в той же категории). Перетащите на холст правее узла inject.
  3. Соедините выход inject со входом debug.
  4. Дважды щёлкните по inject. В поле Payload выберите string и введите Привет, Node-RED!. Нажмите Done.

04.png

  1. Нажмите Развернуть (красная кнопка справа вверху).
  2. Откройте вкладку Отладочные сообщения на боковой панели (иконка жука).
  3. Нажмите на кнопку слева от узла inject (маленький квадрат). В отладке появится сообщение.

05.png

Что произошло? inject отправляет сообщение (объект msg) в поток. debug выводит его в боковую панель. По умолчанию отображается msg.payload.

Логика работы с потоками

Каждый поток (flow) в Node-RED — это небольшая цепочка «кубиков», собранная по принципу: откуда пришло → что сделать → куда отправить. Всегда начинайте с входа (события): это может быть нажатие кнопки (как узел inject), срабатывание датчика, сообщение из Telegram или просто таймер по расписанию. Дальше в цепочке идёт обработка: каждый следующий «кубик» получает данные от предыдущего, что-то с ними делает (проверяет, меняет, фильтрует) и передаёт дальше — как на конвейере. В конце цепочки всегда должен быть результат: отправка уведомления, запись в файл, переключение устройства.


Правило организации потока простое: один поток — одна задача. Не стоит пытаться запихнуть всё в одну длинную цепочку; если задача сложная, разбейте её на несколько маленьких потоков, а данные между ними передавайте через виртуальные связи (link-ноды). Главная ошибка новичков — пытаться писать поток «как программу», где всё перемешано; в Node-RED мыслите потоками данных: задал вопрос «что запускает событие?», дальше «что должно произойти?» — и просто соедините эти шаги линиями.

Шаг 4. Сообщения и обработка данных

Сообщение в Node-RED — это объект, который передаётся между узлами под именем msg. Сообщение имеет свойства (поля), которые задаются через точку. Основное свойство — это msg.payload. Можно добавлять свои поля: msg.topic, msg.temperature и т.д. по вашему усмотрению.

Функция — это универсальный узел, в который можно вписать любое своё правило обработки на языке JavaScript. Давайте посмотрим, как это устроено.

  1. Добавьте на холст узел function (категория «функция»).
  2. Соедините inject → function → debug.
  3. Дважды щёлкните по function. Введите код:
msg.payload = msg.payload * 2;
return msg;

06.png

  1. В узле inject установите payload как число, например 21.
  2. Разверните и нажмите inject. В отладке увидите 42.

07.png

Важно: функция должна вернуть msg, иначе поток остановится.

Контекст

Контекст позволяет хранить данные между сообщениями. Бывает трёх типов: node, flow, global.

Пример: счётчик нажатий.

var count = flow.get('count') || 0;
count += 1;
flow.set('count', count);
msg.payload = 'Нажатий: ' + count;
return msg;

Шаг 5. Полезные узлы и логика

За час вы не изучите все узлы, но вот минимум для старта:

  • change — изменить, удалить или переместить свойство сообщения. Например, установить msg.payload в msg.topic.
  • switch — маршрутизация по условию. Например, если msg.payload > 10, отправить в один выход, иначе в другой.
  • delay — задержка или ограничение скорости.
  • http request — выполнить HTTP-запрос к API.
  • mqtt in / mqtt out — приём и отправка MQTT-сообщений (для IoT).
  • template — сформировать текст с подстановкой значений.

Пример: switch inject (число 5) → switch → два debug. В switch настройте правило: если msg.payload > 3, выход 1, иначе выход 2. Разверните и проверьте.

Шаг 6. Сохранение, экспорт и импорт

  • Все потоки автоматически сохраняются в файле flows.json (обычно в ~/.node-red/).
  • Кнопка Развернуть сохраняет текущее состояние.
  • Чтобы поделиться потоком, выделите нужные узлы (например, левой кнопкой мыши с зажатой клавишей Ctrl на клавиатуре), нажмите Ctrl+C, затем в меню (гамбургер) → Экспорт → Скопировать в буфер обмена. Вы получите JSON.
  • Для импорта: Импорт → вставьте JSON → кнопка Импорт.

Официальная документация: nodered.org/docs.

FAQ: Ответы на частые вопросы

  • В: Как установить дополнительные узлы?
  • О: Перейдите в меню Node-RED в правом верхнем углу, откройте раздел управления палитрой и выберите вкладку установки пакетов. Найдите нужный пакет, ознакомьтесь с его описанием и запустите установку. После этого новые блоки появятся в палитре.
  • В: Где найти информацию об ошибках и причине остановки потока?
  • О: Сначала проверьте боковую панель отладки и окно командной строки, в котором запущен Node-RED. Сообщения об ошибках часто показывают проблемный узел, некорректный формат данных или недоступные подключения. При необходимости изучите логи и официальную документацию проекта.
  • В: Как создавать более сложные проекты и не запутаться в потоках?
  • О: Разделяйте логику на небольшие самостоятельные потоки, используйте понятные названия узлов и добавляйте комментарии. Для обмена данными между удалёнными участками применяйте **link-узлы**, а повторяющиеся операции выносите в отдельные подграфы. Таким образом структура остаётся удобной для обслуживания даже при большом количестве интеграций.
Поделиться новостью:
Поделиться в TelegramПоделиться в ВКонтактеПоделиться в ОдноклассникиПоделиться в Max

Комментарии (0)

Пока нет комментариев. Будьте первым!

Оставить комментарий