Приветствую
Начинал писать простой OpenTherm контроллер на esp8266/esp32 для личного использования, вылилось в полноценный девайс для управления котлами с нативной интеграцией в Home Assistant и встроенной веб-мордой.
В момент первого релиза публиковал статью на хабре, где рассказывал о причинах появления сего девайса и процессе разработки прошивки.
В репозитории лежит схема платы, BOM и Gerber файл для самостоятельной сборки, но совместимо и с платами от Игоря Мельника, DIYLESS и другими, собранными по схеме.
Ещё скриншоты
Функционал
Контроль температуры ГВС
Контроль температуры отопления
Режимы интеллектуального контроля температуры теплоносителя:
PID
Эквитермические кривые — регулирует температуру в зависимости от температуры внутри и снаружи помещения
Настройка гистерезиса (для точного поддержания температуры в помещении)
Возможность подключения дополнительных (внешних) датчиков: Dallas (1-wire), NTC 10k, Bluetooth (BLE). Позволяет отслеживать температуру внутри и снаружи помещения, температуру на трубах/теплообменниках и т.п.
Аварийный режим. В любой опасной ситуации (потеря связи с WiFi, MQTT, датчиками и т.п.) не даст замерзнуть вам и вашему дому.
Возможность удаленного сброса ошибок (работает не со всеми котлами)
Диагностика:
Отображение состояния устройства
Отображение состояния подключения к котлу через OpenTherm
Отображение состояния и кода неисправности
Отображение состояния и кода диагностики
Отображение процесса отопления: работает/не работает
Отображение состояния горелки (пламени): вкл/выкл
Отображение уровня модуляции горелки в процентах
Отображение давления в системе отопления
Отображение текущей температуры теплоносителя
Отображение температуры обратки теплоносителя
Отображение заданной температуры теплоносителя (полезно при использовании PID или Equitherm)
Отображение процесса ГВС: работает/не работает
Отображение текущей температуры ГВС
И другая информация...
Нативная интеграция с Home Assistant через MQTT. Возможность создания любой автоматики для котла!
Плата
Для проекта была спроектирована плата для установки в корпусе D2MG (Gainta), на плате сразу распаивается БП для возможности запитать от сети 220v.
Заказывается как один дизайн, перед сборкой разделяется на 2 части: верхнюю и нижнюю. Последняя версия адаптирована под SMT сборку, но и вручную без проблем собирается.
Прошивка
Активно развивается с лета 2022 г., код открыт и доступен на гитхабе.
На момент публикации темы прошивка совместима с платами esp8266, esp32 (в т.ч. s2, s3, c3, c6 без BLE).
Список проверенных котлов есть в wiki на гитхабе. Если котла нет списке, но он поддерживает OpenTherm, то высока вероятность, что прошивка с ним будет корректно работать.
Проект бесплатный и развивается по мере свободного времени.
Платным не будет, потому что just for fun!
Вопросы/предложения можно сюда или на github в issue.
Opensource Opentherm контроллер/термостат
Добавлено: 20 сен 2023, 14:49
bigbrother72
Управлять без homeassitant можно? Например завис если компьютер с HA?
Обновление по "воздуху" есть?
Opensource Opentherm контроллер/термостат
Добавлено: 20 сен 2023, 20:02
LazyDev
bigbrother72 писал(а): 20 сен 2023, 14:49
Управлять без homeassitant можно?
Если подключите к mqtt серверу, который не на HA, то можно через mqtt. Полноценную веб-морду не делал.
bigbrother72 писал(а): 20 сен 2023, 14:49
Обновление по "воздуху" есть?
Есть OTA. Бинарник скачали, через веб обновили.
Opensource Opentherm контроллер/термостат
Добавлено: 21 сен 2023, 15:23
bigbrother72
У меня сейчас немного переделанная версия от DIYLESS
А с удаленного внутреннего датчика температуры можно брать температуру?
Т.е. у меня сейчас котел + Opentherm адаптер + датчик температуры встроенный в контроллер на первом этаже, а нужная температура со второго этажа от esp8266+DS18B20 передается в HA, а оттуда через автоматизацию mqtt в контроллер.
Если какое-то время контроллер не получает текущую температуру с второго этажа от HA, то контроллер начинает использовать свой внутренний датчик температуры.
Opensource Opentherm контроллер/термостат
Добавлено: 21 сен 2023, 18:49
LazyDev
По умолчанию внутренняя температура через автоматизацию и устанавливается, поэтому можно из любого источника (сенсора) её брать. В т.ч. с другой esp с esphome.
Ну или дотянуть кабель от ds18b20 до платы diyless и включить внешний датчик в настройках. В версии 1.3 как раз добавил возможность использования внешних датчиков для внутренней температуры.
Отправлено спустя 6 минут 36 секунд:
bigbrother72 писал(а): 21 сен 2023, 15:23
Если какое-то время контроллер не получает текущую температуру с второго этажа от HA, то контроллер начинает использовать свой внутренний датчик температуры.
Такого не делал. Сейчас можно или вручную устанавливать через автоматизацию, или снимать показания с ds18b20.
Opensource Opentherm контроллер/термостат
Добавлено: 29 сен 2023, 16:36
bigbrother72
Еще вопрос
на скриншоте (в гитхабе)из HA есть ползунок установки температуры внутри помещения.
А вот температуру ГВС есть возможность установить?
Отправлено спустя 12 минут 13 секунд:
LazyDev писал(а): 21 сен 2023, 18:56
По умолчанию внутренняя температура через автоматизацию и устанавливается, поэтому можно из любого источника (сенсора) её брать. В т.ч. с другой esp с esphome.
более подробно в документации можно описать или там все просто?
Opensource Opentherm контроллер/термостат
Добавлено: 30 сен 2023, 20:49
LazyDev
bigbrother72 писал(а): 29 сен 2023, 16:48
Еще вопрос
на скриншоте (в гитхабе)из HA есть ползунок установки температуры внутри помещения.
А вот температуру ГВС есть возможность установить?
Отправлено спустя 12 минут 13 секунд:
LazyDev писал(а): 21 сен 2023, 18:56
По умолчанию внутренняя температура через автоматизацию и устанавливается, поэтому можно из любого источника (сенсора) её брать. В т.ч. с другой esp с esphome.
более подробно в документации можно описать или там все просто?
Конечно, ГВС можно включать/выключать и устанавливать заданную температуру
Примеры автоматизаций для установки уличной температуры и температуры внутри дома есть на гитхабе: https://github.com/Laxilef/OTGateway#ho ... t-settings
Где sensor.livingroom_temperature - ваш сенсор температуры внутри дома.
Opensource Opentherm контроллер/термостат
Добавлено: 01 окт 2023, 20:44
nnov4k
LazyDev, очень рад увидеть Вас на этом сайте!
до этого нашел Ваш проект на сайте HA, сделал, но так и не понял, как отладить девайс?...
собрал по схеме, прошил бинарником, никак не видит котёл, в логе (через телнет) вне зависимости от подключенного OPENTHERM сыпет
[WARN] Invalid response after setBoilerStatus: TIMEOUT
[WARN] Slave member id failed
на котле ставил параметр P67=2 (было 0), якобы ставил версию OPENTHERM = 2, перемычку (колодка М1 пин 1,2) не разрывал.
HA контроллер видит, в логах MQTT логинится нормально, одно но, никакие значения не приходят...
задачи управлять котлом нет, хочется видеть в HA ошибку, если есть, всё что отображается допом - побочные плюшки
при подключении шлюза к компу в DEBUG IDE пусто, при попытке компиляции 1.3.0 ругается на подключение библиотек, хотя лежат рядом (99% это руки мои надо патчить)
год в эксплуатации - котёл сам себя рулит имхо адекватно - теплые полы сами регулируются термостатическими головками (1 на этаж), на батареях термоголовки, насосы частотники сами прикрываются по давлению.
Opensource Opentherm контроллер/термостат
Добавлено: 02 окт 2023, 13:21
LazyDev
Рад слышать)
Если на все запросы ответ TIMEOUT, скорее всего неправильно установлены пины OT в настройках (в тех, где настройки подключения к wifi и mqtt).
Отправьте скрин настроек и фото платы
Opensource Opentherm контроллер/термостат
Добавлено: 02 окт 2023, 19:06
nnov4k
плата немного перетрассирована, поэтому, имхо, фото бесполезны, номера пинов менял местами, толку нет (
пины на ESP не пропаяны, но за счет металлизации отверстий соединение устойчивое
фото платы и скрин настроек прилагаю, как понимаю без осциллографа не понять, выходит ли что со стороны OPENTHERM...
есть ли какой-нибудь отладочный канал? - чтоб видеть лог, что отправлено, что получено? тупо хоть увидеть, валится ли что-то с той стороны
Opensource Opentherm контроллер/термостат
Добавлено: 02 окт 2023, 20:05
LazyDev
А где диоды D1-D4 на плате? Резисторы есть, оптопары есть, стабилитроны есть, диодов не вижу)
Дебаг можно включить переключателем в HA, после этого в телнет будут сыпаться все сообщения. Но, судя по описанию, у вас нет связи с котлом. Хоть что-то он должен отвечать.
Проверьте все цепи. И перемычку на котле нужно убирать и вместо неё подключать ОТ.
P.s. У меня остались голые платы предыдущей версии, если нужны, могу выслать почтой по рф, пишите в лс.
Отправлено спустя 14 минут 37 секунд:
Для вашего котла
Opensource Opentherm контроллер/термостат
Добавлено: 02 окт 2023, 20:44
nnov4k
диоды спрятались за саму плату - вложение
в части дебага спасибо, сейчас попробую.
по перемычке у меня в мануале с сайта (https://service.baxi.ru/info/download-m ... %D1%8F.pdf) немного противоречивая информация - т.е. опентерм на М2 пин 1,2, при том рвать перемычку М1 пин 1,2 не нужно... P10 - посмотрел, у меня стоит дефолтная 00, P67 вернул на 00 (ставил в 02, якобы должно было понизить версию протокола опентерм)
Opensource Opentherm контроллер/термостат
Добавлено: 02 окт 2023, 22:39
LazyDev
Попробуйте без перемычки. Если котел не ответит, значит, скорее всего, проблема в цепях
Opensource Opentherm контроллер/термостат
Добавлено: 07 окт 2023, 18:52
bigbrother72
LazyDev писал(а): 21 сен 2023, 18:56
Ну или дотянуть кабель от ds18b20 до платы diyless и включить внешний датчик в настройках. В версии 1.3 как раз добавил возможность использования внешних датчиков для внутренней температуры.
у меня так и сделано.
при выборе внешнего датчика правда выдает ошибку, но датчик видит
Screenshot 2023-10-08 at 09-30-58 Обзор – Home Assistant.png (11.41 КБ) 15612 просмотров
Opensource Opentherm контроллер/термостат
Добавлено: 09 окт 2023, 06:38
LazyDev
При переключении на External/Boiler сущность number.opentherm_indoor_temp удаляется, вместо нее создается sensor.opentherm_indoor_temp
Аналогично для outdoor temp. Если переключите обратно на Manual, то опять создадутся number.
Суть такова: number'ы можно редактировать, sensor'ы нельзя.
Opensource Opentherm контроллер/термостат
Добавлено: 09 окт 2023, 12:14
bigbrother72
еще вопрос:
я включил pid регулирование
при вызове функции
float getPidTemp(int minTemp, int maxTemp)
mintemp и maxtemp всегда передаются 0 и 90 градусов соответственно
т.е. отсчет температуры отопления начинается с 0 градусов
В структуре прописал 45 и 75 градусов лимиты, но все равно в getPidTemp приходит 0 и 90 градусов
struct {
bool enable = false;
float p_factor = 3;
float i_factor = 0.2f;
float d_factor = 0;
byte minTemp = 45.0f;
byte maxTemp = 75.0f;
} pid;
Вы можете в HA эти параметры установить.
Эти сущности по умолчанию деактивированы, включите необходимые в HA.
В структуре нет смысла менять, это значения по умолчанию.
P.s. если включить и ПИД, и ПЗА, то лимиты ПИД ограничивают влияние ПИД на температуру теплоносителя после расчёта ПЗА. Поэтому на скрине у меня лимит 25 градусов. Это значит, что ПИД будет влиять на -25...25 градусов. То есть если ПЗА расчитало 60 градусов, то ПИД сможет скорректировать температуру на 25 градусов в обе стороны.
Opensource Opentherm контроллер/термостат
Добавлено: 25 окт 2023, 01:06
tsv63
LazyDev, проект простым, конечно, не является. Глянул в репозиторий и сразу обратил внимание на наличие двух регуляторов, помещённых в тело esp. С одной стороны, если это "полноценный продукт контроллера для Home Assistant", почему бы эти регуляторы не поместить в тело НА, логично было бы, т.к. в репозитории проект называется OTGateway? С другой - "простой Opentherm контроллер на esp8266", ввиду отсутствия web интерфейса, в результате чего продукт не самодостаточен и до контроллера не дотягивает. В термины и определения вдаваться не буду, но gateway не контроллер.
Это моё личное мнение. Считаю, что продукт, как контроллер, должен быть самодостаточным при отсутствии интеграции с чем либо. Интеграция только добавит гибкости общему функционалу продукта.
п.с. мой респект и уважение проделанной работе!
Opensource Opentherm контроллер/термостат
Добавлено: 26 окт 2023, 02:14
LazyDev
Выносить регуляторы в HA не хотелось, т.к. HA имеет свойство отваливаться и есть шанс заморозить дом. Поэтому всю основную логику целесообразно держать отдельно.
А с HA (или любой другой системы с mqtt) управлять только настройками для работы этой самой логики.
До веб интерфейса может быть когда-то руки и дойдут, но пока не первостепенная задача.
Минутка полемики
Контроллер — устройство управления в электронике и вычислительной технике.
Управляет котлом? Управляет.
А метод общения с контроллером может быть какой угодно: и веб, и mqtt, да хоть в сыром виде.
Да и в наших реалиях, когда женщины идентифицируют себя как мужчин и наоборот... Контроллер, в общем, тоже приемлемо.
Opensource Opentherm контроллер/термостат
Добавлено: 27 окт 2023, 09:26
Антон_87
Добрый день форумчане. Тоже хочу внедрить эту разработку. Ни у кого случайно нет платы на продажу? Чтоб не ждать с Китая. Руки чешутся
Opensource Opentherm контроллер/термостат
Добавлено: 28 окт 2023, 02:54
LazyDev
Есть предыдущие версии плат, без возможности подключить комнатный датчик. Могу отправить, всё равно без дела лежат.
Opensource Opentherm контроллер/термостат
Добавлено: 28 окт 2023, 06:21
Антон_87
Буду очень благодарен, в ЛС напишу.
Opensource Opentherm контроллер/термостат
Добавлено: 29 фев 2024, 18:07
Denis_T
Добрый день!
Подскажите в чем может быть проблема?
В настройках Gatway указал, что датчики температуры это Manual via MQTT/API.
Прописал в HA автоматизаци для внешних Indoor temperature и Outdoor temperature (согласно инструкции) с гитхаба.
Но они каждые 5 секунд сбрасываеться на 0.
Opensource Opentherm контроллер/термостат
Добавлено: 01 мар 2024, 01:51
LazyDev
Здравствуйте. Это исправлено в rc16.
Opensource Opentherm контроллер/термостат
Добавлено: 01 мар 2024, 16:28
alekuz
Здравствуйте! Использую аппаратную реализацию адаптера на ESP8266 от smartkot и там для датчика температуры использован dio0.
С другими прошивками температура с датчика считывается, а с вашей нет. Есть ли какие-то непреодолимые ограничения для использования dio0 для этого? или у меня просто руки не оттуда растут?
в коде вижу проверку
if (settings.sensors.outdoor.type == 2 && settings.sensors.outdoor.pin) {
и понимаю почему с pin = 0 не работает. Точно ли нужна такая проверка?
Opensource Opentherm контроллер/термостат
Добавлено: 08 мар 2024, 23:27
LazyDev
Здравствуйте
0 - значение по умолчанию. И используется для проверки, что значение было/не было заполнено при настройке.
Не подразумевалось, что кто-то на gpio 0 повесит датчики или ещё что-то.
Как временное решение, можете убрать это условие и собрать прошивку самостоятельно через platformio.
Opensource Opentherm контроллер/термостат
Добавлено: 11 мар 2024, 07:50
ZH_com
Всем привет! собрал тестовую схемку та что в первом посту , но у меня есть несколько вопросов в место BC858A PNP его не было в наличии дали аналог 2N3906 но там получается что ноги расположены по другому не подскажете как их правильно подключить.
Opensource Opentherm контроллер/термостат
Добавлено: 12 мар 2024, 10:24
LazyDev
Распиновка такая же вроде
Opensource Opentherm контроллер/термостат
Добавлено: 12 апр 2024, 21:17
LazyDev
В последней версии добавил дашборд и перенес все настройки в веб. Теперь прошивку возможно использовать без home assistant
Opensource Opentherm контроллер/термостат
Добавлено: 26 апр 2024, 13:33
EvgenySh
Интересная тема. Можно ли в данный контроллер добавить функционал, так чтобы при аварии котла включался резервный электрический с управлением "сухой контакт" ?