WBE2-I-OPENTHERM проблема реализации

Столкнулся с проблемой. Опишу в начале что я имел:
Котел Baxi Duo-Tec 1.24 (конденсационный), к нему подключен датчик наружной температуры, соответственно, в нем включен режим ПЗА. Котел работает на контура теплого пола и включался релюшкой по “запросу” - если был включен хотя бы один насос контуров потребителей, выключался когда отключались все насосы. Однако из-за того что эквитермальные кривые котла не сдвигаются “влево-вправо” (как это можно сделать у Valliant/Protherm), то при наружной температуре +15…-5 градусов котел на подаче имел слишком малую температуру. Как итог - дом слишком долго прогревался, иногда температура снижалась ниже уставки на 2 градуса.
Я решил что с помощью данного OT-шлюза смогу управлять котлом более гибко. Однако при его подключении понял, что:

  1. Теперь нельзя котел отключить или включить релюшкой по “запросу”, вероятно от того, что OT-девайс является основным управляющим органом котла…? Котел всегда работает (если реле не включено, то состояние котла - 2 dec, если включено, то 74 dec).
  2. Теперь не работает ПЗА котла - вероятно потому что OT-девайс является основным управляющим органом котла…?
  3. ПЗА OT-шлюза использовать не могу поскольку самая “младшая” кривая даст мне 64 градуса (при -40 за бортом), когда мне нужно не более 55!!! У всех котлов есть кривые для работы на прямую с ТП, а тут - их просто нет…
  4. При снижении температуры ГВС (в косвенном бойлере установлен выносной датчик температуры), котел не переключает трехходовый кран и не нагревает воду!
  5. Котел нельзя принудительно выключить кнопкой питания (отображается код 303 или 100).
  6. Возможности сброса ошибок котла нет.

Уважаемые разработчики, можете прояснить вопрос по п.1, 2. А также дать свои комментарии по п.3, 4, 5, 6?

Как итог - для моей реализации данный шлюз совершенно не подходит (вернуть уже не получится, прошло более 14 дней), имеет очень ограниченные возможности! Или же надо полностью менять подход к реализации управления отоплением (полностью завязываться на программную реализацию), что приведет к уменьшению надежности системы… Но опять же - почему котел не греет горячую воду? Пока в больших раздумьях:(

Использование “сухого контакта” термостата - включает котел, и дальше он работает в соответствиис выбранными параметрами…

А что выбрано в настройках? Какой режим ЦО, его уставки

А ограничение максимальной температуры “Верхняя граница температуры котловой воды” -не работает?

Включен ли бойлер в настройках?

Нет, так Baxi не работает. Поэтому при подключении OT-шлюза, вся моя программно-аппаратная логика перестала работать. Собственно все это видно по графику работы за ночь (в 23 подключил шлюз, а в 12 отключил его)…я вообще не понимаю что шлюз делал с котлом, особенно в то время когда появлялся температурный “частокол”:


В документации на Baxi вычитал, что у него есть параметр 10 - “Установка температуры отопления OT/TA (Open Therm/комнатный термостат)”. Если выбрать уставку 02 - “если подсоединены пульт дистанционного управления и высоковольтный комнатный термостат (~ 230 В), используется установка температуры, заданная на пульте. Комнатный термостат дает разрешение на работу котла” - то вероятно будет работать как вы описали. Попробую, изменить параметр в котле.

В котле параметр 06 “Конфигурация входа датчика уличной температуры” по умолчанию с уставкой 00 - “при подключенном уличном датчике котел регулирует температуру подачи
отопления в зависимости от уличной температуры”. Вместо температуры на подаче контура отопления у меня выбрана 12-я эквитермальная кривая.
Если вы имеете ввиду какие параметры я устанавливал в регистрах хранения OT-шлюза, то они следующие:

Температура подачи котловой воды - 45
Температура ГВС желаемая - 55
Температура комнатная желаемая - 0
Тип датчика температуры - 0

В моем Baxi есть только две уставки в параметре 16 “Установка максимальной температуры отопления”. Поскольку в самые морозы мне не хватает максимальных 45 градусов, то у меня параметр 16 имеет уставку 00 - “номинальная 80°C”. Поэтому в данном случае ПЗА OT-шлюза у меня не применимо:(

Если вы про котел - то конечно же! А если про OT-шлюза, то в документации об этом ни слова! Только есть регистр хранения для установки желаемой температуры ГВС.

Если есть бойлер - надо в настройках Serial включить
Screenshot from 2022-01-19 10-23-30
требуемые - и тогда можно ими управлять.

1 лайк

Я не использую WB). У меня intraHouse, используя MegaD-2561 в качестве Ethernet-UART ModBus-шлюза, опрашивает регистры входов и записывает данные в регистры хранения.
Boiler state в веб-интерфейсе WB - это просто опрос регистров входов:
Error Code - это ModBus code - 04, регистр - 00ce
Hot Water Temperature - это ModBus code - 04, регистр - 00d0
Heating Temperature - это ModBus code - 04, регистр - 00cf
Burner Modulation Level - это ModBus code - 04, регистр - 00d1
Water Pressure - это ModBus code - 04, регистр - 00d2

А вот что такое Boiler Status? Это регистр входа 00cd и какой-то его бит? Но как это влияет на управление бойлером? Я ведь устанавливаю температуру ГВС принудительно в регистр хранения 00сс!

К тому же я читаю регистр входа 00cd и получаю либо ‭0000 0010, либо ‬‭‭0100 1010‬, то есть биты, связанные с ГВС всегда равны 0.

В шаблоне (config-wbe2-i-opentherm.json) проще всего посмотреть.

"address": 205,
                "reg_type": "input",

Да, статус.

При этом она должна быть между значениями D5 и D6. Как я понимаю только тогда запустится.

Что-то сходу его найти не могу.

Снова подключил шлюз к котлу, установил уставку 2 в параметре 10 котла (см.описание выше). Считал все входные регистры, получилось так:

Вопрос - что нужно сделать чтобы шлюз дал команду котлу на нагрев внешнего бойлера? Может кто из разработчиков тему посмотрит?

С уставкой 2 в параметре 10 теперь связка Baxi Duo-Tec 1.24 + NEVOTON BCG-1.0.2-W работает приемлемо, но только в части “запрос” тепла и поддержания установленной котловой температуры! При отключении OT-шлюза от котла, на котле появляется ошибка E83, которую сбросить нельзя, поэтому отключать OT-шлюз нужно только при полном отключении котла (а также при возврате уставки 0 в параметре 10).

Проблемы выявляю следующие:

  1. Котел не греет косвенный бойлер, как будто OT-шлюз не знает о бойлере или не знает какую команду дать котлу чтобы он переключился на нагрев ГВС!
  2. Во время отсутствия “запроса” тепла с OT-шлюза считывается какая-то не понятная температура - смотрим на зону, обведенную голубым овалом (красная кривая - это DS18B20 на патрубке подачи котла, оранжевая кривая - это температура подачи котла, считанная из OT-шлюза).
  3. В ПО OT-шлюза происходят какие-то сбои, в результате чего он время от времени отдает не актуальную информацию почти по всем параметрам - см.кривую "Температура на подаче ГК (OT) и “Температура наружная (OT)”. Также иногда приходит не верное значение статуса котла (вместо 74, например, приходят 3989, 1941). И дело явно в прошивке OT-шлюза поскольку он общается с MegaD-2561 по Modbus RTU и CRC Error за ночь было всего 6 штук. То есть именно OT-шлюз формирует сообщение Modbus RTU с не верными данными!

Кроме озвученных проблем, нужно добавить несколько “младших” кривых для ПЗА, например, которые “оканчиваются” (при самой низкой внешней температуре) на 45, 50, 55 градусах.

По результатам изучения логики работы OT-шлюза понял, что:

  1. В режиме задания уставки температуры подачи котловой воды (регистр хранения 207 имеет значение 0, регистр хранения 205 принудительно обнуляется) внешняя система/сервер умного дома должна самостоятельно записывать в регистр хранения 203 значение требуемой температуры подачи котловой воды.
  2. В режиме задания уставки комнатной температуры (регистр хранения 207 имеет значение 0, регистр хранения 203 принудительно обнуляется) внешняя система/сервер умного дома должна записывать в регистр хранения 208 реальное значение температуры в жилом помещении.
  3. В режиме ПЗА (регистр хранения 207 имеет значение 1) внешняя система/сервер умного дома должна записывать в регистр хранения 208 реальное значение уличной температуры и при необходимости оперировать климатическими кривыми задавая их через регистр хранения 206.

В руководстве по эксплуатации ИГНЖ-142.00.00РЭ все эти моменты освещены не понятно даже пользователю, имеющему понимание работы подобных систем.

Как раз отдает, не команду а именно уставку для температуры.

А тут непонятно почему, да.

Тут по хорошему гужен шлюз с “прозрачным” режимом, например https://nevoton.ru/product/universalnyj-shlyuz-upravleniya-kotlom-nevoton-bcg-3-0-1-w/ ну или просто “адаптер” для opentherm шины, такой, как пример схемы: OpenTherm Adapter - Hobby Projects
Ну и общаться с регистрами можно прямо с сервера.

Скажем так - OT-шлюз “читает” из шины котла температуру с датчика ГВС и даже может передает в котел уставку ГВС (как это проверить - вопрос!), но раз именно шлюз теперь является “головой” котла, то именно он должен сказать - переключись на бойлер или переключись на отопление, но этого не происходит.
В общем нужно чтобы разработчики тут ответили, но что-то они игнорируют форум, хотя на мой запрос Невотон мне ответили следующее - “Вам уже ответили на форуме”…

Вы сейчас про какой именно - OT-шлюз или Ethernet-UART шлюз?
У меня была цель - поиметь компактный OT-шлюз с энергонезависимым режимом, который будет позволять мне как минимум устанавливать температуру отопления и ГВС, а также предоставлять возможность контролировать параметры котла без изучения OT-протокола. Ну и желательно чтобы у него интерфейс был UART, чтобы подключить к MegaD-2561 напрямую (коммутатор в щите установить не где, как и что-то большее чем 2 DIN-устройство).
Все с той точки зрения, что в любой системе умного дома самое слабое звено - это сервер (любая unix-железка) наряду с Ethernet-сетью. А вот OT-шлюз и MegaD-2561 на базе микроконтроллеров априори отказоустойчивее остального, наверное, даже отказустойчивее самого котла)

К модулю у меня вопросов нет. Он читает данные с котла, он пишет данные в котёл. Значит он исправен.
Касаемо ваших кривых для ТП я уже отвечал в другой ветке.
Модуль отправляет команды котлу по уставкам ГВС и ТО. Если вас не устраивает как они исполняются, смотрите в настройках котла.
Весь алгоритм переключения клапанов, ходовиков внешних бойлеров находится в котле, модуль только задаёт ему уставки температур и никогда не вмешивается в работу внутренних алгоритмов котла.

1 лайк

Если у вас есть предложения по улучшению модуля, пишите их в ответ на это сообщение.

Есть вероятность, что модуль уставку в котел пишет не туда? Как провести траблшутинг проблемы? А вообще вы тестировали модуль с одноконтурными котлами Baxi/Bosch?

Теперь понятно как работает модуль.

А можете прокомментировать вот это:

-Да, последняя проверка на Baxi Slim была.
-Касаемо плохой связи с контроллером, поскольку вы не используете контроллер WB и не используете его шаблон с его таймаутами и задержками, его правилами опроса modBus устройств, то давать гарантии на нормальную работу модуля я не могу.

  1. Добавить несколько “младших” кривых для ПЗА, например, которые “оканчиваются” (при самой низкой внешней температуре) на 45, 50, 55 градусах. В качестве примера:
    Кривые ПЗА_пример
  2. Предусмотреть сдвиг кривых влево-вправо
  3. Добавить возможность определения есть ли “Связь между котлом и модулем (1–есть, 0 - нет)”.
  4. Добавить возможность выявления неисправности датчика температуры (например, если в регистр хранения 208 данные не поступают на протяжении 5-10 минут), по которому модуль выставит температуру теплоносителя из регистра 203.
  5. Добавить сброс “простых” ошибок котла (для Baxi - это E 110, E 125, E 133, E 134, E 135, E 09, E 15, E128 и E 384)
  6. Добавить сброс блокировки котла, возникшей в результате ошибки его работы
  7. Добавить перезагрузку модуля
  8. Добавить регистр входа с кодом ошибки, характерным для всех котлов с OT (ID=5, HB, flag8).
  9. Добавить регистр входа с кодами диагностики, характерными для всех котлов с OT (ID=115).
  10. Добавить регистр входа с температурой котловой воды на обратке (ID=28)
  11. Добавить регистр входа с данными о расходе ГВС (ID=19)
  12. Добавить регистр хранения для max CH water setpoint (ID=57)

А еще в новых версиях платы нужно светодиоды питания сделать красным цветом, OT - оранжевым, UART - зеленым, иначе все очень не информативно и можно вообще убрать их…

В инструкции требуется:

  1. В регистре “Статус котла” откорректировать описание битов в LB и HB (Enable != Mode)
  2. Прописать марки и названия котлов с которыми модуль совместим практически.

Как можно провести траблшутинг проблемы? Порекомендуйте как специалист.

В шаблоне, если вы про json, никаких таймаутов и задержек не указано. Поэтому расскажите какие таймауты и задержки оптимальны для модуля? Также какие у вас правила опроса ModBus устройств? Чтобы я имел возможность ликвидировать не верные данные, которые изредка получаю с модуля.
На текущий момент за один сеанс связи, проходящий 1 раз в минуту, я опрашиваю последовательно 12 регистров входа с интервалом 1 секунда, вот лог опроса:

20.01 19:56:46.433 Started
20.01 19:56:46.434 plugincCommand { unit: 'megad4',
  command: '/sec/?uart_tx=0b0400cc0001&mode=rs485' }
20.01 19:56:46.434 start timer getAnswer for 1 sek
20.01 19:56:47.486 Done timer getAnswer
20.01 19:56:47.486 exec function getAnswer
20.01 19:56:47.487 plugincCommand { unit: 'megad4',
  command: { url: '/sec/?uart_rx=1&mode=rs485', onResponse: 'raw' } }
20.01 19:56:47.541 exec function getResponse
20.01 19:56:47.542 do ACTOR_HEATING_SYS_01 data_status OK (CRC Error - 3)
20.01 19:56:47.542 do ACTOR_HEATING_SYS_01 firmware 1.05
20.01 19:56:47.543 plugincCommand { unit: 'megad4',
  command: '/sec/?uart_tx=0b0400cd0001&mode=rs485' }
20.01 19:56:47.543 start timer getAnswer for 1 sek
20.01 19:56:48.592 Done timer getAnswer
20.01 19:56:48.593 exec function getAnswer
20.01 19:56:48.593 plugincCommand { unit: 'megad4',
  command: { url: '/sec/?uart_rx=1&mode=rs485', onResponse: 'raw' } }
20.01 19:56:48.746 exec function getResponse
20.01 19:56:48.747 do ACTOR_HEATING_SYS_01 data_status OK (CRC Error - 3)
20.01 19:56:48.747 do ACTOR_HEATING_SYS_01 boiler_status 00000000 01001010 (74)
20.01 19:56:48.748 assign ST_HEATING_SYS_04.value=00000000 01001010 (74)
20.01 19:56:48.748 plugincCommand { unit: 'megad4',
  command: '/sec/?uart_tx=0b0400ce0001&mode=rs485' }
20.01 19:56:48.749 start timer getAnswer for 1 sek
20.01 19:56:49.801 Done timer getAnswer
20.01 19:56:49.801 exec function getAnswer
20.01 19:56:49.802 plugincCommand { unit: 'megad4',
  command: { url: '/sec/?uart_rx=1&mode=rs485', onResponse: 'raw' } }
20.01 19:56:49.953 exec function getResponse
20.01 19:56:49.953 do ACTOR_HEATING_SYS_01 data_status OK (CRC Error - 3)
20.01 19:56:49.953 do ACTOR_HEATING_SYS_01 error_number НЕТ
20.01 19:56:49.954 assign BOILER_GAS_ERROR_NUMBER.value=НЕТ
20.01 19:56:49.954 plugincCommand { unit: 'megad4',
  command: '/sec/?uart_tx=0b0400cf0001&mode=rs485' }
20.01 19:56:49.955 start timer getAnswer for 1 sek
20.01 19:56:51.008 Done timer getAnswer
20.01 19:56:51.009 exec function getAnswer
20.01 19:56:51.009 plugincCommand { unit: 'megad4',
  command: { url: '/sec/?uart_rx=1&mode=rs485', onResponse: 'raw' } }
20.01 19:56:51.156 exec function getResponse
20.01 19:56:51.157 do ACTOR_HEATING_SYS_01 data_status OK (CRC Error - 3)
20.01 19:56:51.157 do ACTOR_HEATING_SYS_01 temp_heating 43
20.01 19:56:51.158 assign BOILER_GAS_TEMP_HEATING.value=43
20.01 19:56:51.158 plugincCommand { unit: 'megad4',
  command: '/sec/?uart_tx=0b0400d00001&mode=rs485' }
20.01 19:56:51.159 start timer getAnswer for 1 sek
20.01 19:56:52.213 Done timer getAnswer
20.01 19:56:52.213 exec function getAnswer
20.01 19:56:52.214 plugincCommand { unit: 'megad4',
  command: { url: '/sec/?uart_rx=1&mode=rs485', onResponse: 'raw' } }
20.01 19:56:52.362 exec function getResponse
20.01 19:56:52.362 do ACTOR_HEATING_SYS_01 data_status OK (CRC Error - 3)
20.01 19:56:52.363 do ACTOR_HEATING_SYS_01 temp_hot_water 44
20.01 19:56:52.363 assign BOILER_GAS_TEMP_HOT_WATER.value=44
20.01 19:56:52.364 plugincCommand { unit: 'megad4',
  command: '/sec/?uart_tx=0b0400d10001&mode=rs485' }
20.01 19:56:52.364 start timer getAnswer for 1 sek
20.01 19:56:53.419 Done timer getAnswer
20.01 19:56:53.419 exec function getAnswer
20.01 19:56:53.420 plugincCommand { unit: 'megad4',
  command: { url: '/sec/?uart_rx=1&mode=rs485', onResponse: 'raw' } }
20.01 19:56:53.566 exec function getResponse
20.01 19:56:53.567 do ACTOR_HEATING_SYS_01 data_status OK (CRC Error - 3)
20.01 19:56:53.567 do ACTOR_HEATING_SYS_01 modulation 10
20.01 19:56:53.567 assign BOILER_GAS_MODULATION_BURNER.value=10
20.01 19:56:53.568 plugincCommand { unit: 'megad4',
  command: '/sec/?uart_tx=0b0400d20001&mode=rs485' }
20.01 19:56:53.568 start timer getAnswer for 1 sek
20.01 19:56:54.627 Done timer getAnswer
20.01 19:56:54.627 exec function getAnswer
20.01 19:56:54.628 plugincCommand { unit: 'megad4',
  command: { url: '/sec/?uart_rx=1&mode=rs485', onResponse: 'raw' } }
20.01 19:56:54.771 exec function getResponse
20.01 19:56:54.771 do ACTOR_HEATING_SYS_01 data_status OK (CRC Error - 3)
20.01 19:56:54.772 do ACTOR_HEATING_SYS_01 pressure 1.00
20.01 19:56:54.772 assign BOILER_GAS_PRESSURE_SYSTEM.value=1.00
20.01 19:56:54.773 plugincCommand { unit: 'megad4',
  command: '/sec/?uart_tx=0b0400d30001&mode=rs485' }
20.01 19:56:54.773 start timer getAnswer for 1 sek
20.01 19:56:55.836 Done timer getAnswer
20.01 19:56:55.836 exec function getAnswer
20.01 19:56:55.836 plugincCommand { unit: 'megad4',
  command: { url: '/sec/?uart_rx=1&mode=rs485', onResponse: 'raw' } }
20.01 19:56:55.975 exec function getResponse
20.01 19:56:55.976 do ACTOR_HEATING_SYS_01 data_status OK (CRC Error - 3)
20.01 19:56:55.976 do ACTOR_HEATING_SYS_01 temp_outside -10.00
20.01 19:56:55.977 assign BOILER_GAS_TEMP_OUTSIDE.value=-10.00
20.01 19:56:55.977 plugincCommand { unit: 'megad4',
  command: '/sec/?uart_tx=0b0400d40001&mode=rs485' }
20.01 19:56:55.977 start timer getAnswer for 1 sek
20.01 19:56:57.042 Done timer getAnswer
20.01 19:56:57.043 exec function getAnswer
20.01 19:56:57.043 plugincCommand { unit: 'megad4',
  command: { url: '/sec/?uart_rx=1&mode=rs485', onResponse: 'raw' } }
20.01 19:56:57.179 exec function getResponse
20.01 19:56:57.180 do ACTOR_HEATING_SYS_01 data_status OK (CRC Error - 3)
20.01 19:56:57.180 do ACTOR_HEATING_SYS_01 Max_Hot_Water 52
20.01 19:56:57.182 plugincCommand { unit: 'megad4',
  command: '/sec/?uart_tx=0b0400d50001&mode=rs485' }
20.01 19:56:57.183 start timer getAnswer for 1 sek
20.01 19:56:58.248 Done timer getAnswer
20.01 19:56:58.249 exec function getAnswer
20.01 19:56:58.249 plugincCommand { unit: 'megad4',
  command: { url: '/sec/?uart_rx=1&mode=rs485', onResponse: 'raw' } }
20.01 19:56:58.382 exec function getResponse
20.01 19:56:58.382 do ACTOR_HEATING_SYS_01 data_status OK (CRC Error - 3)
20.01 19:56:58.383 do ACTOR_HEATING_SYS_01 Min_Hot_Water 35
20.01 19:56:58.383 plugincCommand { unit: 'megad4',
  command: '/sec/?uart_tx=0b0400d60001&mode=rs485' }
20.01 19:56:58.384 start timer getAnswer for 1 sek
20.01 19:56:59.458 Done timer getAnswer
20.01 19:56:59.458 exec function getAnswer
20.01 19:56:59.458 plugincCommand { unit: 'megad4',
  command: { url: '/sec/?uart_rx=1&mode=rs485', onResponse: 'raw' } }
20.01 19:56:59.585 exec function getResponse
20.01 19:56:59.585 do ACTOR_HEATING_SYS_01 data_status OK (CRC Error - 3)
20.01 19:56:59.586 do ACTOR_HEATING_SYS_01 Max_Heating 85
20.01 19:56:59.586 plugincCommand { unit: 'megad4',
  command: '/sec/?uart_tx=0b0400d70001&mode=rs485' }
20.01 19:56:59.587 start timer getAnswer for 1 sek
20.01 19:57:00.664 Done timer getAnswer
20.01 19:57:00.664 exec function getAnswer
20.01 19:57:00.664 plugincCommand { unit: 'megad4',
  command: { url: '/sec/?uart_rx=1&mode=rs485', onResponse: 'raw' } }
20.01 19:57:00.790 exec function getResponse
20.01 19:57:00.790 do ACTOR_HEATING_SYS_01 data_status OK (CRC Error - 3)
20.01 19:57:00.791 do ACTOR_HEATING_SYS_01 Min_Heating 25
20.01 19:57:00.791 exit

Я формирую запрос, а MegaD-2561 считает CRC и отправляет сообщение в модуль. То что модуль отвечает оказывается в буфере MegaD-2561. Контроллер проверяет CRC - если он верный, то возвращает данные, если нет, то ошибку вида CRC Error (эти ошибки я считаю накопительным итогом). Могу попробовать самостоятельно на программном уровне рассчитывать CRC, но думаю, что от этого ничего не изменится.

Вообще, для вашей компании было бы хорошо наладить сотрудничество с производителем MegaD и распространять свою продукцию среди пользователей в том числе портала ab-log - одного из самых продуктивных в рунете по теме автоматизации.

Update 100500:
Почему при считывании регистра хранения 205 (Read-Data Status ID=0), MB всегда = 0? По хорошему в отладочных целях иметь бы что отправил Master to Slave!
Я так полагаю, что котел не переходит на нагрев ГВС потому что модуль все же Master-устройство и в ID=0 должен сообщать котлу что он должен делать! А он отсылает DHW enable = 0 или CH2 enable = 0 (есть сведения, что в некоторых Baxi “Central Heating 2” - это как раз контур ГВС)… как итог, котел не включает нагрев ГВС. Прошу проверить мою гипотезу!

Вообще я может не понимаю в чем задумка данного шлюза? Шлюз - это штука, через которую можно получить доступ к чему-либо. В данном случае - это котел, имеющий интерфейс с протоколом OT.

Тогда по идее я должен мочь с помощью данного шлюза управлять данным котлом, исходя из протокола OT - это как минимум управление битами в HB Read-Data Status MsgID=0. Как раз биты этого сообщения в HB или Master status согласно наименования OT отвечают за управление котлом. В минимальном варианте это:

  1. Включение/выключение Central Heating или первого контура отопления (бит 0)
  2. Включение/выключение Domestic Hot Water или нагрева горячей воды (бит 1)
  3. Включение/выключение Central Heating 2 или второго контура отопления (бит 4)

Я так понимаю, что если это одна из разновидностей котла Baxi, то для нагрева ГВС надо выставить и бит 1 в лог.1, и бит 4 в лог.1.

Ну а вообще раз это OT-шлюз, то в нем должен быть какой-то “прозрачный” режим - по Modbus в регистр сообщаем MSG TYPE, DATA-ID, DATA-VALUE, а он формирует и отправляет в котел фрейм в формате OT, котел отвечает и мы читаем в этом регистре что ответил котел.

1 лайк

Здравствуйте!

Модуль не тестировался в работе со сторонними контроллерами

Убедитесь, что вы используете последнюю версию шаблона модуля (номера регистров из последней версии шаблона): https://github.com/wirenboard/wb-mqtt-serial/blob/master/wb-mqtt-serial-templates/config-wbe2-i-opentherm.json

Если шлюз будет работать только в “прозрачном” режиме, то обмен данными и представление их в веб-интерфейсе придется пользователям реализовывать самим, что не каждому под силу. В данном случае шлюз конвертирует данные, которые может читать, из OpenTherm в UART и обратно, что позволяет подключать его к контроллеру как и остальные Modbus-устройства. От пользователя требуется только добавить модуль в конфигурацию контроллера и выбрать необходимые для опроса регистры.

Если бы вы были инженером, то понимали бы что “другой контроллер” тут не при чем! То что я использую - это НЕ Arduino, а функционально-законченное устройство, производящееся на автоматизированной линии большим тиражом. Самое главное - UART, он и в Африке тоже UART! Поэтому раз производителем заявлен интерфейс UART с логическими уровнями 0…3.3В (питается модуль от 3.3В), то он будет совместим со всеми устройствами, имеющими UART с такими же логическими уровнями.

Как уже говорил - я не использую WB от слова совсем, так же как и “шаблон модуля”. Программная среда в которой я реализовал сценарий работы с модулем - это intraHouse. И да - по поводу регистров - мой первоисточник - это официальная инструкция по эксплуатации шлюза. И самое главное - в таблице регистров ввода находится описание регистра Boiler Status, HB которого управляют котлом, о чем я и пишу, но Вы не понимаете о чем речь, поскольку совсем этого не знаете…

Давайте так - производитель в инструкции и на сайте назвал это устройство ШЛЮЗом. Шлюз - это устройство, обеспечивающее доступ из одной среды (в данном случае UART) в другую (OpenTherm). В данном случае это обеспечивается, но только по “заранее” запрограммированным параметрам. Пусть это будет так, но для гибкости использования неплохо было бы иметь СПЕЦИАЛЬНЫЙ регистр хранения для реализации возможности “прозрачного” обмена данными с котлом. То есть функционал, который я описывал - “по Modbus в регистр сообщаем MSG TYPE, DATA-ID, DATA-VALUE, а он формирует и отправляет в котел фрейм в формате OT, котел отвечает и мы читаем в этом регистре что ответил котел.”