Шлюз OpenTherm

Многие современные газовые котлы общаются с комнатными термостатами по протоколу OpenTherm. Мой Baxi Slim в связке с  QAA73 хорошо справляются со своими задачами, но с помощью шлюза можно реализовать дополнительные сценарии управления и безопасности.

Существует замечательный проект otgw.tclcode.com, его и возьмем за основу.

Из схемы приведенной на сайте безжалостно выкидываем лишнее и добавляем свое.

Так как тянуть новые провода к серверу нет никакого желания будем делать беспроводную связь.

Нарисовал плату под корпус D4MG для размещение шлюза в пластиковом боксе на DIN рейке.

Для простоты использовал дешевые готовые модули с aliexpress. Места в таком корпусе достаточно много, поэтому заложил возможность использования различных модулей для связи  ESP8266 (esp-01, esp-03, esp-12), bluetooth HC-06, USB-UART на CP2102. Питается шлюз от 12 вольт, для работы схемы необходимо 3.3, 5 и 24 вольта. Реализовано с помощью готовых DC-DC преобразователей.

В теории все должно выглядеть как то так.

Платы заказал на allpcb.com, вместе с доставкой 10 плат обошлись в совсем уж смешную сумму в $5,5

К качеству претензий нет.

Минут 40 ушло на запаивание деталей

В P16f88 заливаем прошивку версии 4.2.5, в ESP8266-01 прошивку из открытого проекта ESP-Link, которая реализует мост WiFi-UART.

 

До установки микроконтроллера и оптрона в панельки выставляем напряжения на преобразователях, на этом все настройки заканчиваются.

Правильно собранный шлюз никаких настроек не требует и работает сразу после включения.

 

Дополнительно на разъемы выведены GPIO с ESP8266 и сигналы для подключения светодиодов на отдельной плате.

 


монтируем шлюз в корпус и можно пользоваться

Для управления шлюзом используется программа  OpenTherm Monitor

 

с ее помощью можно как наблюдать за данными так и непосредственно управлять режимами котла.

есть встроенный web сервер для удаленного управления

но гораздо удобнее для этого использовать протокол MQTT, для интеграции с MajorDoMo используем настройке как на скриншоте ниже.

в результате в МДМ получаем данные в соответствующем модуле

после привязки объектов видим данные в свойствах, на основе которых уже можно строить графики и писать сценарии.

кроме этого OpenTherm Monitor поддерживает отправку данных на сервис thingspeak.com

Проект достаточно простой для повторения и не имеет дорогостоящих деталей, файл платы в формате DipTrace.

Обновление.

Сделал вторую версию шлюза.

Запись опубликована в рубрике handmade с метками , . Добавьте в закладки постоянную ссылку.

87 комментариев на «Шлюз OpenTherm»

  1. Евгений М говорит:

    Отличная статья. Можете подсказать, список деталей из оригинального проекта или меняли на модули и добавляли свои. Если есть список того что понадобилось для проекта, было бы вообще шикарно 😉

  2. Vadim Smolyaninov говорит:

    Класная статья, спасибо автору.

  3. Lehins говорит:

    А можно по-подробнее про заказ 10 плат за 5.5$ ?
    У меня меньше 90$ сайт ничего не предлагает 🙁

  4. Илья Киров говорит:

    Я бы готовую плату купил у автора 🙂
    Либо полу-готовую (с прошитыми микросхемами), а спаял бы сам.

  5. Павел говорит:

    Готов приобрести готовое устройство или хотя бы плату

  6. electric говорит:

    Так же готов купить платку по подходящей цене…

  7. Parsek говорит:

    По первоначальному проекту собираю. Эта переработка, уже встречалась, но автор так и не доделал, насколько помню. В моих планах управление через rs485 от контроллера. Но mqtt очень интересен

    • Jager говорит:

      Если вы про этот пост в ЖЖ https://jager-f.livejournal.com/50050.html то это я и есть 🙂
      Соответственно шлюз собран и работает.

      • Parsek говорит:

        🙂 да. Полтора месяца жду чип, остальное спаял. Ваш проект легче и проще, жаль что я, не дождался его реализации.
        Mqtt на чем подняли? С москито я не доразобрался, как понял, все консольно настраивается.

  8. Евгений М говорит:

    Может у вас есть возможность отправить запрограммированный контроллер (PIC)? Тут точно будет несколько желающих 😉

  9. Сергей говорит:

    Готов приобрести готовое устройство или хотя бы плату

    • Jager говорит:

      Контакт оставьте.

      • Сергей говорит:

        serega7#inbox#ru

      • Crazy говорит:

        И мне пожалуйста)
        Crazy#ru#mail#ru

      • Сергей говорит:

        Ничего от Вас не пришло. Ждем же 🙂 цену, сроки

        • Jager говорит:

          Какой вы нетерпеливый 🙂 Я же писал что не планировал это продавать, но раз народ интересуется то можно подумать. Поэтому прошу всех желающих отмечаться в комментариях здесь. Через пару дней можно прикинуть количество желающих и сформировать цену. Поэтому очень хорошо что вы проявили интерес, но мне важно что бы вы сообщили что вам нужно, плату или готовое устройство, может плату с прошитым чипом и соответственно цену которая кажется вам разумной.

          • Сергей говорит:

            Так как я представитель криворуких 🙂 то вариант с пайкой, а тем более с прошивкой pic отваливается сразу. хотелось бы конечно 1500 плата без корпуса 2000 в корпусе. Чтоб осталось только подключить к котлу и к виртуальному ком-порту. Но Себестоимость мне не известна. И отсутствие желания бесплатно работать тоже понятно. Поэтому это просто пожелания. Цены и сроки ждем от Вас.

  10. Павел говорит:

    Там стоимость комплектухи, без платы, на 2200 при покупке в офоайне (себе покупал) без корпуса и блоков питания. Такой блок, по моему мнению, стоит около 4-5 в небольшой серии. Я бы был готов столько заплатить, но уже накупил комплектухи 🙁 на 3 тр по полному вврианту

  11. Евгений говорит:

    Я тоже желающий

  12. nik_kola говорит:

    Интересуюсь тоже. Жду предложения на почту

    • Jager говорит:

      Отправил.

      • Andrey говорит:

        И мне плз)

        • Jager говорит:

          Почту уточните.

          • Andrey говорит:

            Уточнил, пардон.
            Вопросец можно по теме — этот шлюз автономно работать может, или ему внешний ресурс нужен с управляющей программой? Например Зонт широкоизвестный в облаке управляет. а мне совсем не нравится что где-то там кто-то рулит моим котлом…

          • Jager говорит:

            Вариантов несколько.
            Если у вас нет термостата а только панель на котле то с помощью этого шлюза у вас получится дистанционная панель вашего котла. Если хотите просто мониторить температуру и режимы работы то больше ничего не нужно, шлюз будет слать данные на thingspeak где вы можете их видеть.
            Если вы хотите управлять котлом то вам нужно установить приложение otmonitor на домашний сервер, это может быть и raspberry pi или PC.
            Если у вас есть термостат с opentherm то вам нужно посмотреть позволяет ли ваш термостат удаленное управление (можно посмотреть здесь http://otgw.tclcode.com/matrix.cgi#thermostats , напротив id9 должна быть точка)
            В общем вся информация есть на этом сайте http://otgw.tclcode.com

  13. Andrey говорит:

    Немного сбил с толку тот факт, что термостат-то у меня к baxi luna duo-tec есть, но обычный, «высоковольтный», потому и задумался как, используя его, шлюз будет регулировать плавно котел. То есть, термостаты на сайте проекта — это цифровые устройства, которые уже могут общаться с котлом по тому-же ОТ протоколу, многие даже модулировать. А шлюз лишь добавляет информационной части к системе. Но автор, судя по сайту, решил, по просьбам трудящихся, добавить функционал автономной работы шлюза и в качестве такового и в качестве термостата с настройками через разные интерфейсы. То есть, я правильно понимаю, что для того, чтобы изменить настройки термостата можно запустить единоразово приложение на доступных платформах, выполнить настройки, и снова про него забыть (логично, что оно там само должно управляться с котлом, без привлечения серверов). Верно ли я понимаю суть проекта?

    • Jager говорит:

      Да, все верно. При наличии термостата с ОТ он является мозгом системы, формируя команды для котла исходя из внешних условий. Шлюз абсолютно прозрачен для связки котел-термостат и как я писал ранее, если термостат поддерживает внешнее управление, то можно как вы говорите разово запускать приложения для изменения целевой температуры. Все остальное время шлюз может работать в режиме монитора. По большому счету и приложение запускать не нужно, достаточно любым способом отправить в порт например команду ТС=24 (желаемая температура в помещении) и термостат ее примет и начнет отрабатывать.

      • Andrey говорит:

        Как раз-таки хочется без термостата работать, вроде шлюз это может http://otgw.tclcode.com/standalone.html#external

        • Andrey говорит:

          немного мимо ссылка, вот верная http://otgw.tclcode.com/standalone.html#intro

          • Andrey говорит:

            Хотя…. пораскинув, нельзя не согласиться с мнением автором проекта otgw в части:
            http://otgw.tclcode.com/standalone.html#intro
            «Несколько человек попросили реализовать шлюз без терморегулятора. Я лично предпочитаю использовать термостат по нескольким причинам:
            Производители термостатов потратили годы исследований для достижения эффективного и удобного способа управления характеристиками отопления дома.
            Термостат обеспечивает такой интерфейс управления, с которым люди знакомы, поэтому другие члены семьи в состоянии регулировать уставки.
            Он обеспечивает удобный корпус для датчика температуры помещения, которая необходима, если вы используете кривую нагрева, основываясь на внешней температуре.»

  14. Леонид говорит:

    С новым годом! Можно тоже получить Ваше предложение на почту?

  15. Robin Hertz говорит:

    Уважаемый Jager,
    Спасибо огромное за материал. Но есть вопросы.
    Ваш шлюз позволяет подключение 3-4 датчиков температуры? Возможно ли управление котлом через шлюз с Arduino? Возможно ли управление через шлюз с термостата?
    ЗЫ. Если скинете ссылки на информацию по проектам Arduino+OpenTherm, премного буду благодарен.

    • Jager говорит:

      Это только моя модификация шлюза, сам проект открытый http://otgw.tclcode.com/ там есть масса информации.
      Датчик температуры можно подключить, но только один и он будет в роли уличного датчика температуры.
      Можете подключить ардуино через UART к шлюзу и управлять как угодно, отправляя соответствующие команды согласно документации.
      Для термостата по протоколу OpenTherm этот шлюз прозрачен, т.е. он никак не мешает ему работать. Термостат с «сухим контактом» так же будет работать.

      • Robin Hertz говорит:

        Спасибо большое за развёрнутый ответ.
        По поводу «прозрачности» шлюза, — он разве не может в свою очередь управлять котлом по OpenTherm? Если да, каким образом избежать путанницы и разсогласования между задачами термостата и шлюза? Этот момент интересен, т.к. если задумаюсь об увеличении количества датчиков, это будет возможно только через соответствующий термостат, либо через Ардуину.
        Да, ещё: шлюз умеет читать команды с термостата, ведь так? В таком случае, термостат можно использовать для задачи режимов, а шлюз для более тонкого управления. Или это избыточно?
        («сухой контакт» — это обычный электрический контакт вкл/выкл, да?)

        • Jager говорит:

          Шлюз может работать в двух режимах, мониторить и управлять. Через шлюз можно конечно отправлять команды на котел, но если в системе есть термостат с OpenTherm он естественно будет перебивать эти установки, поэтому команды через шлюз отдаются термостату, типа температуры в помещении, температуры ГВС и т.д. Проблема в том что не все термостаты позволяют извне менять установки, список проверенных есть на сайте проекта.
          Если такого термостата нет то через шлюз можно полноценно управлять котлом, т.е. шлюз превращается в выносную панель вашего котла.
          «Сухой контакт» это например релейный выход обычных комнатных термостатов или контакты реле вашего устройства на ардуино или еще чего нибудь.

          • Robin Hertz говорит:

            Спасибо, Jager. Более чем доступно изложено.
            На данный момент список вопросов исчерпан, но в будущем обязательно появятся, т.к. я приступаю к заказу деталей. )))
            Удачи Вам.

          • Robin Hertz говорит:

            Доброго времени суток!
            Уважаемый Jager, как и обещал настало время уточняющих вопросов. Я ламер в схемотехники, поэтому прошу не пинать. Накидал в корзину всё или почти всё, что нашёл необходимым, но кое-что надо уточнить. Итак:
            1. Резисторы R13-R16 и диоды HL1-HL4 не совсем понятно каких номиналов. Не могли бы вы уточнить?
            2. Транзистор Q4 — какой он марки? В списке на сайте оригинала он BC547B, на схеме BC548A? Какой же нужен?
            3. Для чего служит AMS1117? Для преобразования в 3,3В или для 5В? Или подбираются все компоненты на одно и то же напрядение — 3,3 либо 5 В? Так же по AMS1117 — он стоит на площадке под другой преобразователь и один вывод даже пересекается один с другим. Значит ли это, что вывод от большего по размеру подаётся на вход AMS1117, для последующего преобразования в… 3,3В?
            4. Вывод MicroUSB U3 насколько я понимаю получает 12В? Зачем он там?
            5. JP3 в вашем исполнении не используется. Зачем он?
            6. Каково полное потребление тока у шлюза (более или менее приблизительно)?
            7. Как по вашему, можно ли использовать резисторы 1% вместо 5% (я предупреждал выше — я ламер)? 1% на Али проще найти, поэтому и спрашиваю.
            8. Из схемы и из вашего обзора не ясно, — питание 12В откуда подаётся?
            9. Пока не понял, — для чего 12В?
            Извините за изобилие вопросов. Надеюсь вас не затруднит ответить «в двух словах» на каждый.
            Заранее спасибо.

          • Jager говорит:
            1. Светодиоды какие угодно, например такие. Токоограничивающий резистор подбирайте по яркости свечения, в моем случае 660 Ом.
            2. И в схеме и в списке Q4 это BC547
            3. AMS1117 для преобразования 5в. в 3.3в., для питания ESP8266.
            4. Если будете питать от 5в. через microUSB можете не ставить преобразователь DC-DC на 5 вольт, впаяйте вместо него перемычку.
            5. Для подачи питания на разъем UART, в принципе не обязателен.
            6. 500-600мА
            7. Можно
            8. Питание подается на клеммную колодку.
            9. У меня вся слаботочка на 12 в., отсюда и решение. Вы можете использовать как 5в. так и 24в. исключив соответственно один из DC-DC преобразователей.
              Вот еще прочитайте, может станет понятнее.
          • Robin Hertz говорит:

            Так, вроде бы по третьему вопросу выкопал «больший преобразователь», остаётся уточнить настройку. Их всё-таки 2? 5В с бОльшего подаётся на вход АМС-а для понижения до 3,3В?
            (я выбрал на Али AMS1117-3.3 — это правильно?)

          • Jager говорит:

            Правильно. Вы PIC то сможете прошить? Мне кажется это может быть проблемой для вас.

          • Robin Hertz говорит:

            Вы правы — это может быть проблемой для меня. Но, если я не справлюсь, — у меня есть товарищ, а у него куча навыков по прошивке всяких безделушек. Просто он ленивый и проект его не сильно заинтересовал, т.о. я в одиночном плавании, но на помощь всегда можно рассчитывать. К тому же, я заказал чипы про запас, месяца через 2 можно будет начинать. )))
            Чипы для меня не будет проблемой, а вот 12В (даже 5В) — да! Шлюз будет стоять в труднодоступном месте, и «дизайнерски» тянуть 220 и сооружать преобразователь, ч то время как доступ к нему будет по WiFi, будет проблематично.
            24В для OpenTherm — это универсальное напряжение, я не спалю котёл?
            (спасибо за ссылку, будет интересно; и да — на схеме с затенённой областью он таки BC548A, так же и в оригинале, естественно)

          • Jager говорит:

            Вы на всякий случай уточните у него именно про программирование PIC. Логично шлюз поставить возле котла, а там 220 есть по умолчанию. Возьмите БП типа такого, и все. Напряжение на шине OpenTherm до 28 вольт по стандарту. По транзистору 🙂 да точно, но это не проблема, можете использовать ВС547 или ВС548.

          • Robin Hertz говорит:

            Спасибо за рекомендацию. Уже ищу блок питания в условиях местных предложений.
            С PIC-ом разберёмся, спасибо за заботу. Программатор есть, если сами (вдвоём) не осилим, есть ещё варианты. Главное чипов набрать про запас. )))

          • Robin Hertz говорит:

            Уважаемый Jager,
            Я как в бородатом анекдоте — «Свои!». )
            1. У вас на схеме разведён хоть и не задействован USB-UART. Нельзя ли его использовать для прошивки PIC-а? Для чего он вообще может быть полезен? Стоит ли закупать модуль?
            2. Присутствует разводка под 3 модуля для WiFi. Я понимаю, что это избыточно и надо выбрать один конретный. Почему вы выбрали ESP-01, а не ESP-12, например, или ESP-03? Ваш выбор свёлся к тому, что было под рукой или есть какие-то рекоммендации?

          • Jager говорит:
            1. Нет, прошить через него нельзя. Через этот модуль можно подключить шлюз через USB к PC или к роутеру например.
            2. esp-01 более чем достаточно, остальные разведены для универсальности, возможно кому то может понадобиться модуль с внешней антенной.
  16. nof говорит:

    Доброго времени суток!
    Есть несколько вопросов до данному девайсу…
    1. Для чего нужен блок повышающий питание до 24V ?
    а) если питать устройство от 5V (USB) то на выходе повышающего блока будет max 10V
    2. если стоит ASM1117-3.3 почему на него сразу не подать 12V , по даташиту он позволяет это сделать ?

    • Jager говорит:
      1. Для работы шлюза нужно 3 напряжения. 3.3 вольта для ESP, 5 вольт для PIC и самой схемы шлюза, 24 вольта для питания термостата.
      2. Зачем 12 когда на борту есть 5 вольт и лучше преобразовывать 5 в 3.3 чем 12 в 3.3.
        Все это верно при питании от 12 вольт ( у меня вся слаботочка на 12в.) Соответственно можно запитать шлюз от 5 вольт и тогда можно отказаться от одного DC-DC преобразователя или от 24 вольт отказавшись от повышающего DC-DC и впаять вместо него перемычки.

  17. Александр [phenolog] говорит:

    Здравствуйте.
    Классный проект!
    Мне как-раз такого не хватает для связки с МДМ.
    Хочу приобрести плату и прошитый PIC.
    Нахожусь в Минске.
    Дайте предложения сюда phenolog[собака]gmail_com

  18. Альберт говорит:

    Здравствуйте. Интересуют условия приобретения. Есть несколько вопросов.

  19. Дмитрий говорит:

    интересует новая версия, в корпус под 1 юнит. Лучше прямо в корпусе с WiFi. dmitriy.murashov@automation-engineering.ru

  20. Здравствуйте. Интересуют условия приобретения. Есть несколько вопросов.

  21. Рома Калинин говорит:

    Здравствуйте! Можно узнать цену платы, и цену платы с прошитым pic, спасибо!

  22. Алексей Ефремов говорит:

    Добрый день!
    Котел Baxi Luna Duo-Tec неприятно удивил тем, что не умеет сдвигать вверх-вниз эквитермальные кривые. В итоге в доме при мерзкой погоде (+5…+15 градусов) получается «недотоп», а при сильно холодной (-30…-45 градусов) «перетоп», точнее слишком высокая температура в трубах ТП. Понял что нужно оперативное управление по OT. В доме все контроллирует УД (intraHouse), поэтому хочу сделать интеграцию с ним.
    Попробую реализовать свою версию шлюза с мостом Ethernet-UART и есть несколько вопросов:
    1. Использование панели управления/термостата с OT как понял не обязательно? Значит и 24В можно не делать.
    2. На unix-системах otmonitor поднимали? Он просто как демон там крутиться? В принципе понимаю, что он не нужен и можно от системы умного дома давать прямые команды в порт.

    • Jager говорит:

      Здравствуйте! Все там у Baxi Luna Duo-Tec замечательно двигается. Нужно оснастить котел уличным датчиком температуры и ОБЯЗАТЕЛЬНО комнатным термостатом с OpenTherm. В такой связке будет вот так держать температуру в помещении, мой график.

      По поводу шлюза.
      1. Да, можно без термостата, но 24 вольта делать придется. Шлюз проверяет наличие/отсутствие термостата, если у вас его нет то нужно поставить перемычку на его клемму, в противном случае шлюз не будет управлять котлом.
      2. Можно и как демон запускать. Команды в порт давать можно, но данные из котла вам придется самому парсить, они валятся в порт в формате OT.
      Если честно идея управлять котлом средствами УД так себе. Вам придется самостоятельно строить кривые, учитывать тепловую инерционность здания, упреждения и еще кучу всего+низкая надежность.
      Совет, ставьте нормальный термостат и собирайте шлюз для мониторинга и получения оповещений об авариях.
      Термостат выбирайте по этой таблице, смотрите ID9.

      • Алексей Ефремов говорит:

        Как показала практика управления отоплением с помощью УД (мой УД — это не только сервер, но и контроллеры MegaD с возможностью локальной работы без сервера) — это идея состоятельна! Но нужно верно выбрать «базовую» программу управления котлом. Valliant/Protherm позволяет выбрать как наклон кривой, так и ее сдвиг — в итоге берем с котла тепло по требованию (замыкание сухого контакта), как только все зоны прогрелись до нужной температуры (спальня 1 — до 24, спальня 2 до 25, спальня 3 до 24,5, гардеробная/котельная — до 22, прачечная до 26) их актюаторы отключились — если отключились все актюаторы, то больше запрос тепла от котла не нужен.
        Как итог — имеем возможность настраивать желаемую температуру в каждом помещении и не расходуем кубометры газа.
        У моего Baxi уличный датчик температуры есть, установлен в нужном месте, но задать нормально «базу» — нельзя. Поэтому хочу управлять котлом по OT (конечно можно купить Valliant, но это решение слишком дорогостоящее на текущий момент), надеюсь за один сезон выработаю алгоритм, либо буду просто рассчитывать необходимую температуру на подаче. Смысла покупать дорогостоящий термостат и устанавливать его на видном месте — не вижу. Лучше управлять всем через веб со смарта/планшета.
        Вопрос по PIC (никогда с ними не работал, всегда только AVR) — они шьются не труднее ведь чем AVR?

        • Jager говорит:

          Вот все что вы описываете я прошел за 5 лет 🙂 У меня у самого больше десятка MegaD в доме. Долго описывать все метания, потрачена куча денег на железо и масса времени. В результате термостат+родная автоматика котла, я вам не зря скриншот привел свой, вы такого не найдете ни на одном форуме про УД. Но как известно все мы любим сами наступать на свои грабли 🙂 поэтому пробуйте.
          Сама процедура прошивки элементарная, только для PIC нужен свой программатор. Если умеете паять в инете есть схемы из 5 деталей, на али есть готовые PicKit.

Добавить комментарий