Как стать автором
Обновить

Еще одна история про OpenTherm

Время на прочтение5 мин
Количество просмотров26K

Предыстория


5-6 лет назад нужно было делать отопление в новом доме. В то время в нашу деревню обещали провести газ. Исходя из этого, было принято решение поставить газовый котел и переделать его на пропан в баллонах (2 пары по 2 баллона, авто-переключение между парами). Типа как временное решение, пока не проведут газ. Решение вполне работоспособно, если не жить на даче зимой. За эти годы магистральный газ так и не провели, а заправлять баллоны надоело. Вот я и решил добавить электрический котел вдобавок к газовому.


Вариации на тему “как подружить газ и электричество?”


Вариант 1 (самый простой): поставить электрические обогреватели в каждую комнату.


Вариант 2: (самый правильный): поставить электрический котел параллельно газовому (со своим насосом, своей группой безопасности и обратными клапанами на оба контура)


Вариант 3: Поставить самый простой электрокотел(электрочайник :) ) и использовать всю начинку (насос, группу безопасности и т.п.) от газового котла.


Я решил попробовать пойти по третьему варианту. Возникли следующие “вопросы”:


  1. Как заставить работать насос газового котла, но не включать горелку?
    • Можно разобрать котел и запитать насос отдельно. Решение выглядит стремным, а модифицировать котел кажется опасным.
    • Как-то объяснить котлу, что насос работать должен, а включать газ не нужно.
  2. Ввод электричества 1 фаза, 10 кВт. Т.е. ставить мощный электрокотел кажется потенциально проблемным. Значит, нужно “подружить” электричество и газ, чтобы они могли при необходимости работать вместе.

Тут я вспомнил, что у котла вроде как есть интерфейс OpenTherm и решил попробовать научиться общаться с котлом через него.


Как подключиться к котлу с минимальными усилиями?


Яндекс по OpenTherm

image


Яндекс/Гугл ведут на


  • пару статей на Хабре (Например, 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.

Выглядит примерно так:


image


Таким образом, за 30$ и полчаса усилий мы получаем возможность управления котлом через WiFi. В принципе, шилд для wemos содержит разводку для подключения DS1822, что позволяет построить на нем полностью законченный термостат с WiFi.


Интеграция с электрокотлом


Котел Baxi позволяет установить температуру теплоносителя от 30 до 85 градусов. Работает котел предельно просто: он нагревает теплоноситель до заданной температуры и отключает горелку, пока теплоноситель не остынет. Если отопление включено, но температура теплоносителя выше чем целевая — работает насос и электроника котла (в Tasmota, например, доступна температура теплоносителя, будет ошибка при снижении давления теплоносителя и тп), но газ при этом не включается. Именно эту “возможность” я решил использовать для электрокотла.


В этот момент мне попался с хорошей скидкой электрокотел Zota Balance на 3кВт за что-то около 2500 руб., и я решил взять его на пробу.


Котел был подключен между обраткой и входом газового котла. Примерно вот так:


image


Такое подключение позволяет “обмануть” электронику газового котла и создать у него понимание, что все хорошо, теплоноситель еще теплый и газ включать не нужно.


Электрокотел был временно подключен через Sonoff TH16 также с прошивкой Tasmota.


Осталось решить, как управлять этой связкой из двух Tasmota. После апгрейда домашнего контроллера с Wirenboard5 на Wirenboard6 у меня образовался бесхозный Wirenboard5. Он был отправлен на дачу, и на нем была сделана логика управления котлами (т.к. это скорее моя специфичная история, то приводить примеры скриптов не вижу смысла).


Все получилось, но осталось некоторое беспокойство на тему автономности этой конструкции. У моего котла (или вообще системы отопления на баллонах) есть баг. Он приводит к тому, что котел может раз в 1-2 месяца вываливаться в ошибку “нет газа”. Пока все происходит при тебе, худшее, что может быть — остывший к утру дом. А когда никого нет, ситуация может быть гораздо более неприятной. Протокол OpenTherm позволяет делать сброс ошибки, но почему-то ни в библиотеке OpenTherm, ни в самой Tasmota такая фича не реализована. Несложными доработками прошивки Tasmota удалось добавить команду сброса, что лично мне сильно “добавило спокойствия”.


Что в итоге получилось


Отапливаемая часть дома примерно 50 кв.м. Электрокотла на 3 кВт вполне хватает на поддержание заданной температуры. Когда я уезжаю — ставлю на +5, за день до приезда — ставлю на +20. Мощности электрокотла недостаточно для того, чтобы прогреть помещение за разумное время. На помощь ему приходит 14 кВт газовый котел. Ему нужно примерно 3-5 часов для нагрева помещения с 5 до 20 градусов. Вероятно, он бы справился и быстрее, но мощности рассеивания радиаторов не хватает.


В целом, решение более чем рабочее. Из явных недостатков пока обнаружено разве что включение газа на пару минут на старте, если отопление было выключено и теплоноситель остыл до температуры ниже 30 градусов. Ну и т.к. теплоноситель циркулирует через теплообменник газового котла, это, вероятно, влияет на его “износ” и вносит некоторые теплопотери.


Из дальнейших планов:


  1. Заменить Sonoff на какое-нибудь более промышленное решение с тремя реле + сделать возможность включения котла на 1, 2 и 3 кВт. Все-таки надежность Sonoff для управления отоплением на 3 кВт вызывает некоторые опасения.
  2. Прикрутить PID регулирование для максимально точного поддержания температуры.
  3. Сделать какой-нибудь экранчик для отображения температуры и состояния.

Мысли


  • Даже довольно старые котлы позволяют собой управлять по OpenTherm, и возможности управления несравненно больше, чем при использовании простого термостата.
  • Сам OpenTherm доступен любому, кто хоть раз держал паяльник и может собрать скетч для Arduino.
  • Странно, что не удалось найти упоминаний реализованных решений. Вроде все реально просто и доступно.
  • Если бы я сейчас покупал газовый котел, то модели без OpenTherm даже бы не рассматривал.
Теги:
Хабы:
Всего голосов 2: ↑2 и ↓0+2
Комментарии36

Публикации

Истории

Ближайшие события

22 – 24 ноября
Хакатон «AgroCode Hack Genetics'24»
Онлайн
28 ноября
Конференция «TechRec: ITHR CAMPUS»
МоскваОнлайн
2 – 18 декабря
Yandex DataLens Festival 2024
МоскваОнлайн
11 – 13 декабря
Международная конференция по AI/ML «AI Journey»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань