Новая страница
Глава 1: Node-RED — Знакомство, развертывание в Docker и интерфейс
Node-RED — это инструмент визуального программирования, разработанный IBM для связывания аппаратных устройств, API и онлайн-сервисов. Вместо написания сотен строк кода на JavaScript/Python, в Node-RED вы строите логику автоматизации графически, соединяя между собой готовые кубики (ноды) линиями-связями.
Для домашнего сервера это идеальный "диспетчер задач": он может мониторить состояние Docker-контейнеров, слать алерты в Telegram, управлять умным домом (Home Assistant) или дергать веб-хуки по расписанию.
1. Развертывание Node-RED через Docker Compose
Запуск Node-RED в Docker гарантирует, что приложение будет изолировано от основной системы Debian, а все его данные, кастомные ноды и потоки сохранятся в одной конкретной папке в вашей директории /home (которую мы, к слову, бэкапим через Restic).
- Создайте папку для проекта в домашней директории:
mkdir -p ~/nodered/data && cd ~/nodered - Выдайте права на папку
dataвнутреннему пользователю Node-RED в Docker (у него ID 1000, как и у вашего пользователя в Debian, но лучше перестраховаться):sudo chown -R 1000:1000 ~/nodered/data - Создайте файл конфигурации Docker Compose:
nano docker-compose.yml - Вставьте в него следующий манифест:
version: '3.8' services: node-red: image: nodered/node-red:latest container_name: node-red environment: - TZ=Europe/Moscow ports: - "1880:1880" volumes: - ./data:/data restart: unless-stopped - Запустите контейнер в фоновом режиме:
sudo docker compose up -d
Теперь откройте браузер и перейдите по адресу: http://IP_ВАШЕГО_СЕРВЕРА:1880. Перед вами откроется рабочая среда Node-RED.
2. Анатомия интерфейса Node-RED
Интерфейс Node-RED лаконичен и разделен на три основные зоны:
- Левая панель (Палитра / Palette): Список всех доступных вам узлов (Nodes). Они разбиты по категориям: input (входные), output (выходные), function (функции для обработки данных), network и т.д.
- Центральная область (Рабочее пространство / Workspace): Место, куда вы перетаскиваете мышкой узлы и соединяете их проводами. Каждая вкладка здесь — это отдельный Поток (Flow).
- Правая панель (Инфо и Отладка / Sidebar): Важнейшая зона. Переключите её на вкладку с иконкой жука (Debug). Сюда будут валиться все логи и сообщения, помогая понять, как работает ваша автоматизация.
3. Главное правило: Кнопка Deploy
ВАЖНО: В отличие от классических программ, Node-RED не применяет изменения на лету. Вы можете нарисовать огромную схему, но она не заработает, пока вы не нажмете ярко-красную кнопку Deploy в правом верхнем углу экрана. Нажали Deploy — логика ушла в память и начала выполняться.
4. Твой первый поток: Hello World за 10 секунд
Давай проверим, что система работает, и поймем базовый принцип передачи данных.
- Найдите на левой панели узел inject (категория input, на нем нарисована кнопка) и перетащите его в центр экрана. Этот узел генерирует событие по нажатию на его кнопку.
- Дважды кликните по нему. В поле Payload выберите тип
string(строка) и напишите "Привет из Node-RED!". Нажмите Done. - Найдите узел debug (категория output, зеленого цвета) и перетащите его правее. Этот узел выводит данные в правую панель отладки.
- Зажмите левую кнопку мыши на сером квадратике (выходе) узла inject и протяните провод к серому квадратику (входу) узла debug.
- Нажмите кнопку Deploy в правом верхнем углу.
- В правой панели откройте вкладку Debug (иконка жука). Нажмите на квадратную кнопку слева от узла inject на схеме.
Результат: В панели отладки мгновенно появится сообщение "Привет из Node-RED!". Вы только что создали и запустили свою первую автоматизацию без единой строчки кода.
Нет комментариев для отображения
Нет комментариев для отображения