Страница 2 из 5
Opensource Opentherm контроллер/термостат
Добавлено: 19 сен 2023, 21:48
LazyDev
Приветствую
Начинал писать простой 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 контроллер/термостат
Добавлено: 26 апр 2024, 20:27
LazyDev
EvgenySh писал(а): 26 апр 2024, 13:33
Интересная тема. Можно ли в данный контроллер добавить функционал, так чтобы при аварии котла включался резервный электрический с управлением "сухой контакт" ?
Через автоматизацию по событию fault=on в Home Assistant можно.
Opensource Opentherm контроллер/термостат
Добавлено: 27 апр 2024, 09:34
EvgenySh
LazyDev писал(а): 26 апр 2024, 20:27
Через автоматизацию по событию fault=on в Home Assistant можно.
А так чтобы без всяких облаков ?
Opensource Opentherm контроллер/термостат
Добавлено: 05 май 2024, 04:04
LazyDev
EvgenySh писал(а): 27 апр 2024, 09:34
А так чтобы без всяких облаков ?
А облака тут причём? Home Assistant всегда локально устанавливается.
Но без HA или другого софта нет возможности включать/отключать другие котлы.
Opensource Opentherm контроллер/термостат
Добавлено: 07 май 2024, 22:08
EvgenySh
LazyDev писал(а): 05 май 2024, 04:04
А облака тут причём? Home Assistant всегда локально устанавливается.
Устанавливается конечно локально, только работает через облако. Интересно прямое подключение на прямой IP
Opensource Opentherm контроллер/термостат
Добавлено: 08 май 2024, 01:38
LazyDev
HA работает не в облаке, а локально на той машине, на которую установлен. И доступен по локальному IP. А при наличии белого IP его можно вывесить в мир.
На второй котел вешается zigbee/wifi/modbus/esphome реле и создается автоматизация по событию fault=true первого котла на включение/отключение реле второго котла. На худой конец, можно внести изменения в прошивку, чтобы на каком-то GPIO появлялся положительный потенциал при fault=on, и на этот GPIO повесить твердотельное реле, которое управляется уровнем 3.3v.
Opensource Opentherm контроллер/термостат
Добавлено: 26 май 2024, 23:19
LazyDev
Добавил параметр "Fault state GPIO" в настройки для возможности подключить резервный котёл по сухому контакту через твердотельное реле (например MD-0544.ZD3 и аналогичные, управляемые от 3.3v).
На выбранном GPIO появится положительный потенциал при падении котла в ошибку или при потери соединения по opentherm с котлом.
Opensource Opentherm контроллер/термостат
Добавлено: 13 июн 2024, 13:22
Loredan
В первую очередь, большое спасибо автору за проект, функционально и просто. Это круто!
У меня на одном этаже ТП, на втором радиаторы с термоголовками. Чуть поправил аргументы ПИД, предварительно, все отлично, но времени мало прошло, лето началось. Зимой будет видно.
Попутно нашел интересный калькулятор ПИД
https://pidtuner.com/. Может кому пригодится.
Самое сложное было выбрать нужный образ для прошивки, может что-то пропустил, но какой-нибудь шпаргалки не хватает. По одному из Issue определил образ. Кстати, хоть все работает, но хотел убедится, правильно ли выбрал для платы Smarttherm (контролер Esp-wroom-32) образ s32 нужно? А то там еще s2 mini упоминается (Issue №8).
До этого пробовал платный проект (о нем, наверно, речь в первом посте). Совсем не понравилась реализация, прошивается элементарно, а внутри панель управления ядерным реактором. Плюс не понравилось реализация интеграции с MQTT, если HA перезагружается, то сущности становятся "Unknown" до тех пор пока этот параметр как-либо не изменить и в MQTT не прилетит обновление по этому атрибуту. Либо если не ребутнуть сам контроллер. Это очень раздражало, так как после банального обновления HA половина сущностей отваливаются очень надолго. Автор проекта сообщил, что мол, ну вот так, он интеграцию с HA не использует.
На Хабре читал статью про историю проекта, где в комментах часто сообщается, мол, нафига это все надо, ведь есть чудесный ZONT. Могу на практике поддержать посыл автора на тему облачных подключений и API. Ну так вот, спустя 2 года чудесный ZONT начал пару раз в месяц отваливаться от сети, хотя визуально он жив, на роутере коннект есть. Помогает только перезагрузка. Написал в поддержку вопрос, мол, вот такое случается, что мне еще проверить. А в ответ, без предупреждения, они мне обновляют прошивку и ZONT больше не включается. Причем, через приложение и веб четко видно, что запустился процесс обновления и сразу после устройство в сети больше не появилось. Со всеми возмущениями я был послан, сказали - прошивку обновили, но сломать не могла, если сломалось то отправляйте в сервис, отправка и ремонт за мой счет. Даже представительство Baxi на это никак не смогло повлиять.
Opensource Opentherm контроллер/термостат
Добавлено: 14 июн 2024, 17:47
LazyDev
Благодарю за отзыв
Loredan писал(а): 13 июн 2024, 13:22
правильно ли выбрал для платы Smarttherm (контролер Esp-wroom-32)
У Smarttherm используются NodeMCU V3 (esp8266) и NodeMCU 32s (esp32). Для NodeMCU V3 нужно зашить
nodemcu_8266 (добавлю в версию 1.4.2), а для NodeMCU 32s -
nodemcu_32. Но если всё работает, значит зашито правильно.
Loredan писал(а): 13 июн 2024, 13:22
Чуть поправил аргументы ПИД, предварительно, все отлично, но времени мало прошло, лето началось. Зимой будет видно.
У себя заметил, что коэффициенты ПИД и ПЗА (Equitherm) правильнее всего подбирать вручную, т.к. у всех дома разные и оч много вводных, автоматические тюнеры с этим справлялись плохо. Поэтому стоит подобрать примерные параметры, а дальше незначительно корректировать, наблюдая за температурой в доме. В 99% случаев хватает ПЗА. На теплых полах, боюсь, ПИД будет сильно раскачивать систему.
Opensource Opentherm контроллер/термостат
Добавлено: 16 июн 2024, 21:58
DmitryP
Добрый день, столкнулся с такой проблемой, у меня данный проект собран на модуле esp12f, версия прошивки 1.3.3 ставится без проблем и работает, при попытке обновится до версии 1.4.2, не появляется точка доступа и невозможно настроить ничего, версию беру с гитхаба "filesystem_d1_mini_1.4.2", прошивка через программатор, в чем может быть проблема?
Opensource Opentherm контроллер/термостат
Добавлено: 21 июн 2024, 02:31
LazyDev
Добрый. Вам нужно зашить и прошивку, и файловую систему. Подробнее
тут.
После обновления до 1.4.х можно обновляться через ОТА.
Opensource Opentherm контроллер/термостат
Добавлено: 21 июн 2024, 11:59
Loredan
LazyDev,
А подскажите, пожалуйста, еще про прошивку\обновление. Контролер Esp-wroom-32.
1) Обновление по OTA как правильно делать сразу filesystem и firmware, либо по отдельности? Если по отдельности, но в каком порядке?
Поясню. Сегодня решил обновить с 1.4.0, до 1.4.3 и за одно filesystem, выбрал сначала filesystem_nodemcu_32_1.4.3.bin, обновление прошло успешно, но web не грузится, пишет ошибку "The file system is not flashed!". Подключился по COM и прошил все снова. После этого попробовал еще раз filesystem тем же файлом - все нормально, но возможно, потому, что оно уже было 1.4.3. Что я сделал не так?
2) Расскажите про образы "factory". В Wiki указано, что ESP32 надо прошивать ими. Я так и делал. Но обновить по OTA им не получается, ошибка "decrypted error". А с без "factory" - нормально.
В общем, хочется научится делать все правильно
И еще вопрос про BLE датчик. Как понимаю, надо ввести MAC адрес BLE модуля, нагуглил, что вроде как это "значение MAC адреса платы + 2 ко второму октету". А что дальше с этим делать не понял. В Git'е вроде ничего нет.
Opensource Opentherm контроллер/термостат
Добавлено: 21 июн 2024, 20:47
LazyDev
Loredan писал(а): 21 июн 2024, 11:59
1) Обновление по OTA как правильно делать сразу filesystem и firmware, либо по отдельности?
Лучше сразу. В поле выбора прошивки выбираете файл прошивки, в поле выбора файловой системы - файл ФС.
Factory образы для esp32 нужны для прошивки с нуля через ESP Flash Download Tool и аналоги, т.к. содержат сразу bootloader и другие разделы.
Для обновления через ОТА нужно выбирать НЕ factory образы, т.к. при обновлении через ОТА не обновляется bootloader и таблица разделов.
Loredan писал(а): 21 июн 2024, 11:59
обновление прошло успешно, но web не грузится, пишет ошибку "The file system is not flashed!"
Возможно была зашита прошивка 1.4.0 rc* и там была другая таблица разделов

Ну или образ ФС был выбран от другой платы, сейчас уже сложно сказать.
Loredan писал(а): 21 июн 2024, 11:59
И еще вопрос про BLE датчик. Как понимаю, надо ввести MAC адрес BLE модуля, нагуглил, что вроде как это "значение MAC адреса платы + 2 ко второму октету". А что дальше с этим делать не понял. В Git'е вроде ничего нет.
Я просто прошиваю BLE датчики прошивкой от
pvvx и в логах флешера или
Advertising смотрю MAC адрес устройства, его и забиваю в настройки.
Шьётся
флешером прям из браузера (хром), только после прошивки датчика нужно установить
Advertising type: ATC1441 для корректной работы с OTGateway.
Opensource Opentherm контроллер/термостат
Добавлено: 23 июн 2024, 20:39
Loredan
LazyDev писал(а): 21 июн 2024, 20:47
Я просто прошиваю BLE датчики прошивкой от pvvx и в логах флешера или Advertising смотрю MAC адрес устройства, его и забиваю в настройки.
Спасибо за детальный ответ! Туда надо было MAC датчика вбивать, можно было и догадаться

Да, я как раз LYWSD03MMC и использую прошивая флешером в ZigBee, а тут хочет попробовать BLE подключить. Все получилось, но что-то радиус подключения какой-то скудный получается, метров 5 может, позже еще посмотрю, вроде есть некие настройки мощности сигнала.
А нет в планах аварийный режим расширить и на BLE подключение? Может по времени отсутствия данных.
Opensource Opentherm контроллер/термостат
Добавлено: 23 июн 2024, 21:10
LazyDev
Loredan писал(а): 23 июн 2024, 20:39
Все получилось, но что-то радиус подключения какой-то скудный получается, метров 5 может, позже еще посмотрю, вроде есть некие настройки мощности сигнала.
По поводу радиуса не подскажу, у меня 20-30 метров стабильно держит. Настройки мощности там есть, но не экспериментировал с ними.
А почему решили, что отваливается связь с датчиком? Там реализован функционал подписки на события датчика для минимизации разряда батарейки, а не постоянный опрос.
Loredan писал(а): 23 июн 2024, 20:39
А нет в планах аварийный режим расширить и на BLE подключение? Может по времени отсутствия данных.
Да, надо будет добавить что-то подобное, заодно и влажность и уровень заряда пробросить.
Opensource Opentherm контроллер/термостат
Добавлено: 24 июн 2024, 13:56
Loredan
LazyDev писал(а): 23 июн 2024, 21:10
А почему решили, что отваливается связь с датчиком? Там реализован функционал подписки на события датчика для минимизации разряда батарейки, а не постоянный опрос.
А там на датчике значок bluetooth, где-то на 5-7 метров прямой видимости отхожу и все, он погасает. А мне надо через газобенную стен и метров 7. Так же оставлял его на 40мин, так данные и не присылались, хотя температура существенно изменилась.
Но это похоже датчик косячный какой-то, я его в Zigbee перешил и никак не могу спарить. Сейчас перешил второй датчик и он уже нормально добивает на 7 метров и через стену из ГБ.
Opensource Opentherm контроллер/термостат
Добавлено: 20 авг 2024, 16:03
EvgenySh
Имеется контроллер ESP8266, который приобретался для мониторинга температуры и однофазной электросети. Теперь валяется без дела. Почитал форумы и понял, что если его перепрошить нужным образом, то можно этим устройством мониторить котел и управлять им. Но что то никак не могу найти схему, как его правильно поженить с контактами OpenTherm на котле. Кто может подсказать ?
Opensource Opentherm контроллер/термостат
Добавлено: 20 авг 2024, 18:12
LazyDev
Без адаптера opentherm никак. Схема простая:
В
документации есть ссылки на адаптеры в продаже.
Opensource Opentherm контроллер/термостат
Добавлено: 20 авг 2024, 18:35
EvgenySh
Эту схему я видел, но не понял куда IN и OUT на контроллере подключать
Opensource Opentherm контроллер/термостат
Добавлено: 20 авг 2024, 19:31
LazyDev
На ESP8266 обычно используется IN GPIO = 4, OUT GPIO = 5. На вашей схеме не оч понятно что и где, проще взять голый wemos s3 mini/wemos s2 mini/wemos d1 mini и на макетке всю схему собрать, благо их на авито полно. Или искать даташит на вашу плату и использовать GPIO, которые не используются на плате.
Opensource Opentherm контроллер/термостат
Добавлено: 21 авг 2024, 11:22
EvgenySh
LazyDev писал(а): 20 авг 2024, 19:31
На ESP8266 обычно используется IN GPIO = 4, OUT GPIO = 5. На вашей схеме не оч понятно что и где, проще взять голый wemos s3 mini/wemos s2 mini/wemos d1 mini и на макетке всю схему собрать, благо их на авито полно. Или искать даташит на вашу плату и использовать GPIO, которые не используются на плате.
В выходные подробнее изучу свою плату с контроллером. У меня на ней уже реализованы разъемы подключения датчиков температуры 1-Wire, установлено реле, на которое хотелось бы вывести сигнал об аварии для включения резервного котла, есть разъем для дисплея и разъемы для подключения модулей PZEM004T мониторинга электросети. Вот вместо этих модулей я и хочу подключить адаптер ОТ
Opensource Opentherm контроллер/термостат
Добавлено: 22 авг 2024, 01:04
LazyDev
EvgenySh писал(а): 21 авг 2024, 11:22
Вот вместо этих модулей я и хочу подключить адаптер ОТ
Проверьте, чтобы на этих GPIO не было доп. обвязки на плате.
Loredan писал(а): 23 июн 2024, 20:39
А нет в планах аварийный режим расширить и на BLE подключение? Может по времени отсутствия данных.
Добавил в версии
1.4.4 дополнительные события для перехода в аварийный режим:
- При потере связи с датчиком внутренней темп.
- При потере связи с датчиком наружной темп.
И добавил опрос RSSI, влажности и уровня заряда BLE датчиков.
Opensource Opentherm контроллер/термостат
Добавлено: 22 авг 2024, 15:55
EvgenySh
К сожалению по данным ссылкам вряд ли можно заказать в наше время

Может посоветует кто KIT для сборки. Нужно собрать только адаптер.
Opensource Opentherm контроллер/термостат
Добавлено: 10 сен 2024, 12:45
andreyr82
LazyDev, подскажите как происходит управление котлом по подаче или обратке и возможно ли как-то это переключать?
Opensource Opentherm контроллер/термостат
Добавлено: 11 сен 2024, 02:46
LazyDev
andreyr82 писал(а): 10 сен 2024, 12:45
LazyDev, подскажите как происходит управление котлом по подаче или обратке и возможно ли как-то это переключать?
По Opentherm, а уж как котел этим управляет - хз, скорее всего по датчику температуры на подаче (теплообменнике). Фактически мы передаём желаемую температуру, как если бы мы ее установили через панель котла. В случае использования ПИД или ПЗА расчеты производятся на esp и требуемая температура теплоносителя передается как описано выше.
Opensource Opentherm контроллер/термостат
Добавлено: 11 сен 2024, 12:22
andreyr82
LazyDev писал(а): 11 сен 2024, 02:46
По Opentherm, а уж как котел этим управляет - хз, скорее всего по датчику температуры на подаче (теплообменнике).
Да. Проверил. Несмотря на то, что котел был настроен на управление по температуре обратки и на панели отображалась текущая температура обратки, при подключении контроллера он переключается на управление по подаче и на панели начинает отображаться температура подачи. У меня отопление только теплыми полами без узла подмеса и мне удобнее было бы управлять по обратке.
Еще попробовал ПИД и ПЗА и заметил что там управление подачей идет по температуре помещения. Насколько сложно добавить переключатель в ПИД и ПЗА управлять по Т помещения или Т подачи и, соответственно, управлять по выбранному значению? Я это сам сделаю. Вопрос в трудоемкости, много ли придется вносить изменений в код?
Opensource Opentherm контроллер/термостат
Добавлено: 12 сен 2024, 21:44
LazyDev
Не очень, смотрите RegulatorTask
Но вообще ПЗА по датчику внутри помещения должен закрыть ваши потребности без дополнительных изменений, а ПИД может сильно раскачивать систему из-за большой инертности теплых полов.
Кроме того, на теплые полы не подают высокую температуру, поэтому вам необходимо обязательно ограничить температуру через настройки прошивки и/или настройки котла.
Зачем по обратке регулировать?
Opensource Opentherm контроллер/термостат
Добавлено: 13 сен 2024, 09:47
andreyr82
LazyDev писал(а): 12 сен 2024, 21:44
Зачем по обратке регулировать?
У меня отопление только теплыми полами. Радиаторов нет. В таком случае удобнее регулировать по обратке. До подключения газа отопление было тепловым насосом. Там управление только по обратке было. В описании котла так же написано, что при отоплении теплым полом лучше включать управление отоплением по обратке. Это достаточно удобно когда система отопления низкотепературная.
Opensource Opentherm контроллер/термостат
Добавлено: 13 сен 2024, 10:23
RADAR
andreyr82 писал(а): 13 сен 2024, 09:47
У меня отопление только теплыми полами. Радиаторов нет. В таком случае удобнее регулировать по обратке.
если не сложно - опишите в чем удобство, какие плюсы относительно подачи..?

Opensource Opentherm контроллер/термостат
Добавлено: 14 сен 2024, 00:49
LazyDev
andreyr82 писал(а): 13 сен 2024, 09:47
У меня отопление только теплыми полами. Радиаторов нет. В таком случае удобнее регулировать по обратке.
Теплый пол - тот же радиатор, только большой. И с бОльшей инертностью в силу размеров и теплоёмкости стяжки.
При регулировке по обратке температура воздуха, вероятно, будет сильно плавать из-за инсоляции и т.п., поэтому датчики температуры обычно ставят на высоту около метра от пола, и на стену, на которую не попадают прямые солнечные лучи.
Ради эксперимента попробуйте с BLE датчиками, м.б. это будет комфортнее, они не дорогие и по трудозатратам проще, чем переписывать код регулятора.
Opensource Opentherm контроллер/термостат
Добавлено: 16 сен 2024, 11:12
andreyr82
RADAR писал(а): 13 сен 2024, 10:23
andreyr82 писал(а): 13 сен 2024, 09:47
У меня отопление только теплыми полами. Радиаторов нет. В таком случае удобнее регулировать по обратке.
если не сложно - опишите в чем удобство, какие плюсы относительно подачи..?
Как написал выше автор, по причине большей теплоемкости и большой инертности пола. У меня пол - это 10-12см бетона. По обратке получается более точная регулировка. Да и привык я так. Как писал выше, до этого отапливал дом тепловым насосом и там регулирование только по обратке, без альтернатив, и производитель котла рекомендует переключать в режим регулирования по обратке при отоплении теплым полом.