Страница 1 из 2

Opensource Opentherm контроллер/термостат

Добавлено: 19 сен 2023, 21:48
LazyDev
Приветствую
Начинал писать простой Opentherm контроллер на esp8266 для личного использования, вылилось в полноценный продукт контроллера для Home Assistant. Софт бесплатный, развивается по мере свободного времени.
В репозитории лежит схема платы, BOM и Gerber файл для самостоятельной сборки, но совместимо и с платами от Игоря Мельника, DIYLESS и другими, собранными по схеме.

Функционал:
  • Контроль температуры горячей воды
  • Контроль температуры отопления
  • Режимы интеллектуального контроля температуры отопления:
    - PID
    - Эквитермические кривые — регулируют температуру в зависимости от температуры внутри дома и уличной температуры.
  • Настройка гистерезиса (для точного поддержания комнатной температуры)
  • Возможность подключения внешнего датчика температуры наружного воздуха (DS18B20)
  • Аварийный режим. Режим включится, если соединение Wi-Fi потеряно или контроллер не может подключиться к MQTT-серверу. Этот режим будет автоматически поддерживать заданную температуру и предотвращать замерзание дома. В этом режиме также возможно использование эквитермических кривых (погодозависимое управление).
  • Автоматический сброс ошибок (не со всеми котлами)
  • Диагностика:
    - Процесс нагрева теплоносителя для отопления: работает/не работает
    - Процесс нагрева воды для ГВС: работает/не работает
    - Отображение ошибок котла
    - Статус горелки: вкл/выкл
    - Уровень модуляции горелки в процентах
    - Давление в системе отопления
    - Статус контроллера (в зависимости от ошибок и состояния соединения)
    - Статус подключения котла через интерфейс OpenTherm
    - Текущая температура теплоносителя (обычно обратки)
    - Установленная температуры теплоносителя
    - Текущая температура горячей воды
    - Автоматическая настройка параметров PID и эквитермических кривых (в разработке)
    - Интеграция Home Assistant через MQTT. Дает возможность создать любую автоматику для котла.
В home assistant соответственно выглядит так:
Изображение

Плата:
Изображение
Изображение

Лично проверено на Baxi Eco Nova и Baxi Ampera. По мере тестов пользователями буду добавлять в список котлы на странице репозитория.

Репозиторий с дополнительной информацией тут: https://github.com/Laxilef/OTGateway
Релизы прошивки тут: https://github.com/Laxilef/OTGateway/releases

Платным не будет, потому что just for fun! К тому же, один "коммерс-знаток" opentherm на форуме уже занял нишу :D
Если тему открыл не там, перенесите куда надо. Вопросы/предложения можно сюда или на 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 в контроллер.

service: mqtt.publish
data:
topic: opentherm-thermostat/current-temperature/set
payload: "{{ states('sensor.kabinet2floor') }}"
qos: 0
retain: 0


Если какое-то время контроллер не получает текущую температуру с второго этажа от 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

Код: Выделить всё

  alias: Set boiler indoor temp
  description: ""
  trigger:
    - platform: state
      entity_id:
        - sensor.livingroom_temperature
    - platform: time_pattern
      seconds: /30
  condition: []
  action:
    - if:
        - condition: template
          value_template: "{{ has_value('number.opentherm_indoor_temp') and (states('sensor.livingroom_temperature')|float(0) - states('number.opentherm_indoor_temp')|float(0)) | abs | round(2) >= 0.01 }}"
      then:
        - service: number.set_value
          data:
            value: "{{ states('sensor.livingroom_temperature')|float(0)|round(2) }}"
          target:
            entity_id: number.opentherm_indoor_temp
  mode: single
Где 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
Screenshot 2023-10-08 at 09-30-58 Обзор – Home Assistant.png (11.41 КБ) 4279 просмотров

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;



Пока прописал в функции жестко

float getPidTemp(int minTemp, int maxTemp) {
minTemp = 45;
maxTemp= 75;
pidRegulator.Kp = settings.pid.p_factor;
pidRegulator.Ki = settings.pid.i_factor;
pidRegulator.Kd = settings.pid.d_factor;

Opensource Opentherm контроллер/термостат

Добавлено: 09 окт 2023, 22:56
LazyDev
Вы можете в 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
Интересная тема. Можно ли в данный контроллер добавить функционал, так чтобы при аварии котла включался резервный электрический с управлением "сухой контакт" ?