Предыстория
5-6 лет назад нужно было делать отопление в новом доме. В то время в нашу деревню обещали провести газ. Исходя из этого, было принято решение поставить газовый котел и переделать его на пропан в баллонах (2 пары по 2 баллона, авто-переключение между парами). Типа как временное решение, пока не проведут газ. Решение вполне работоспособно, если не жить на даче зимой. За эти годы магистральный газ так и не провели, а заправлять баллоны надоело. Вот я и решил добавить электрический котел вдобавок к газовому.
Вариации на тему “как подружить газ и электричество?”
Вариант 1 (самый простой): поставить электрические обогреватели в каждую комнату.
Вариант 2: (самый правильный): поставить электрический котел параллельно газовому (со своим насосом, своей группой безопасности и обратными клапанами на оба контура)
Вариант 3: Поставить самый простой электрокотел(электрочайник :) ) и использовать всю начинку (насос, группу безопасности и т.п.) от газового котла.
Я решил попробовать пойти по третьему варианту. Возникли следующие “вопросы”:
- Как заставить работать насос газового котла, но не включать горелку?
- Можно разобрать котел и запитать насос отдельно. Решение выглядит стремным, а модифицировать котел кажется опасным
- Как-то объяснить котлу, что насос работать должен, а включать газ не нужно
- Ввод электричества 1 фаза, 10 кВт. Т.е. ставить мощный электрокотел кажется потенциально проблемным. Значит, нужно “подружить” электричество и газ, чтобы они могли при необходимости работать вместе
Тут я вспомнил, что у котла вроде как есть интерфейс OpenTherm и решил попробовать научиться общаться с котлом через него.
Как подключиться к котлу с минимальными усилиями?
Яндекс/Гугл ведут на
- пару статей на Хабре (нНапример, https://habr.com/ru/post/251539/ от 2015 г.)
- готовое решение на базе Zont (не подходит, т.к. заточено под управление одним котлом и не особо кастомизируется)
- несколько длинных обсуждений на разных форумах, без понятных готовых решений
- большую статью с хитрым opentherm адаптером, который я бы не решился собирать
- … и на документацию на Tasmota (это альтернативная прошивка для огромного кол-ва устройств на базе ESP6266)
Именно последнее меня сильно заинтересовало, т.к. Tasmota я активно использую для кучи домашних устройств и вообще проект мне нравится.
В документации есть ссылки на два адаптера OpenTherm:
- OpenTherm Gateway Arduino shield. Это по сути man-in-the-middle адаптер, для подключения между котлом и opentherm термостатом. Т.к. у меня нет opentherm термостата, то решение кажется избыточным.
- OpenTherm Adapter — Простой адаптер, к которому даже есть даже shield для WeMos D1 Mini, что делает сборку предельно простой и удобной.
Заказал адаптер вместе с шилдом (22$ + 5$ доставка). Далее примерно 2 недели ожиданий — и девайс у меня. 15 минут работы паяльником, сборка тестового скетча для работы с OpenTherm и, о чудо! котел реально отвечает!
Далее сборка Tasmota с поддержкой OpenTherm и её заливка. Opentherm завелся в Tasmota без малейших проблем.
Что умеет делать Tasmota с котлом Baxi:
- Сообщать: статус, температуру теплоносителя, ошибки, наличие пламени и тп
- Включать/выключать: отопление, использование внешнего термостата, горячую воду
- Устанавливать температуру: теплоносителя и горячей воды
- Делать все перечисленное выше через mqtt
Выглядит примерно так:
Таким образом, за 30$ и полчаса усилий мы получаем возможность управления котлом через WiFi. В принципе, шилд для wemos содержит разводку для подключения DS1822, что позволяет построить на нем полностью законченный термостат с WiFi.
Интеграция с электрокотлом
Котел Baxi позволяет установить температуру теплоносителя от 30 до 85 градусов. Работает котел предельно просто: он нагревает теплоноситель до заданной температуры и отключает горелку, пока теплоноситель не остынет. Если отопление включено, но температура теплоносителя выше чем целевая — работает насос и электроника котла (в Tasmota, например, доступна температура теплоносителя, будет ошибка при снижении давления теплоносителя и тп), но газ при этом не включается. Именно эту “возможность” я решил использовать для электрокотла.
В этот момент мне попался с хорошей скидкой электрокотел Zota Balance на 3кВт за что-то около 2500 руб., и я решил взять его на пробу.
Котел был подключен между обраткой и входом газового котла. Примерно вот так:
Такое подключение позволяет “обмануть” электронику газового котла и создать у него понимание, что все хорошо, теплоноситель еще теплый и газ включать не нужно.
Электрокотел был временно подключен через Sonoff TH16 также с прошивкой Tasmota.
Осталось решить, как управлять этой связкой из двух Tasmota. После апгрейда домашнего контроллера с Wirenboard5 на у меня образовался бесхозный Wirenboard5. Он был отправлен на дачу, и на нем была сделана логика управления котлами (т.к. это скорее моя специфичная история, то приводить примеры скриптов не вижу смысла).
Все получилось, но осталось некоторое беспокойство на тему автономности этой конструкции. У моего котла (или вообще системы отопления на баллонах) есть баг. Он приводит к тому, что котел может раз в 1-2 месяца вываливаться в ошибку “нет газа”. Пока все происходит при тебе, худшее, что может быть — остывший к утру дом. А когда никого нет, ситуация может быть гораздо более неприятной. Протокол OpenTherm позволяет делать сброс ошибки, но почему-то ни в библиотеке OpenTherm, ни в самой Tasmota такая фича не реализована. Несложными доработками прошивки Tasmota удалось добавить команду сброса, что лично мне сильно “добавило спокойствия”.
Что в итоге получилось
Отапливаемая часть дома примерно 50 кв.м. Электрокотла на 3 кВт вполне хватает на поддержание заданной температуры. Когда я уезжаю — ставлю на +5, за день до приезда — ставлю на +20. Мощности электрокотла недостаточно для того, чтобы прогреть помещение за разумное время. На помощь ему приходит 14 кВт газовый котел. Ему нужно примерно 3-5 часов для нагрева помещения с 5 до 20 градусов. Вероятно, он бы справился и быстрее, но мощности рассеивания радиаторов не хватает.
В целом, решение более чем рабочее. Из явных недостатков пока обнаружено разве что включение газа на пару минут на старте, если отопление было выключено и теплоноситель остыл до температуры ниже 30 градусов. Ну и т.к. теплоноситель циркулирует через теплообменник газового котла, это, вероятно, влияет на его “износ” и вносит некоторые теплопотери.
Из дальнейших планов:
- Заменить Sonoff на какое-нибудь более промышленное решение с тремя реле + сделать возможность включения котла на 1, 2 и 3 кВт. Все-таки надежность Sonoff для управления отоплением на 3 кВт вызывает некоторые опасения
- Прикрутить PID регулирование для максимально точного поддержания температуры
- Сделать какой-нибудь экранчик для отображения температуры и состояния
Мысли
- Даже довольно старые котлы позволяют собой управлять по OpenTherm, и возможности управления несравненно больше, чем при использовании простого термостата.
- Сам OpenTherm доступен любому, кто хоть раз держал паяльник и может собрать скетч для Arduino.
- Странно, что не удалось найти упоминаний реализованных решений. Вроде все реально просто и доступно.
- Если бы я сейчас покупал газовый котел, то модели без OpenTherm даже бы не рассматривал