Иллюстрация GrowerHub: Node-RED flow управляет MQTT-поливом с лимитами

Node-RED удобен для сборки сценариев полива: MQTT-входы, условия, задержки, команды реле, уведомления и логирование соединяются визуально. Это сильный инструмент для тех, кто понимает поток данных. Но именно из-за гибкости Node-RED легко превратить автополив в непрозрачную схему, где непонятно, почему насос включился.

Для растений Node-RED лучше использовать как слой сценариев, а не как место, где спрятаны все знания о зоне. GrowerHub должен видеть события и причины: датчик ниже порога, лимит проверен, насос включен на 20 секунд, остановлен по таймеру, протечки нет.

Где Node-RED полезен

Node-RED хорош для объединения источников: MQTT от ESP32, Zigbee2MQTT, Home Assistant state, webhook, расписание и уведомления. Он удобен для прототипов и сложных условий: например, полив разрешен только утром, если влажность ниже порога два измерения подряд, нет протечки и с прошлого запуска прошла пауза.

Он также полезен для интеграции с внешними каналами: Telegram, email, локальные файлы, HTTP API. Но каждое действие должно оставлять событие в GrowerHub или другом журнале.

Где Node-RED опасен

Опасность начинается, когда flow становится единственным местом безопасности. Если там забыли обработать потерю датчика, старое MQTT-сообщение может запустить насос. Если нет отдельного stop-таймера, реле может остаться включенным. Если flow изменили без комментария, диагностика превращается в просмотр узлов.

Критичные ограничения должны быть явными: максимальная длительность, пауза, суточный лимит, протечка, сервисный режим. Лучше дублировать stop-ограничение ближе к контроллеру, чем полагаться только на длинный flow.

Структура flow

Разделяйте flow на блоки: входные данные, проверка свежести, условия полива, лимиты, команда, подтверждение, журнал. Не смешивайте обработку датчика и команду насоса в одном узле без понятного имени. Добавляйте debug только для отладки, а постоянные события отправляйте в журнал.

MQTT-топики должны быть спроектированы заранее. Статья MQTT-автополив предлагает разделение состояния, команд, availability и событий.

Тестирование

Перед реальным поливом тестируйте flow на сухом запуске: команда не включает насос, а пишет событие. Затем проверьте отказ датчика, протечку, повторное сообщение, рестарт Node-RED и пропадание интернета. Если после рестарта flow забывает состояние последнего полива, пауза между запусками может нарушиться.

Надежность без интернета описана в статье надежность автоматизации без интернета.

Вывод

Node-RED отлично подходит для сценариев полива, если flow прозрачен, тестируем и пишет события. Не прячьте безопасность в неочевидных узлах. Для GrowerHub важен журнал причин и результатов, иначе визуальная схема станет еще одним черным ящиком.