Node-RED 5.0.4: почему не стоит ставить 5.0.2 или 5.0.3 и что проверить перед обновлением
Node-RED 5.0.4 вышел 30 июля 2026 года после двух быстрых исправлений в тот же день. Версии 5.0.2 и 5.0.3 затронула регрессия JSONata, из-за которой результат выражения мог вести себя не как обычный JavaScript-объект. Одновременно вся ветка Node-RED 5 требует Node.js 22.9 или новее, а рекомендуемой средой является Node.js 24.
.node-red, экспортируйте потоки, проверьте файл credentials, версию Node.js, сторонние nodes, JSONata-выражения, MQTT, Modbus и возможность отката.
Почему за один день вышли Node-RED 5.0.2, 5.0.3 и 5.0.4
Утром 30 июля вышла версия 5.0.2. В ней обновили библиотеку JSONata и добавили очистку сообщений сессионных ошибок перед отображением в редакторе.
После обнаружения изменения поведения JSONata разработчики выпустили 5.0.3 и попытались вернуть предыдущую версию библиотеки. Затем выяснилось, что откат выполнен недостаточно далеко. Через несколько минут вышла 5.0.4 с дополнительным откатом JSONata.
Что именно могло измениться в работе потоков
JSONata используется в Change, Switch и других узлах для преобразования сообщений, фильтрации данных и вычислений. Регрессия затрагивала создаваемые JSONata объекты: они могли возвращаться с нулевым прототипом вместо обычного прототипа JavaScript Object.
[Object: null prototype] { a: 1, b: 2 }
Такой объект выглядит почти как обычный, но у него может отсутствовать метод hasOwnProperty(). Если следующий Function node, пользовательский node или библиотека вызывает этот метод напрямую, поток способен завершиться ошибкой:
TypeError: result.hasOwnProperty is not a function
Какие потоки проверить в первую очередь
- Change nodes с выражениями JSONata, которые формируют новый объект;
- Function nodes, расположенные сразу после JSONata-преобразования;
- потоки, где проверяется
obj.hasOwnProperty(...); - сторонние nodes, получающие объект из Change или Switch;
- формирование JSON для HTTP API, MQTT и баз данных;
- шаблоны, где результат JSONata передаётся в пользовательский JavaScript;
- обработку Modbus-регистров и телеметрии, собираемой в объект.
Как сделать Function node устойчивее
Вместо прямого вызова метода объекта безопаснее использовать вызов через прототип:
Object.prototype.hasOwnProperty.call(obj, "property")
Это полезная общая практика, но она не отменяет обновление Node-RED. Исправлять все функции только ради временной регрессии не требуется, если логика была корректной до обновления.
Node-RED 5 не запускается на Node.js 20
Node-RED 5.0 требует Node.js 22.9.0 или новее. Проект рекомендует Node.js 24, и официальные Docker-образы ветки 5 основаны именно на Node.js 24.
Проверить среду можно командами:
node --version
node-red --version
npm --version
node -v, но и службу, переменную PATH и журнал запуска.
Что изменилось для старых Raspberry Pi
Официальные образы Node.js 24 больше не выпускаются для 32-битной архитектуры ARMv7. Поэтому старые установки на 32-битной системе могут не перейти на Node-RED 5 без обновления операционной системы или замены оборудования.
Разные установки обновляются по-разному
| Установка | Кто управляет Node.js | Основной риск |
|---|---|---|
| Home Assistant Node-RED Add-on | Образ дополнения | Совместимость дополнения, палитры и сохранённого каталога данных. |
| Официальный Docker-образ | Docker-образ | Плавающий тег, неверный том /data и сторонние nodes. |
| Raspberry Pi / Debian script | Операционная система и установочный скрипт | Старая Node.js, systemd использует другой путь, 32-битная ОС. |
| npm global | Пользователь или администратор сервера | Разные версии npm, Node.js и глобальных пакетов. |
| Wiren Board | Debian и выбранный способ установки | Конфликт с пакетами контроллера и критичными сценариями объекта. |
| Proxmox LXC | ОС внутри контейнера | Старый дистрибутив, снимок LXC и доступ к MQTT или Modbus. |
| Windows | Установленная в Windows Node.js | Служба использует старую Node.js или другой каталог пользователя. |
Что сохранить, чтобы восстановить Node-RED
- Весь пользовательский каталог. Обычно это
~/.node-redили каталог/dataвнутри контейнера и дополнения. - Файл потоков. Например,
flows.jsonили файл с именем хоста. - Файл credentials. Храните его вместе с соответствующим файлом потоков и значением
credentialSecret. - settings.js. В нём могут находиться авторизация, HTTPS, ключ шифрования, пути и пользовательские функции.
- package.json и package-lock.json. Они фиксируют установленные сторонние nodes и зависимости.
- Экспорт важных flows. Дополнительная JSON-копия удобна для быстрого просмотра и частичного восстановления.
- Версии. Node-RED, Node.js, npm, Docker-образ, дополнение и сторонние nodes.
- Переменные окружения. MQTT, базы данных, API, TLS и пути к сертификатам.
- Проекты и Git. Проверьте незакоммиченные изменения, ветку и доступ к удалённому репозиторию.
- Способ отката. Предыдущий Docker-тег, snapshot LXC, backup Home Assistant или резервная копия сервера.
Как обновлять Node-RED на разных платформах
Home Assistant Add-on
Создайте полную резервную копию Home Assistant и отдельный экспорт критичных потоков. Обновляйте дополнение через его страницу. Node.js находится внутри образа дополнения, поэтому устанавливать Node.js в Home Assistant OS вручную не нужно.
Docker и Docker Compose
Убедитесь, что каталог /data подключён к постоянному тому. Зафиксируйте предыдущий тег образа, скачайте новый образ 5.0.4 или более новый и пересоздайте контейнер. Не используйте latest, если нужен понятный откат.
Raspberry Pi и Debian
Проверьте Node.js и архитектуру ОС. Официальный скрипт установки поддерживает выбор актуальной Node.js, но перед запуском нужно изучить его параметры и сохранить каталог .node-red. После обновления проверьте, какой бинарный файл Node.js использует systemd.
Wiren Board
Node-RED не должен становиться единственной точкой отказа критичных сценариев. Перед обновлением остановите экспериментальные потоки, сохраните данные и проверьте совместимость выбранного способа установки с Debian и штатными пакетами контроллера. Критичную защиту котла, насоса и электрики нельзя переносить только в Node-RED.
Proxmox LXC или виртуальная машина
Создайте snapshot, затем обновите Node.js и Node-RED внутри гостевой системы. Отдельно проверьте сеть, DNS, MQTT, Modbus TCP и последовательные порты.
Какие потоки нужно протестировать вручную
Проверяйте не только Deploy
Успешный запуск редактора и отсутствие красных узлов не доказывают правильную работу автоматики. Нужно физически проверить свет, реле, котёл, клапан, вентиляцию, ворота или другое оборудование в безопасном режиме.
Что полезного появилось в Node-RED 5
Новый интерфейс редактора
Переработаны боковые панели, навигация и использование рабочего пространства.
Встроенная тёмная тема
Редактор может следовать настройке браузера или использовать выбранный режим.
Разделение панелей
Можно одновременно видеть Debug и другую панель, что упрощает диагностику.
Пауза Debug
Вывод можно временно остановить, чтобы сообщения не прокручивали панель.
node.linkcall
Function node может вызвать Link node и дождаться ответа от переиспользуемого потока.
Burst mode в Delay
Сообщения пропускаются пакетом до достижения лимита, затем блокируются до нового интервала.
Расширенный TLS
Поддерживаются PFX/P12, сертификаты из переменных окружения и настройка SNI.
Усиленная авторизация
Обновлена работа OAuth и удалены прежние CORS-настройки администратора по умолчанию.
Эти функции делают переход полезным, но не требуют обновлять производственную систему без тестов. Надёжность потоков и совместимость nodes важнее нового оформления редактора.
Как откатиться, если Node-RED 5 не запускается
- Остановите Node-RED. Не выполняйте повторные Deploy и автоматическую установку nodes.
- Сохраните журнал ошибки. Он поможет отличить Node.js, JSONata, npm и несовместимый node.
- Верните предыдущую среду. Docker-тег, snapshot, backup дополнения или версию пакета.
- Восстановите пользовательский каталог. Потоки, credentials, settings и package files должны соответствовать сохранённому состоянию.
- Проверьте credentialSecret. Без него сохранённые credentials могут не расшифроваться.
- Установите зависимости. Используйте package-lock и совместимые версии nodes.
- Запустите без Deploy. Сначала изучите журнал и состояние узлов.
- Проверьте критичные сценарии. Только после этого возвращайте автоматический режим.
Что не стоит делать
- обновлять до 5.0.2 или 5.0.3 вместо 5.0.4 и более новой версии;
- обновлять Node-RED 5 на Node.js 20;
- сохранять только экспорт flows без credentials и settings.js;
- использовать плавающий Docker-тег без записи предыдущей версии;
- обновлять все palette nodes одной кнопкой одновременно с Node-RED;
- удалять неизвестные узлы до сохранения списка пакетов;
- обновлять основной контроллер удалённо без человека на объекте;
- переносить критичные защиты только в визуальный поток;
- открывать редактор Node-RED напрямую в интернет;
- публиковать flows и credentials в открытом доступе.
Что полезно изучить перед обновлением
Подробнее: Wiren Board для умного дома, Home Assistant в частном доме, домашний сервер и умный дом, монтаж и настройка умного дома в Туле.
Стоит ли обновляться до Node-RED 5.0.4
Да, если система готова к Node.js 22.9 или новее и проверена совместимость сторонних nodes. Версия 5.0.4 предпочтительнее 5.0.2 и 5.0.3, поскольку содержит более полный откат проблемного изменения JSONata.
Для работающего дома, котельной или коммерческого объекта обновление нужно проводить с резервной копией, тестовым окном и ручным управлением. Особенно внимательно проверяются JSONata, Function nodes, MQTT, Modbus и сценарии, управляющие реальным оборудованием.
Безопасный порядок: backup, проверка Node.js, обновление Node-RED, запуск без массового обновления палитры, тест потоков, затем обновление сторонних nodes по одному.
Node-RED перестал запускаться или выполнять потоки?
Поможем проверить Node.js, Docker или systemd, каталог данных, credentials, сторонние nodes, JSONata, MQTT, Modbus и журнал ошибок. Сначала сохраняем данные и определяем причину, а не пересоздаём потоки наугад.
Выезд и диагностика по Туле от 5000 ₽. Удалённый технический разбор выполняется по согласованной задаче. Стоимость зависит от платформы, числа потоков и состояния резервных копий.
Частые вопросы о Node-RED 5.0.4
Когда вышел Node-RED 5.0.4?
Версия опубликована 30 июля 2026 года.
Почему не стоит использовать Node-RED 5.0.2?
В 5.0.2 обновили JSONata, после чего обнаружилось изменение поведения создаваемых объектов. Разработчики выпустили быстрый откат.
Почему версия 5.0.3 тоже нежелательна?
Первый откат JSONata оказался недостаточно глубоким. Версия 5.0.4 вернула библиотеку дальше.
Какая Node.js нужна для Node-RED 5?
Минимум Node.js 22.9.0. Проект рекомендует Node.js 24.
Нужно ли обновлять Node.js в Home Assistant OS?
Нет. Для Node-RED Add-on среда Node.js находится внутри образа дополнения.
Что сохранить перед обновлением?
Пользовательский каталог, flows, credentials, settings.js, package.json, package-lock.json, переменные окружения и предыдущую версию среды.
Могут ли пропасть пароли после восстановления?
Да, если восстановить файл credentials без соответствующего credentialSecret или без связанного файла потоков.
Нужно ли обновлять все сторонние nodes?
Нет. Сначала обновляют Node-RED и проверяют систему. Сторонние nodes безопаснее обновлять по одному с тестированием зависимых потоков.
Поддерживается ли Node-RED 4?
Ветка 4 находится в режиме сопровождения и должна завершить поддержку 31 декабря 2026 года.
Можно ли использовать Node-RED для защиты котла или электрощита?
Node-RED может участвовать в мониторинге и сценариях, но не должен заменять штатные защиты, автоматику безопасности и ручное управление оборудования.

