У нас в доме стоит старенький электрокотёл, который верой и правдой отапливал дом еще с незапамятных времен. Котёл добротный – шесть трубчатых электронагревателей (ТЭНов) под чугунным боком, никаких тебе «умных» функций, только автоматы, с помощью которых включаются и отключаются тены. Конечно, ни о каком расписании или удаленном управлении речи не шло: либо включен и жарит на полную, либо ты мёрзнешь, если забыл вовремя щелкнуть выключателем. Хотелось комфорта и контроля – чтобы котёл сам поддерживал температуру, не сжигал лишнего электричества и, желательно, подружился с современными технологиями.
Старый динозавр в ожидании апгрейда: цилиндрический бак электрокотла с шестью ТЭНами (под 3 тена с каждой стороны). Видно, что возраст и ржавчина берут своё, но мы всё равно попытаемся сделать его умным.
Решено – будем модернизировать дедушку-котёл! План такой: оснастить каждый из шести ТЭНов отдельным умным реле с датчиком, подключить их к Home Assistant, а логику управления запрограммировать в Node-RED. Звучит просто… в теории. Как это реализовывалось на практике – делюсь опытом, со всеми успехами, граблями и лайфхаками.
Оборудование
Для модернизации пригодились следующие компоненты:
Электрокотёл – непосредственно отопительный котёл советского закала. Шесть нагревательных элементов суммарной мощностью около 18–20 кВт, подключенных по схеме звезды на три фазы (по двум ТЭН на фазу).
Реле Sonoff PWR320D – умные Wi-Fi реле на DIN-рейку с током до 20 А (каждый спокойно тянет один 4-кВт ТЭН). У них есть встроенный мониторинг потребляемой мощности и небольшой экран. Таких понадобилось 6 штук – по одному на каждый ТЭН, чтобы иметь возможность управлять нагревателями индивидуально.
Реле Sonoff THR320D Elite – умное Wi-Fi реле на DIN-рейку с током до 20 А и контролем температуры - потребуется собственно для контроля температуры и включения/выключения насоса отопления.
Home Assistant – мозг умного дома (развернут на Proxmox VE на отдельной виртуальной машине в инсталляции HassOS). Через него реле Sonoff интегрируются в систему, и с его помощью можно получать показания и отправлять команды на наши нагреватели.
Node-RED – визуальный редактор автоматизаций, установлен как дополнение к Home Assistant. В нем реализована логика работы котла: когда и сколько ТЭНов включать, исходя из температуры и прочих условий.
Датчик температуры Sonoff DS18B20 – цифровой термометр, прикрепленный к трубе выхода горячей воды из котла. Он следит за температурой воды/теплоносителя, чтобы Node-RED знал, когда нагревать, а когда притормозить. Сам датчик подключен к Sonoff THR320D Elite.
Удлинитель датчика температуры Sonoff DS18B20 на 5 метров – потребовался, чтобы дотянуть датчик до котла.
Конечно, помимо этого потребовались всевозможные мелочи: монтажный шкаф и DIN-рейка, автоматические выключатели на каждую линию, провода, изолента, термоусадка – все для безопасной установки электроники в щиток.
Подключение реле к Home Assistant
Начал модернизацию с самого очевидного: установка умных реле на котёл. Каждое реле Sonoff PWR320D разместил в электрощите рядом с автоматами. Подключение по электронике вышло относительно прямым: каждый тен отсоединил от старой схемы и завел через контакты своего Sonoff (фаза через реле, ноль общий). Таким образом, любое реле может включить или выключить питание конкретного нагревательного элемента. Шесть элементов – шесть независимых каналов нагрева. Перед окончательной сборкой проверил, что токи и сечения проводов соответствуют мощностям: ~4,5 кВт на ТЭН (~10 А) – реле рассчитаны на 20 А (кратковременно до 25 А), так что запас есть. Главное – затянуть винты клемм покрепче, чтобы ничего не грелось.
Далее – интеграция в Home Assistant. Реле Sonoff подключаются к домашней Wi-Fi сети и через облако eWeLink могут управляться со смартфона. Но мне нужен локальный и более гибкий контроль, поэтому я добавил их напрямую в Home Assistant.
Вариантов несколько: можно прошить альтернативную прошивку (Tasmota/ESPHome) или использовать готовый интеграционный компонент Sonoff LAN. Я пошёл по простому пути – использовал компонент, который позволил привязать реле в Home Assistant без танцев с бубном.
После нехитрых манипуляций все шесть устройств появились в системе: каждому присвоилось по сущности типа switch (переключатель) и набор датчиков (мгновенная мощность, напряжение, ток и счётчик кВтч). Естественно, сразу переименовал их в осмысленные названия – чтобы не потеряться в куче одинаковых «Sonoff Switch». Маркером подписал номера и на самих модулях в щитке, как видно на фото, для наглядности: куда какой провод идет.
Очень важно - реле ставятся обязательно ПОСЛЕ автоматов, без автоматов их ставить категорически запрещено!
Когда подключил первые пару модулей и убедился, что Home Assistant их видит и управляет без проблем, произвёл окончательный монтаж всех шести. Получилась вот такая картина:
Итоговая компоновка: 6 штук Sonoff PWR320D (помечены номерами 16–21) плотно обосновались на DIN-рейке. Номером 27 помечено реле Sonoff THR320D Elite, измеряющее температуру котла. Цифрами 10-15 помечены автоматы, защищающие тены котла.
Важный нюанс – датчик температуры. Поскольку изначально никакого электронного термометра в котле не было, пришлось исхитриться. Я использовал популярный герметичный цифровой датчик DS18B20. Но как его присобачить к старому баку, не врезая новых гильз? Решение народное: примотать датчик снаружи к трубопроводу как можно ближе к выходу котла, утеплив место замера. Немного вспененного полиэтилена, сверху чёрная изолента – и вот уже импровизированный термоколодец готов. Да, точность хуже, чем погружного датчика (показывает чуть ниже реальной температуры воды), зато установка без разгерметизации системы.
Тот самый датчик DS18B20, примотанный к патрубку котла. Под слоем изоленты и фольгированного утеплителя прячется маленький металлический цилиндрик – датчик температуры. Способ колхозный, зато работает: Node-RED получает примерно правильную температуру.
На этом железная часть закончена: котёл физически подключен к «умному» управлению. Теперь самое интересное – научить его работать автоматически по заданным правилам.
Node-RED и с чем его едят
Простейший способ управлять отоплением – использовать штатные автоматизации Home Assistant (например, интеграцию generic_thermostat). Но в нашем случае шесть нагревателей – система посложнее банального включения-выключения. Хотелось реализовать нечто более умное: например, при небольшом отклонении температуры включать не все сразу, а пару ТЭНов, чтобы не гонять котёл на полную, или поочередно задействовать разные элементы, чтобы ресурсы фаз расходовались равномерно. Для таких экспериментов идеально подошёл Node-RED – графический редактор сценариев, где можно накидать любые логические цепочки.
В Node-RED я создал отдельный поток автоматизации для котла. Общая логика: следить за температурой воды и помещений в доме и поддерживать её в диапазоне, включая нужное число ТЭНов. Общая схема реализованной автоматизации ниже.
Настройка Node-Red
Мы реализуем логику через поток Node-RED, состоящий из нескольких узлов (nodes).
Узел (node) в Node-RED — это блок, который выполняет конкретное действие.
Можно сказать, что узлы — это "кирпичики", из которых строится вся логика потока.
свою функцию (например, получить данные, сделать проверку, отправить команду),
входы (куда приходят сообщения),
выходы (куда узел отправляет обработанные сообщения).
Ниже таблица с используемыми в нашей автоматизации типов узлов (@SupportTech, а таблицы когда будут?)
Если описывать получившуюся картину крупными мазками - наша автоматизация делится на дневную и ночную, поскольку у нас двухтарифный счетчик отопления, и отопление работает в основном ночью (с 23.00 до 07.00)
Ночная ветка управления отоплением
Что происходит:
Каждые 5 минут происходит запуск проверки условий через inject-узел.
Проверяются следующие параметры:
Подробно по шагам:
1. Проверка времени суток
Узел Time Range Switch — определяет, сейчас ночь или день.
Если ночь — запускается ночная логика (эта ветка).
2. Проверка температуры котла и помещений
Узел Current State — получаем температуру котла.
Если температура в спальне ≤ 25 °C и на кухне < 27 °C, запускается нагрев.
Иначе ничего не делаем.
3. Проверка активной сессии
Узел Function — если переменная heating_active == "true", значит уже идёт нагрев, повторно запускать не нужно.
Функция используется следующая:
if (flow.get("heating_active") === "true") {
// Уже запущено, пропускаем
return null;
}
return msg;
4. Какой нагрев запускать?
5. Включение ТЭНов
Сначала выключаются все ТЭНы (на всякий случай, чтобы исключить наложение сценариев). Используем узел call service, вызываем сервис switch.turn_off
Затем с небольшой задержкой (5-10 секунд) ТЭНы включаются один за другим:
Для группы 3.5 кВт: три ТЭНа, фаза A → фаза B → фаза C.
Для группы 2.7 кВт: три ТЭНа, фаза A → фаза B → фаза C.
После каждого включения ТЭНа проверяется его статус (узел current state) — если включение не произошло, повторяем попытку.
6. Завершение
Дневная ветка управления отоплением
Что происходит:
Каждые 5 минут происходит запуск проверки условий через inject-узел.
Проверяются:
Подробно по шагам:
1. Проверка времени суток
2. Проверка температуры котла
3. Проверка мощности котла
4. Проверка температуры в спальне
5. Защита от повторного старта
Узел Function — проверяем переменную heating_active. Функция та же, что и в ночном режиме.
Если она уже установлена в "true" — отопление уже активно, повторный старт блокируется.
6. Последовательность действий
Узел Change — устанавливаем переменную heating_active = true.
Далее система:
Выключает все ТЭНы.
Выдерживает паузу (5 секунд).
Включает один ТЭН мощностью 2.7 кВт на фазе B.
В дневное время включается минимально возможная нагрузка, чтобы лишь слегка подогревать систему при необходимости.
7. Завершение
Условия отключения отопления
Когда выполняется проверка:
Что именно проверяется:
Температура котла
Мощность котла
Температура на кухне
Температура в спальне
Температура в кабинете
Что происходит при выполнении любого условия:
Это нужно для того, чтобы следующая попытка включения могла начаться только если отопление действительно отключено и не конфликтовало с уже работающей сессией.
Специальные выключения по расписанию:
07:00 каждый день — выключение всех ТЭНов в начале дня перед началом дневного режима.
23:00 каждый день — выключение всех ТЭНов перед началом ночного режима.
Ручное выключение — можно отправить сигнал вручную через отдельный inject-узел.
Краткая суть:
Любое превышение температурных или мощностных порогов → полное отключение всех ТЭНов и остановка активной сессии нагрева.
После настройки всех узлов и дебага (о котором ниже) мне удалось добиться желаемого: котёл сам включается и отключается по заданному алгоритму. На панели Home Assistant я вижу текущую температуру и статус каждого из шести ТЭНов, а при желании могу вручную вмешаться – например, принудительно выключить некоторые, если нужно ограничить потребление, или наоборот, включить все, если вдруг резко похолодало.
Дашборд Home Assistant, отвечающий за отопление
Проблемы и грабли
Не всё шло гладко с первого раза. Поделюсь парочкой моментов, где пришлось попрыгать через грабли (и посмеяться потом):
Ребалансировка фаз – не взлетела. Идея звучала круто: чтобы электроэнергия расходовалась равномерно по фазам, я задумал поочередно менять, какие ТЭНы включаются первым делом. Мол, в одном цикле греть фазой A, в следующем – фазой B и так далее, чтобы суммарно каждая фаза нагружалась одинаково. Node-RED я даже настроил что-то вроде кругового выбора: если надо включить только 1–2 нагревателя, он чередовал их между разными фазами. На практике же эта затея скорее усложнила сценарий, чем принесла пользу. Котёл-то в любом случае потребляет немало, и при длительной работе выравнивание получилось чисто символическим. Зато усложненный код начал временами чудить: то забывал включить какой-то элемент, то наоборот забывал вовремя выключить. В итоге, после пары холодных утра и тёплых ночей (когда автоматизация решила «передохнуть»), я убрал эту фичу и оставил логику попроще. Как говорится, не пытайтесь оптимизировать то, что и так работает – и всё будет хорошо. 🙂
Отладка и внезапные баги. Писать логические цепочки на Node-RED было увлекательно, но первый блин вышел комом. Например, я создал цикл, в котором одна часть потока включала нагрев, а другая сразу его выключала из-за неправильно установленного условия гистерезиса. В результате котёл начал моргать: щёлкал реле туда-сюда каждую секунду, устроив настоящую светомузыку в щитке! Хорошо, вовремя заметил в логах аномалию (да и по звуку реле догадался) – быстренько исправил логику, введя задержки и скорректировав условия. Ещё один раз ошибся с именами сущностей в Home Assistant – Node-RED просто не смог включить отопление утром, потому что искал несуществующее имя устройства. Проснулся я в холодной комнате и понял, что умному дому тоже нужны проверки – после того случая добавил оповещение: если температура падает ниже критической и ничего не включилось, система шлёт мне тревожное уведомление. Теперь я сплю спокойно (и в тепле).
Конечно, были и мелочи: набивал шишки с настройками Node-RED Dashboard (планировал красивую панельку управления котлом – сделал, но потом понял, что ей почти не пользуюсь), долго возился с калибровкой датчика (пару градусов сдвига компенсировал в настройках), разбирался, как построить график потребления электроэнергии этими ТЭНами. Но то уже будни домашней автоматизации – не столько проблемы, сколько рабочие моменты, зато сейчас можно друзьям показывать графики и хвастаться, как “ИИ управляет котельной” 😉.
Выводы
Стоила ли игра свеч? Определенно, да – по крайней мере для такого любителя технологий, как я. Теперь у меня котёл не просто древний металлический бак, а часть умного дома: сам поддерживает комфортную температуру, я могу наблюдать за его работой из любого места (красота – лежишь вечером на диване, смотришь в телефон: температура воды 48°C, потребляемая мощность 5 кВт, – и никакого беготни в подвал!). Можно настроить расписание по времени или удаленно выключить котёл, если уехал на выходные. К тому же, я получил ценнейший опыт в Home Assistant и Node-RED, разобрался глубже в электрической части своего дома.
С точки зрения экономии денег – вопрос спорный. Сами по себе реле, датчики, контроллеры стоят денег и окупятся не сразу. Но определенная оптимизация получилась: котёл теперь не перегревает лишний раз воду, не молотит впустую всю ночь – а включается по потребности. Думаю, это снизит счета за электричество в долгосрочной перспективе. Плюс мониторинг показал, сколько реально киловатт он съедает – раньше-то мы этого даже не знали точно, а сейчас я вижу расход в кВт·ч в HA и могу проанализировать.
Что бы я улучшил теперь? Наверное, избавился бы от избыточной сложности. Шесть раздельных реле – гибко, но можно было обойтись и меньшим количеством ступеней нагрева. Возможно, стоило изначально использовать более мощные контакторы по фазам (3-фазные реле) и управлять ими через один-два Sonoff – схема была бы проще. Ещё из идей – добавить второй датчик температуры на обратку или в сам бак, чтобы контролировать перегрев точнее. Но это всё на будущее.
В целом же я доволен результатом: старый электрокотёл успешно проапгрейжен. Теперь он сочетает в себе надежность советского агрегата и удобство современного умного устройства. 🎉 Если у вас в подвале тоже скучает какой-нибудь раритет без мозгов – знайте, приделать ему «ум» своими руками вполне реально. Было бы желание, Wi-Fi и парочка свободных вечеров!
Совет для тех, кто хочет повторить наш путь
Система управления котлом, которую мы построили в Node-RED, — это довольно сложный проект. Он включает десятки условий, проверок, переключений, планировщиков, автоматических защит и оптимизаций. Чтобы прийти к такому уровню, потребовались опыт, время и множество итераций.
Поэтому совет для новичков:
Не стремитесь сразу строить многоуровневую автоматику с кучей взаимосвязанных условий. Это приведёт только к запутанному потоку, ошибкам и разочарованию.
Сделайте простую схему: например, включить реле при температуре ниже 20°C и выключить выше 22°C.
Добавьте проверку времени суток: греть только ночью.
Потом — защиту от перегрева.
Потом — балансировку нагрузок.
И так далее...
Каждый маленький рабочий кусок даёт опыт, понимание принципов Node-RED и уверенность в собственных силах.
Только после этого можно переходить к сложным сценариям типа нашего.
🚀 Стройте систему так, чтобы вы сами через полгода могли легко понять, что она делает.
Комментарии в узлах, чистая структура, понятные названия — всё это будет спасать от головной боли в будущем.
Если будут вопросы - пишите!
Буду рад, если поддержите мою деятельность рублем и накидаете ещё идей для новых статей)