На даче у нас газовый котёл, бак горячей воды и четыре радиатора. Звучит как набор, который давно должен работать сам по себе: поставил комнатный термостат, выставил 22 градуса — и забыл. Так и было. Только комната при этом жила своей жизнью: то 21, то 23,5, котёл щёлкал розжигами, а на кухне под утро становилось зябко.
Эта статья — о том, как мы довели отопление до состояния, когда в комнате держится ровно столько, сколько выставлено, котёл не дёргается по пустякам, горячая вода есть всегда, а лишнее тепло не уходит туда, где его никто не просил. Главную роль тут сыграли наши термоголовки POK020 — но не в той роли, для которой обычно покупают термоголовку.
Дом, в котором тепла нужно немного
Дом небольшой. Комната около десяти квадратов с двумя окнами на запад, кухня с окном на север и веранда с окнами на восток, где стоят котёл и бак горячей воды. Бак греет та же вода из котла, что идёт в батареи, — так что котлу приходится делить тепло между отоплением и баком (об этом ниже). Перегородка между комнатой и кухней лёгкая, тепло через неё перетекает свободно; между кухней и верандой — кирпич с тонким утеплением. Сверху холодный чердак, одна стена глухая, за ней неотапливаемое помещение. В комнате два радиатора, на кухне и на веранде — по одному.
Когда мы посчитали теплопотери (а потом проверили их на реальных данных, об этом ниже), получилось, что в сильный мороз всему дому нужно около двух киловатт, а в межсезонье — меньше одного. А наш газовый котёл на самом минимуме выдаёт около четырёх. То есть котёл, работая «на минималках», всё равно в два-четыре раза мощнее, чем нужно.
Отсюда и все беды. Котёл не умеет гореть тихо и долго — он вспыхивает, за минуту перегревает воду и гаснет. Дальше пауза, вода остывает, снова розжиг. Комната при этом гуляет вслед за этими качелями, а обычный термостат «включить/выключить» только добавляет своих: пока он сообразит, что комната нагрелась, батареи уже полны горячей воды, и комната улетает на градус выше.
Радиаторы — с запасом, и это специально
С радиаторами мы, наоборот, поступили намеренно щедро. По паспорту четыре радиатора вместе дают около 8 кВт — вчетверо больше, чем дому нужно в мороз. Но паспорт пишут для горячей воды, когда батарея на 50 градусов теплее воздуха. При воде около 40 градусов те же радиаторы отдают примерно треть паспорта — и этого как раз хватает в сильный мороз. Запас нужен был ради одного: топить дом тёплой водой, а не горячей. Это даёт сразу несколько плюсов:
- Котёл работает в конденсационном режиме. Он забирает ещё и тепло водяного пара из дымовых газов, но только пока обратка — вода, которая возвращается из батарей в котёл, — холоднее примерно 55 градусов. С радиаторами «впритык» в мороз воду пришлось бы греть сильнее, и этот выигрыш таял бы. У нас обратка при работе на отопление обычно 25–35 градусов.
- Тепло мягче. Батарея тёплая, а не обжигающая, и греет комнату равномерно.
- Меньше теряется по дороге. Трубы с тёплой водой меньше отдают тепло там, где оно не нужно.
- Есть запас. После того как дом постоял холодным или в сильный мороз можно просто поднять температуру воды — мощности радиаторов хватит.
Минус один: такие радиаторы больше и дороже. Для нас он того стоил.
Из чего собрано
Решение складывается из трёх частей.
Котёл — по цифровому интерфейсу. Многие современные котлы, кроме входа под комнатный термостат, умеют разговаривать по OpenTherm: им можно задать температуру подачи — воды, которая уходит из котла в батареи, — а от них узнать, горит ли пламя, какая температура подачи и обратки и нет ли ошибок. Мы подключили котёл к небольшому контроллеру на ESP32 (ESPHome). Он же своим датчиком меряет давление в системе и температуру бака и — это важно — сам ведёт котёл. Если пропадёт всё остальное, котёл не останется без присмотра.
Термоголовка на каждом радиаторе и на баке — POK020. Не в режиме термостата, а в ручном: положение штока задаём сами, с шагом в полпроцента. Термоголовка здесь ничего не решает, она — исполнительный механизм. Пятая головка стоит вообще не на радиаторе. Обычно, чтобы переключать котёл между отоплением и баком, ставят трёхходовой клапан с электроприводом. У нас на трубе к змеевику бака стоит обычный вентиль с термоголовочной резьбой, а на нём — POK020. Ни комнаты, ни температуры воздуха у него нет: это просто кран с электроприводом, который по команде открывает или перекрывает бак и сообщает, что действительно открыл. Совсем не то, для чего обычно покупают термоголовку, — но привод с точным ходом и обратной связью подошёл для этой задачи как нельзя лучше.
Датчик POK010 на обратке каждого радиатора. У него три входа — контактный, NTC и аналоговый под датчик влажности; здесь пригодились первые два. На контактный вход подключён датчик потока на герконе — POK010 считает импульсы и сразу отдаёт частоту, то есть расход прямо сейчас. На вход NTC — термистор в гильзе, врезанной в трубу обратки: он меряет температуру самой воды, а не стенки трубы. В итоге про каждый радиатор видно, сколько через него идёт воды и насколько она остыла, — то есть сколько тепла он реально отдаёт.
Над всем этим — Home Assistant. Выбор простой: устройства здесь говорят на разных языках. Термоголовки и датчики работают по Zigbee, а контроллер котла — по Wi-Fi, через ESPHome. Home Assistant умеет и с теми, и с другими: он собирает температуры комнат, передаёт команды термоголовкам и показывает панели. А решения принимает регулятор в контроллере котла.
Почему плавная термоголовка — это главное
Большинство электронных термоголовок по сути работают ступеньками: открыто, приоткрыто, закрыто. Для «сделать потеплее» этого хватает. А нам нужно было другое — дозировать поток через каждый радиатор, как это делает регулирующий клапан в нормальной инженерной системе.
Первым делом мы прогнали каждую термоголовку по всему ходу штока и записали, сколько воды проходит через радиатор в каждой точке. Картина для всех радиаторов оказалась похожей — и очень показательной.

Первые 13 % хода — ничего не происходит, клапан ещё закрыт. К 23 % хода поток уже больше половины, к 30 % — около 80 %, а дальше прибавляет слабо. А теплоотдача радиатора растёт с потоком ещё медленнее. То есть вся регулировка радиатора умещается в полоску от 13 до 30 % хода, и в этой полоске шаг важен. Головка, которая умеет только 0/25/75/100, в эту полоску просто не попадает: на 25 % радиатор уже открыт больше чем наполовину.
После калибровки мы знаем, где у каждого клапана начинается поток, а POK020 ходит с шагом 0,5 % — поэтому внутри этой полоски у нас получается больше тридцати рабочих положений. Из калибровки получились таблицы «положение → поток» для каждого радиатора: регулятор думает в терминах «нужно столько-то тепла», а таблица переводит это в положение штока.
Ещё одно правило — радиатор в отопительный сезон не закрываем полностью: батарея под окном греет холодную стену и откос, и если её надолго перекрыть, там становится сыро. Поэтому у каждого радиатора есть минимальное положение с небольшим потоком. Только минимум этот плавает: стоит закрыть один радиатор — напор на остальных растёт. Поэтому минимум у нас подстраивается сам, по датчику потока POK010: нет потока — приоткрыть на полшага, слишком много — прикрыть.
Как устроено регулирование
Схема получилась каскадной, и это, пожалуй, самое важное решение во всей истории.
Регулятор комнаты не командует котлом напрямую. Он решает, какой температуры должна быть обратка, чтобы комната шла к заданной температуре (уставке): комната холодная — нужна обратка потеплее, комната у цели — похолоднее. А уже под эту температуру подбирается уставка котлу — температура подачи, которую мы ему задаём. Обратка меняется медленно и плавно, и котлу намного проще держать её, чем гоняться за комнатой, у которой между причиной и следствием полчаса.
У кухни и веранды свои регуляторы. Кухне нужно на градус меньше комнаты, веранде — просто не ниже заданного минимума. Каждая зона просит у котла воду своей температуры, а котёл выдаёт ту, которую просит самая требовательная. Остальные зоны в этот момент берут меньше — для этого и нужны плавные клапаны.
Когда интересы расходятся, приоритет у комнаты: если она уже перегрета, а кухня просит тепла, комната прикрывается до минимума, и температуру воды задаёт уже кухня. А если в трубах тепла больше, чем нужно, излишек уходит в веранду — у неё самый большой радиатор и самая большая терпимость к температуре. Котлу так и проще: насосу не приходится давить в закрытые батареи.
Проблема, в которую мы упёрлись: котёл слишком мощный
С каскадом комната стала заметно ровнее, но одна вещь не сдвигалась никак: котёл горел по минуте.
Причина сидит в его собственной логике. Котёл гаснет сам, как только температура подачи поднимается на пару градусов выше заданной, и после этого выдерживает паузу. На минимальной мощности он догоняет подачу до уставки примерно за минуту — и всё, розжиг закончен. Дом за эту минуту получил совсем немного тепла, а впереди пауза. Сократить паузу мы не хотели принципиально: частые розжиги — это и износ, и лишний газ. Значит, нужно было выжать максимум из каждого розжига.
Решение оказалось почти хитростью. Пока горелка горит, мы даём котлу уставку не «сколько нужно», а «текущая обратка плюс двенадцать градусов». Котёл видит, что до цели далеко, и спокойно горит на минимуме, не перегреваясь. А гасим мы его сами — когда обратка дошла до нужной температуры. Так розжиг длится не минуту, а две-три, и в дом за один раз уходит в два-три раза больше тепла.

Первая версия, правда, убежала. Уставка честно ползла вслед за растущей обраткой — та росла, уставка росла вместе с ней, и в какой-то момент вода в батареях ушла за 55 градусов, а комната перелетала уставку. Хорошо, что заметили мы это не в доме, а в симуляторе (о нём ниже): добавили потолок для уставки и аварийное гашение, если обратка явно перескочила цель. После этого на одних и тех же сутках розжигов стало на треть меньше, а комната — ровнее. В доме картина та же: раньше розжиг на отопление в среднем длился около минуты, теперь — две-три.
Горячая вода и бак
Котёл у нас двухконтурный, то есть умеет греть воду и сам, на проток. Только на даче это работает плохо. Давление и напор в водопроводе гуляют, а проточный нагрев любит ровный и достаточный расход: при слабом или неровном потоке вода то едва тёплая, то горячая, а то котёл и вовсе не включается. К тому же разборы у нас в основном короткие — помыть руки, сполоснуть чашку, — и вода просто не успевает прогреться: кран уже закрыт, а из него всё ещё шла холодная.
Так что горячую воду мы берём из бака косвенного нагрева: внутри змеевик, через который проходит вода из котла. Бак держит запас уже горячей воды, и ему всё равно, какой напор в трубах и насколько коротко открыли кран. Чтобы бак нагреть, котлу нужна вода погорячее — около 80 градусов. А батареям такая не нужна совсем.
Значит, зарядка бака — отдельная маленькая процедура. Сначала открывается тот самый POK020 на баке (котлу нельзя запирать все пути для воды разом), потом закрываются радиаторы, и только когда все подтвердили, котлу дают высокую уставку. Бак нагрелся — котёл гаснет, насос ещё немного догоняет оставшийся жар в бак, бак закрывается, радиаторы возвращаются.
Вот тут мы нашли вторую интересную проблему. После зарядки в котле и трубах остаются литры воды за 60 градусов. Раньше, когда радиаторы возвращались, этот остаток уходил всем подряд — в том числе в комнату, которой тепло было не нужно. Однажды вечером после зарядки батарея в и так тёплой комнате нагрелась до 28 градусов, хотя котёл в этот момент уже не горел. Комната после зарядки без всякого спроса прибавляла в среднем две десятых градуса, а иногда и треть.
Теперь у остатка тепла есть адрес. Пока вода после зарядки горячая, зоны, которым тепло нужно, открыты как обычно, сытые — закрыты, а веранда открыта полностью и забирает излишек. Несколько минут — и вода остыла до обычной, все возвращаются к работе. Тепло не выброшено и не ушло туда, где его не просили.

Ещё несколько вещей, которые делают горячую воду спокойной:
- Если какой-то клапан радиатора не подтверждает команды, бак не греем. Не закрывшийся радиатор при 80 градусах в контуре превратит комнату в баню. Лучше пусть вода в баке немного остынет — это неприятно, но безопасно.
- Раз в неделю бак прогревается до 65 градусов — профилактика легионеллы. Размножается она при 20–45 градусах, при наших обычных 55–58 почти не растёт, а выше 60 гибнет за минуты. Недельный прогрев — дополнительная гарантия. Всё делает автоматизация в Home Assistant: подняла цель, дождалась, выдержала час, вернула как было.
- Котёл не разжигается на каждый открытый кран. Холодная вода по пути в бак всё равно проходит через котёл — поэтому раньше он разжигался при любом разборе, даже когда просто мыли руки. Горячая вода всё равно идёт из бака, так что в настройках котла мы выставили задержку перед розжигом на горячую воду: короткий разбор котёл теперь пропускает. До этого летом две трети, а то и три четверти всех розжигов приходились именно на такие разборы.
Охлаждение без кондиционера
Бывает и обратная ситуация: комната перегрета, но не котлом. Плита, солнце в западные окна, гости. Котёл тут ни при чём, но насос и клапаны — при чём.
Если комната ушла выше уставки на градус, а веранда при этом заметно прохладнее, включается насос, а клапаны комнаты и веранды открываются полностью. Котёл не горит — вода в контуре просто забирает тепло у тёплых батарей комнаты и отдаёт его холодной батарее веранды. Перегрев, который раньше рассасывался часами, теперь уходит быстрее. Естественно, пока вода в контуре теплее комнаты (скажем, сразу после розжига), комнату на это время прикрываем — иначе «охлаждение» её только догреет.
Симулятор: как не экспериментировать на живом доме
Почти всё, что описано выше, мы сначала сломали в симуляторе, а уже потом сделали в доме.
Экспериментировать с отоплением на живом доме долго и неприятно. Одна проба — это сутки: нужно дождаться похожей погоды, похожей нагрузки, и всё равно не понятно, улучшилось ли что-то или просто стало теплее на улице. А зимой ошибка в регуляторе — это ещё и холодный дом.
Поэтому мы написали симулятор. В нём тепловая модель каждой зоны (воздух, стены, окна, чердак, солнце по сторонам света), гидравлика с таблицами клапанов из той самой калибровки, бак, датчики с реальным шумом — и котёл со всеми его привычками: самогашением при перегреве, паузами, минимальной мощностью. Параметры модели мы не выдумывали, а подобрали по реальным данным прошлой зимы из Home Assistant — почти полгода температур, погоды и работы котла, — пока симулятор не начал повторять дом.
Самое важное — внутри симулятора работает тот же самый код регулятора, что и в контроллере котла. Не похожий, не переписанный — тот же. Поэтому то, что работает в симуляторе, в доме ведёт себя так же, а ошибка, найденная в симуляторе, — это ошибка, которую не придётся искать зимой.
Пользуемся мы им тремя способами.
- Сценарии. Мороз −20, день, когда горячую воду открывают тридцать раз, пропала связь с Home Assistant на три часа, клапан потерял калибровку. Каждое изменение регулятора прогоняется через все сценарии, и если где-то комната уехала, изменение не идёт в дом.
- Повтор реальных суток. Берём из Home Assistant реальную погоду, реальные уставки, реальные разборы горячей воды и даже включения плиты — и проигрываем эти сутки с новой версией регулятора. Так «было» и «стало» сравниваются на одной и той же погоде, а не на разных днях.
- Проверки самого регулятора. Пара тысяч мелких проверок вида «если клапан не ответил — бак не заряжается» или «после зарядки сытая комната закрыта». Ни одна правка не попадает в контроллер, пока все они не зелёные.
Тот самый случай с убежавшей уставкой при удержании горения мы увидели именно в симуляторе — до того, как эта версия попала в дом. В доме такой перелёт легко списать на солнце или плиту и не заметить настоящую причину.
Чтобы ничего не случилось
Отопление — та система, от которой нужна прежде всего предсказуемость. Поэтому вокруг регулятора стоит несколько сторожей.
- Давление. Контроллер котла следит за давлением в системе: если оно упало ниже нормы, приходит предупреждение — раньше, чем котёл встанет с ошибкой.
- Циркуляция. Горелка горит, а потока через радиаторы нет — тревога.
- Если пропал регулятор. Home Assistant следит за контроллером котла: если тот пропал на десять минут, радиаторы открываются на треть, бак закрывается, приходит уведомление. Дом в любом случае не останется холодным.
- Если пропал Home Assistant. Регулятор живёт в контроллере котла, а не в Home Assistant: защиты, зарядка бака и последние известные температуры остаются при нём. Три часа без Home Assistant — один из сценариев симулятора, и комната в нём держится.
- Предупреждения. Всё, что регулятор считает странным — устаревший датчик зоны, неподтверждённая команда, слишком долгая зарядка, — видно отдельной строкой на панели «Отопление».
Что в итоге
Ночью, когда нет плиты и солнца, комната держится у уставки в пределах примерно полуградуса, а чаще — пары-тройки десятых. Кухня — около градуса ниже, как задумано. Котёл разжигается реже и горит в два-три раза дольше, а розжиги на «помыть руки» ушли совсем: за последнюю неделю — ни одного. После зарядки бака комната больше не прибавляет без спроса, а горячая вода есть всегда.
Но, пожалуй, главный вывод не про цифры. Хорошее отопление оказалось задачей не про «какой поставить котёл», а про то, сколько воды и куда идёт в каждую минуту. Для этого нужны клапаны, которые умеют дозировать, а не только «открыть/закрыть», и датчики, которые показывают, что происходит в каждом радиаторе. Остальное — регулятор, который можно спокойно отладить на симуляторе, не замерзая.
Устройства из статьи: термоголовка POK020 и датчик POK010 (поток и температура обратки). Обоим нужен Zigbee-шлюз — например, шлюз ПушОк или Zigbee2MQTT в Home Assistant.