Статья

Отопление под контролем. Интегрируем модуль управления котлом в Home Assistant

В предыдущей статье  уже рассказывал о новом модуле управления котлом BCG-1.1.3-WF, а теперь предлагаю вашему вниманию описание примера интеграции этого модуля в популярную систему автоматики Home Assistant. Система автоматики Home Assistant может взаимодействовать с модулем управления котлом через MQTT-брокера. Мы использовали MQTT-брокер, встроенный в ПО контроллера Wiren Board 6 (WB6), но может быть использован и другой MQTT-брокер. Соответственно, в Home Assistant должна быть установлена интеграция MQTT (НАСТРОЙКИ/ИНТЕГРАЦИИ…). Эта интеграция должна быть настроена (указан IP-адрес и порт используемого брокера).

Модуль управления должен быть настроен для связи с этим же MQTT-брокером. В WEB-интерфейсе модуля на странице «Настройка» в разделе «MQTT-клиент» следует указать адрес, порт брокера, а также логин и пароль доступа, если они установлены для брокера.

Страница настройки в WEB-интерфейсе модуля
Выбор стороннего датчика температуры из топика на MQTT-брокере

Там же необходимо указать префикс топиков, который будет использоваться модулем для связи с брокером. Можно оставить префикс без изменений и будет использован прописанный по умолчанию. Не забудьте перевести переключатель «Клиент» в положение «Включен» и нажать на кнопку «Сохранить» внизу экрана. После этого модуль управления соединится с указанным брокером. Об успешном выполнении этой операции сообщит зеленый цвет индикатора «Соединение» на странице «Настройки» WEB-интерфейса модуля.

Обращаю ваше внимание на то, что модуль может использовать для работы информацию о температуре не только от подключенного к нему NTC-датчика, но и информацию от сторонних датчиков температуры, публикующих свои данные на MQTT-брокере. Для этого надо на странице «Настройки» выбрать датчик «MQTT, API» и в поле «Топик Temp MQTT» указать топик, в который публикует свои данные нужный вам датчик температуры. Теперь можно, например, для работы в погодозависимом режиме использовать уже работающий в вашей системе автоматики датчик уличной температуры. Модуль подпишется на его топик на брокере и будет использовать эти данные для управления котлом.

После соединения с брокером модуль сразу начинает публиковать там свои данные.Для внешней автоматики модуль управления представляет собой 29 сущностей (из них 18 Sensor, 5 Binary sensor, 1 Switch и остальные Text ).

В Home Assistant предусмотрено два способа интеграции устройств через MQTT. Рассмотрим немного подробнее оба способа.

1. Ручной способ с описанием каждой сущности устройства в конфигурационном файле.

Для Home Assistant их надо описать в конфигурационном файле с именем mqtt.yaml и разместить его в каталоге /config вместе с файлом configuration.yaml. Работа эта кропотливая и требует внимания и усидчивости. Для тех, кто решит пойти этим путем, выкладываю на сервере уже подготовленный конфигурационный файл mqtt.yaml . В этом файле прописаны конкретные топики, формируемые модулем при сохранении настроек по умолчанию. Если вы в настройках модуля меняли префикс топиков, то во всем файле надо будет привести в соответствие имена топиков.

После создания (редактирования) файла mqtt.yaml в каталоге /config следует произвести «перезагрузку конфигурации YAMLобъектов интеграции MQTT, настроенных вручную» (ПАНЕЛЬ РАЗРАБОТЧИКА /YAML) и новые сущности модуля управления котлом станут доступны для использования. Их можно будет увидеть в списке объектов (ПАНЕЛЬ РАЗРАБОТЧИКА/СОСТОЯНИЯ) и можно использовать для организации интерфейса, а также в автоматизациях.

Для того, чтобы сущности отобразить в интерфейсе Home Assistant в виде панели управления, воспользуемся средствами описания пользовательского интерфейса Lovelace.

Модуль управления может работать в четырех основных режимах, которые задаются при настройке в WEB-интерфейсе (постоянная температура подачи, программный термостат по комнатной температуре, погодозависимое управление и работа со внешним термостатом). Установленный режим публикуется модулем в топике /devices/BCG113/controls/BCGRegim. Для каждого из режимов строится свой специфический интерфейс с набором необходимых органов управления.

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

Для того, чтобы без трудоемкого ручного ввода описания карточек Lovelace-интерфейса вы могли попробовать работу с этими интерфейсами, я подготовил и выложил на сервере yaml-файл, содержащий описание карточек. При создании этого интерфейса были использованы загруженные из открытого community-репозитория библиотеки карточек Mushroom Cards, button-card, Better Thermostat UI, Dark Thermostat, Simple Thermostat и тема Mushroom Shadow. Перед загрузкой этого примера интерфейса перечисленные библиотеки карточек надо установить в ваш Home Assistant используя HACS. Как это сделать есть много инструкций на просторах интернета.

На главной панели входим в режим редактирования (правый верхний угол экрана три точки). Создаем новую вкладку или даже новую дополнительную панель, входим в режим ее изменения. Жмем синюю кнопку «Добавить карточку», в открывшемся окне выбора типа карточки проматываем в самый низ и выбираем «Ручная настройка». Откроется окно «Настройка карточки» с текстовым редактором в левой части. Надо в этом редакторе удалить подсказку и вставить содержимое файла интерфейса модуля. Затем, внизу справа нажимаем «Сохранить» и завершаем процесс изменения панели, нажав на кнопку в рамке «Готово» в правом верхнем углу экрана. Внешний вид панели будет соответствовать одной из четырех картинок в зависимости от того в каком режиме сконфигурирован модуль управления котлом.

2. Автоматический поиск устройств на MQTT-брокере.

Модуль после присоединения к брокеру должен создать в его корне топик homeassistant, в подтопиках которого будет помещена вся необходимая конфигурационная информация для Home Assistant. Контроллер Home Assistant, обнаружив на брокере топик homeassistant, считает оттуда все конфигурационные данные и на их основе создаст устройство со всеми принадлежащими ему сущностями. Их можно будет увидеть в списке объектов (ПАНЕЛЬ РАЗРАБОТЧИКА/СОСТОЯНИЯ) и можно использовать для организации интерфейса, а также в автоматизациях. В настоящий момент этот функционал в разработке и будет доступен в последующих обновлениях прошивки.

Для того, чтобы сущности отобразить в интерфейсе Home Assistant в виде панели управления, воспользуемся средствами описания пользовательского интерфейса Lovelace.

Модуль управления может работать в четырех основных режимах, которые задаются при настройке в WEB-интерфейсе (постоянная температура подачи, программный термостат по комнатной температуре, погодозависимое управление и работа со внешним термостатом) . Установленный режим публикуется модулем в топике /devices/BCG113/controls/BCGRegim. Для каждого из режимов строится свой специфический интерфейс с набором необходимых органов управления.

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

Чтобы без трудоемкого ручного ввода описания карточек Lovelace-интерфейса вы могли попробовать работу с этими интерфейсами, я подготовил и выложил на сервере yaml-файл, содержащий описание карточек. При создании этого интерфейса были использованы загруженные из открытого community-репозитория библиотеки карточек Mushroom Cards, button-card, Better Thermostat UI, Dark Thermostat, Simple Thermostat и тема Mushroom Shadow. Перед загрузкой этого примера интерфейса перечисленные библиотеки карточек надо установить в ваш Home Assistant используя HACS. Как это сделать есть много инструкций на просторах интернета.

На главной панели входим в режим редактирования (правый верхний угол экрана три точки). Создаем новую вкладку или даже новую дополнительную панель, входим в режим ее изменения. Жмем синюю кнопку «Добавить карточку», в открывшемся окне выбора типа карточки проматываем в самый низ и выбираем «Ручная настройка». Откроется окно «Настройка карточки» с текстовым редактором в левой части. Надо в этом редакторе удалить подсказку и вставить содержимое файла интерфейса модуля. Затем, внизу справа нажимаем «Сохранить» и завершаем процесс изменения панели, нажав на кнопку в рамке «Готово» в правом верхнем углу экрана. Внешний вид панели будет соответствовать одной из четырех картинок в зависимости от того в каком режиме сконфигурирован модуль управления котлом.

Интерфейс в режиме постоянной температуры подачи
Интерфейс в режиме термостата по комнатной температуре
Интерфейс в режиме работы с комнатным внешним термостатом

Теперь мы можем из автоматики Home Assistant полноценно взаимодействовать с отопительным оборудованием дома, видеть всю доступную телеметрическую информацию от котла, управлять работой отопления и горячего водоснабжения.

Вот только два примера использования данных, полученных от котла, в автоматизациях:

  • Работа по расписанию – поддержание температуры в помещениях по заданному расписанию либо по событиям (например, дом поставлен на охрану и отопление переводится на пониженные значения с подтверждением изменения режима через уведомления в Telegram).
  • Контроль давления в котловом контуре – при снижении давления в котловом контуре ниже установленного порога отправка уведомления с предупреждением. Своевременное восстановление давления в контуре и выяснение причин снижения давления позволит предотвратить неожиданную остановку котла при критической потере давления, когда сработает защитная автоматика самого котла. Вообще, наблюдение за изменением давления в отопительном контуре в разных режимах работы котла позволяет заблаговременно обнаружить целый ряд неисправностей в отопительной системе, но это, пожалуй, тема для отдельной статьи.

А для СпруХаба шаблон не делали?


Есть у меня тестовый шаблон для СХ, на котором проверил взаимодействие с модулем. Если удастся выкроить время, то скоро будет готово четыре разных шаблона для СХ.
Дело в том, что модуль может работать с котлом в четырех основных режимах управления (описаны в статье). Для каждого из этих режимов будет отдельный шаблон. В Home Assistant можно было создавать условные карточки сущностей, которые отображались или не отображались в зависимости от значений параметров (что я и реализовал в примере). Как такое реализовать для СХ я не знаю. Поэтому будет четыре отдельных шаблона.
Выложи шаблон для режима 1
Поддержание постоянной заданной температуры теплоносителя.
и режима 2
Погодо-зависимое управление. Температура теплоносителя поддерживается в соответствии с температурной кривой в зависимости от температуры на улице (к модулю подключается датчик уличной температуры).
И скриншоты...
Есть проблема интеграции c HA у устройства при авторизации на MQTT брокере если используется логин и пароль. Что бы не указывалось в настройках MQTT клиента брокеру передаются пустые значения вместо имени у пароля. Использование номера порта 8883 вместо 1883 согласно инструкции > "Порт – 1883, стандартный для протокола MQTT, используется при незашифрованном подключении (не используется логин и пароль)– поля Login и Password не заполнены. Если
требуется работа в закрытом режиме (введены логин и пароль) – нужно использовать порт"
8883" Не помогает.
К сожалению, в руководстве по эксплуатации допущена ошибка. Для связи с MQTT-брокером надо использовать только порт 1883 (и для работы без логин/пароля, и для работы с логин/паролем). В руководство будет внесено исправление. Работу модуля с логин/паролем сейчас еще раз протестировал - обмен с брокером идет нормально.


Пытался подключится с авторизацией как к брокеру mosquitto аддону HA так и к отдельно установленному по порту 1883. В логах ошибка: error: received null username or password for unpwd check. Помогите пожалуйста разобраться в чем дело.
На первом скриншоте я вижу, что модуль не подключился к MQTT-брокеру - индикатор "Соединение" серый, а должен стать темно-зеленым при успешном соединении с брокером.
Рекомендую повторить такую последовательность действий:
1. В WEB-интерфейсе модуля на вкладке "Настройки" в разделе "MQTT-клиент вводим IP-адрес брокера (он станет ярко-черным), вводим номер порта 1883, вводим логин, вводим пароль.
2. Внизу справа жмем кнопку "Сохранить"
3. Обновляем страницу браузера (Ctrl-F5). Должен индикатор "Соединение" стать ярким зеленым (бирюзовым).
4. Если после обновления страницы браузера индикатор "Соединение" остается серым, то на этой же вкладке выше жмем "Рестарт устройства"
Я прямо сейчас произвел эти действия и получил положительный результат: индикатор показывает наличие соединения, MQTT-Explorer показывает приходящие от модуля топики с меняющимися данными, а в Home Assistant отображаются изменяющиеся параметры котла.
За подробностями обращайтесь в техническую поддержку или ко мне в ЛС.
Привет! У меня такая же проблема, один в один. Нужно писать в поддержку, а они попросят обновить прошивку устройства.

Для того, что бы обновить прошивку нужно:

1. Получить файл с прошивкой у поддержки
2. Получить код для прошивки. Выдается индивидуально, после того, как предоставите данные об устройстве

Дальше я пока не дошел. Тот факт, что люди сталкиваются с такими проблемами при покупке устройства - неприятно. У меня эта эпопея связана еще с тем, что я не имею ежедневно прямого доступа к устройству, бываю на месте в выходные, а в выходные поддержка не работает.

Кажется неплохо было бы описать эту проблему и пути ее решения на сайте производителя или на YouTube канале снять ролик. Вроде изначально все выглядело предельно просто, а на практике ПО очень сырое, корректно не работает и не реализует тот функционал о котором заявлено.
Сразу после получения отзыва пользователя с описанием ошибки произведена диагностика и внесены исправления в прошивку. Дополнительно в прошивку внесены плановые усовершенствования. Сейчас доступна для обновления прошивка версии 1.45
В этой версии произвели следующие изменения:
1. Исправлена ошибка подключения к MQTT брокеру по логину/паролю (порт 1883).
2. Добавлена возможность очищать пароль (задание пустого пароля) для доступа к MQTT брокеру во вкладке «Настройки» вэб интерфейса.
3. Добавлена возможность в приложении переключать режим Зима/Лето/Ожидание.
4. Добавлено в приложении отображение ID устройства и версии прошивки для удобства общения с техподдержкой.
5. Добавлены поля номера ПО и MAC устройства в API и MQTT топик.
6. Добавлен вызов API данных и информации об устройстве во вкладке «Настройки» вэб интерфейса.
Обновление устройства осуществляется путем отправки прошивки пользователю по заявке. Для исключения несанкционированного обновления необходимо прислать скриншот вкладки Настройка, на котором виден идентификатор устройства.
Запрос направлять на почту info@nevoton.ru с темой «Обновление OTLite».
Обновление проводится "по воздуху".
Описание процесса обновления прошивки в ближайшее время будет доступно на сайте производителя.
ПО новое и живое, так как реакция на обнаруженные проблемы происходит быстро. Функционал в полном объеме восстановлен.
Вам, как я знаю, уже выслана обновленная прошивка и код для программирования. Пользуйтесь и получайте пользу и удовольствие.
Спасибо, вы правы. Сергей из поддержки мне помог. Осталось немного разобраться с настройкой MQTT и думаю, что ожидаемый функционал будет получен. Удачи вашему продукту и компании!
Получил и установил обновление. Проблема с авторизацией MQTT решена. Интеграцию с HA тоже настроил по вашим примерам. Спасибо!
3 дня пользуюсь данным модулем, настройка и прокидка в НА прошла в целом без проблем. Но работа отопления пока не устраивает, общаюсь с поддержкой, оперативно отвечают. Кто уже подтянул температуру из НА в модуль, научите. Никак не разберусь с этим MQTT.
Только что с товарищем разбирались с подключением внешнего датчика через MQTT. Надо правильно указывать имена топиков, искомый топик должен содержать значение температуры, а не json-строку. После задания настроек они должны быть сохранены и модуль должен быть перезагружен. И есть нюанс - топик, из которого будет забираться температура из HA должен иметь признак Retain. После этого все работает.
Все получилось.

Вернуться назад
Вернуться назад