Подробное руководство по подключению котлов Vaillant (электрического eloBLOCK и газового atmoTEC) к Home Assistant через протокол eBUS, демон ebusd и MQTT. Разбираем аппаратную часть, конфигурационные файлы, управление мощностью и автоматизацию отопления.
Кому подойдёт: тем, у кого уже стоит Vaillant eloBLOCK или atmoTEC и есть Home Assistant (или планируется). Пригодятся базовое понимание Docker, MQTT и умение подключать провода по схеме. Весь код и конфиги — в репозитории на GitHub.
Зачем всё это нужно?
Современные котлы Vaillant оснащены цифровой шиной eBUS — проприетарным протоколом Vaillant Group, позволяющим обмениваться данными между котлом, терморегуляторами и внешними системами. По этой шине можно не только читать десятки параметров (температуры, давление, ступени мощности, часы наработки), но и записывать настройки — менять уставки температуры, включать/выключать режимы.
Что даёт интеграция с умным домом:
Мониторинг в реальном времени: температура теплоносителя, давление в системе, потребляемая мощность
Графики потребления энергии в Home Assistant Energy Dashboard
Управление расписанием отопления через автоматизации
Ограничение потребляемой мощности при пиковой нагрузке
Push-уведомления при ошибках и аварийных ситуациях
Экономия на отоплении: ночной нагрев по дешёвому тарифу
Архитектура решения

Компоненты:
Компонент | Назначение | Вариант |
|---|---|---|
eBUS Adapter | Физическое подключение к шине | Shield v5, v5-c6 |
USR-ES1 | Ethernet-модуль для адаптера | Опционально |
ebusd | Демон для декодирования eBUS | Docker / Home Assistant addon |
MQTT broker | Шина сообщений | Mosquitto |
Home Assistant | Умный дом | HAOS / Docker |
Аппаратная часть: адаптер eBUS
Выбор адаптера
Рекомендуемый вариант — eBUS Adapter Shield v5 (или v5-c6). Это компактная плата (37×26 мм) с:
Полной гальванической изоляцией
Нулевым потреблением от шины eBUS
Поддержкой WiFi (встроенная антенна), USB, GPIO и Ethernet
OTA-обновлением прошивки
💡 Почему v5? В отличие от USB-адаптеров, сетевое подключение (WiFi/Ethernet) устраняет задержки USB-драйверов и джиттер, критичные для синхронизации на eBUS.
Подключение к котлу
Шина eBUS — это два провода, полярность не имеет значения. Подключаться можно в любой точке цепи параллельно другим устройствам (термостатам, модулям расширения).

Модуль USR-ES1 (опционально)
Для подключения Shield v5 по Ethernet используется модуль USR-ES1 (W5500-совместимый). Он снижает задержки по сравнению с WiFi, что особенно важно при нестабильном WiFi-соединени��.
Схема подключения USR-ES1 к Shield v5:

Установка и настройка ebusd
Вариант 1: Docker Compose (рекомендуется)
Полный пример с переменными окружения (адрес адаптера, MQTT, пути к конфигам): docker-compose.yml в репозитории проекта.
Вариант 2: Home Assistant addon (HAOS)
Установка: Supervisor → Add-on Store → репозиторий LukasGrebe/ha-addons.
Пример конфигурации addon: ebusd.txt.
Конфигурационные файлы ebusd
После запуска ebusd автоматически скачивает конфигурации с CDN. Но для кастомных котлов (eloBLOCK, atmoTEC определённых версий прошивки) нужны свои .inc файлы.
Структура конфигов: в 08.bai.csv задаётся маршрутизация по PROD/HW (какой .inc грузить); наши файлы — bai.0010023658.inc (eloBLOCK) и bai.0010015251.inc (atmoTEC). Полное дерево и описание — в репозитории.
Конфигурационные файлы: как это работает

Формат CSV-файлов ebusd
Каждая строка в .inc описывает один регистр: тип доступа, имя, адрес (ID), тип данных и т.д. Пример строки: r,,FlowTemp,d.40,,,,1800,,,tempsensor,,,flow temperature — чтение (r), имя в MQTT FlowTemp, адрес 1800, тип tempsensor. Полный формат полей и примеры — в файлах bai.0010023658.inc и bai.0010015251.inc в репозитории.
Типы доступа:
Префикс | Значение |
|---|---|
r | Только чтение |
r;w | Чтение и запись |
r;wi | Чтение + запись (install level) |
r;ws | Чтение + запись (service level) |
r1 | Приоритетное чтение (poll priority 1) |
Файл маршрутизации 08.bai.csv: по коду PROD (или HW при fallback) подгружается нужный .inc. Примеры строк — в 08.bai.csv в репозитории.
Котёл Vaillant eloBLOCK: электрические особенности
Модель: VE 14/18 кВт (PROD=0010023658, SW0109, HW7503)
eloBLOCK — это электрический котёл без газового тракта, вентилятора и CO-датчика. Поэтому в конфигурационном файле закомментированы все газоспецифичные параметры.
Специфические параметры электрического котла
⚠️ Результаты живых тестов (2026-03-02, PROD=0010023658 VE14, SW=0109): параметры d.104–d.108 (MaxPower, TotalEnergy, ElementHours, CurrentPower) недоступны через стандартный eBUS-опрос на SW=0109. HeatingStage2 (EE01) отсутствует на VE14 (двухэлементная конфигурация: stage1 + stage3).
Описание параметров eloBLOCK (ступени нагрева ED01/EF01, PartloadHwcKW A900, закомментированные d.104–d.108) — в bai.0010023658.inc.
Таблица параметров eloBLOCK по уровням диагностики
Параметр | Адрес | Тип | Описание | Статус |
|---|---|---|---|---|
PartloadHcKW | 6C00 | power | Частичная нагрузка CH | ✅ Работает |
PartloadHwcKW | A900 | UCH | Лимит нагрузки ГВС | ✅ Подтверждено (live test + community) |
FlowTemp | 1800 | tempsensor | Температура подачи | ✅ Работает |
WP | 4400 | onoff | Насос отопления | ✅ Работает |
HeatingDemand | 4000 | yesno | Запрос тепла | ✅ Работает |
HeatingStage1 | ED01 | onoff | Ступень нагрева 1 | ✅ Работает (r1) |
HeatingStage2 | EE01 | onoff | Ступень нагрева 2 | ❌ Отсутствует на VE14 |
HeatingStage3 | EF01 | onoff | Ступень нагрева 3 | ✅ Работает (r1) |
ActiveStages | F001 | UCH | Активные ступени | ⚠️ Постоянно 0xC0=192, значение не расшифровано |
OverTempStatus | D501 | temp | Порог защиты от перегрева | ⚠️ Только пассивный захват; в HA делить на 10 |
MaxPower | A201 | UCH | Макс. мощность | ❌ Недоступно на SW=0109 |
TotalEnergy | B301 | ULG | Суммарная энергия | ❌ Недоступно на SW=0109 |
ElementHours | C401 | hoursum2 | Часы ТЭНов | ❌ Недоступно на SW=0109 |
CurrentPower | E601 | — | Текущая мощность | ❌ Недоступно на SW=0109 |
EBusHeatcontrol | 0004 | — | Цифровой регулятор | ❌ Не применимо |
VortexFlowSensor | D500 | — | Вихревой расходомер | ❌ Не применимо |
Котёл Vaillant atmoTEC plus: газовые особенности
Модель: VUW (PROD=0010015251, SW0407, HW0903)
atmoTEC plus — атмосферный газовый котёл. Несмотря на название «plus», в данной версии прошивки (SW0407/HW0903) отсутствует CO-датчик (atmoGuard). Поэтому все параметры группы e.04–e.19 (SMGV, CO-концентрация, калибровка горелки) недоступны на этой версии прошивки и закомментированы.
Ключевые параметры atmoTEC (температуры, горелка, ГВС, диагностика) и их адреса — в bai.0010015251.inc.
Параметры, недоступные на SW0407
Все ошибки типа ERR: invalid position в ebusd_atmoTEC.log относятся к:
CO-сенсорным параметрам (e.04–e.19) — только для atmoTEC PLUS
Калибровочным параметрам (TTM_*, TTL_*, TTH_*) — добавлены в более новых версиях SW
Предиктивным параметрам для вентилятора (Pred_FanPWM_*) — SW0407 не поддерживает
MQTT и интеграция с Home Assistant

MQTT Discovery
Файл mqtt-hassio.cfg автоматически создаёт сущности в HA через механизм MQTT Discovery. После запуска ebusd в Home Assistant появятся устройства с параметрами котла.
Ключевые настройки: filter-seen = 5, filter-direction = r|u|^w, filter-level = ^$. Полный файл — mqtt-hassio.cfg в репозитории.
Топики вида ebusd/bai/FlowTemp, ebusd/bai/HeatingDemand, ebusd/bai/HeatingSwitch/set и т.д. — ebusd публикует значения и принимает команды записи по MQTT Discovery.
Примеры карточек Lovelace и настройка Energy Dashboard (device_class: energy, state_class: total_increasing для счётчика) — в репозитории (README, конфиги и примеры).
Управление мощностью через сухой контакт + ESPHome
Принцип работы

eloBLOCK имеет су��ой контакт (ESCO/X2, клеммы котла) для ограничения мощности. Принцип: разомкнутый контакт — полная мощность, замкнутый — ограничение активно (S.174 Energy saving). Согласно мануалу Vaillant 0020265768_01, стр. 10 и 19.

⚠️ При ограничении «по всем фазам» на котле 18 кВт шаг кратен 6 кВт (6/12/18 кВт).
Схема подключения ESP-01S
Подключаем NO + COM. При отключении питания ESP реле обесточивается → NO разомкнут → котёл на полной мощности (безопасный default).
Логика работы:
Состояние реле | NO-COM | Мощность котла |
|---|---|---|
Выключено (ESP недоступен, default) | Разомкнуто | Полная ✅ |
Включено (команда из HA: limit) | Замкнуто | Снижена на D.153 кВт ⚡ |
Конфигурация ESPHome для реле (ESP-01S, GPIO0, NO+COM): vaillant_power.yaml. Пример автоматизации в Home Assistant (триггер по мощности стиральной машины, включение ограничения на 30 минут) — в репозитории проекта (README и примеры).
Автоматизация отопления
Термостаты и актуаторы

Рекомендуемая схема для зонального отопления:
Термостаты подключаются к контроллеру пола (Beok CCT-10). Контроллер управляет гребенкой: головками (клапанами), насосом и запросом тепла у котла (сухой контакт OR). Гребенка содержит головки, насос и байпас.
Важно: У котлов Vaillant нет байпаса. Хотя бы один радиатор должен быть открыт, пока работает котёл. Достигается программной калибровкой термостатических головок.
Рекомендуемый Blueprint для расписания и присутствия: Advanced Heating Control (panhans).
Логика:
Ночной нагрев по льготному тарифу (ночная зона)
Присутствие людей дома → активное отопление
Отсутствие людей → режим экономии
Тёплый пол отключается раньше радиаторов
Каскадное подключение котлов
При каскадировании двух eloBLOCK есть ограничения:
⚠️ Сухие контакты нельзя соединять параллельно — иначе ограничение применится к обоим котлам. Каждый котёл — отдельный адаптер, отдельный контейнер ebusd, отдельное реле.
Пример двух сервисов ebusd с разными EBUSD_DEVICE и EBUSD_MQTTTOPIC: docker-compose.yml (в репозитории можно расширить под второй котёл по аналогии).
Диагностика ошибок
ERR: invalid position
Самая частая ошибка в логах ebusd. Возникает когда:
Регистр существует в конфиге, но физически отсутствует на данной версии котла/прошивки
Котёл возвращает 00 (1 байт) вместо ожидаемых нескольких байт
Решение: закомментировать проблемный параметр в .inc файле. Смотрите готовые комментарии в файлах проекта.
ERR: argument value out of valid range
Возникает для параметра DCFTimeDate когда к котлу не подключена DCF-антенна. Не критично — просто нет синхронизации времени по радиосигналу.
SetModeOverride — управление котлом как термостат
Параметр SetModeOverride позволяет управлять котлом через eBUS как будто подключён термостат — без внешнего железа. Подтверждено на 0010023657 (SW=0109) пользователем @stalniy.
⚠️ Важно: команду нужно отправлять каждые ~60 секунд. Котёл возвращается к настройкам дисплея если не получает обновление.
Примеры: включить отопление — ebusctl w -c bai SetModeOverride "1;55;45;-;-;0;0;0;-;0;0;0" (hcmode=1, flowtemp=55°C); выключить — hcmode=0 в том же формате. Полный набор команд ebusctl — в документации ebusd и в репозитории проекта.
Полезные команды ebusctl: ebusctl i — список устройств; ebusctl read bai FlowTemp — чтение параметра; ebusctl write bai HeatingSwitch on — запись; ebusctl find -r | grep ERR — параметры с ошибками; ebusctl hex b509 0d E601 — сырой запрос для проверки адреса. Логи: docker logs -f ebusd, фильтр ошибок — grep "ERR:". Подробнее — в wiki ebusd.
Итоги и планы
Что получилось
✅ Работает стабильно (подтверждено живыми тестами 2026-03-02):
Мониторинг 30+ параметров eloBLOCK в Home Assistant
Управление режимами отопления (HeatingSwitch, HwcSwitch)
Ступени нагрева: HeatingStage1 (ED01) и HeatingStage3 (EF01) — r1 опрос
Лимит нагрузки ГВС: PartloadHwcKW (A900) — адрес подтверждён сообществом и тестом
Управление мощностью через ESP-01S реле (NO+COM)
SetModeOverride — эмуляция термостата через eBUS (без внешнего железа)
⚠️ Требует уточнения / помощи сообщества:
Адреса eBUS для D.152 (фаза) и D.153 (уровень ограничения) — не найдены нигде. Метод: ebusctl grab result all до и после смены D.152 на дисплее котла
ActiveStages (F001) — постоянно 0xC0=192 на VE14; значение не расшифровано
OverTempStatus (D501) — пассивный захват, масштаб ×10 (raw 1702 = 85.1°C)
❌ Недоступно на SW=0109 (подтверждено живым тестом):
MaxPower (A201), TotalEnergy (B301), ElementHours (C401), CurrentPower (E601) — нет ответа на стандартный r/r1 опрос
HeatingStage2 (EE01) — отсутствует на VE14 (двухэлементная конфигурация)
Параметры CO-датчика (atmoTEC plus без atmoGuard на SW0407)
Предиктивная аналитика вентилятора и CO-сенсора (SW0407)
VortexFlowSensor на eloBLOCK HW7503
Находки из официального мануала Vaillant (0020265768_01)
В ходе исследования был обнаружен официальный мануал по монтажу и обслуживанию eloBLOCK (ManualsLib, 32 стр.), содержащий полную таблицу диагностических кодов D.xxx:
Код | Параметр | Описание |
|---|---|---|
D.149 | Детализация ошибки F.075 | 0=OK, 1=насос заблокирован, 2=эл. неисправность, 3=сухой ход, 4=низкое напряжение, 5=датчик давления, 6=нет PWM |
D.152 | Фаза ограничения мощности | 0=нет, 1=фаза1, 2=фаза2, 3=фаза3, 4=все фазы — записываемый! |
D.153 | Уровень ограничения (кВт) | Вычитается из текущей мощности — записываемый! |
D.154 | Защита от замерзания | Активация/деактивация |
D.155 | Текущая мощность (дисплей) | Непрерывно обновляется |
D.093 | Вариант устройства | 0-7 = 6/9/12/14/18/21/24/28 кВт (насос HE); 8-15 = те же с 2-ступ. насосом |
Критическая находка: параметры D.152 и D.153 — это программный аналог физического сухого контакта! Если удастся определить их eBUS-адреса, управление мощностью котла станет полностью программным, без ESP-01S и реле. Метод поиска: ebusctl grab result all до и после изменения D.152 на дисплее котла.
Куда двигаться дальше
Найти eBUS-адреса D.152/D.153 — метод: ebusctl grab result all до и после изменения параметра на дисплее котла. Это откроет возможность software power limiting
Помочь с параметрами — если у вас eloBLOCK или atmoTEC, поделитесь значениями неизвестных регистров через Issues
Миграция на TypeSpec — ebusd v24+ поддерживает новый формат конфигов .tsp
Добавить hcmode — управление режимами отопительного контура через B511 протокол
Полезные ссылки
Репозиторий проекта — конфиги, примеры, полный код
ebusd wiki — документация демона
ebusd-configuration — официальные конфиги котлов
eBUS Adapter Shield v5 — рекомендуемый адаптер
Home Assistant addon ebusd — дополнение для HAOS
WThermostatBeca — прошивка для термостатов Beca
Туториал @stalniy по eloBLOCK — полное руководство и скрипт поиска регистров
Advanced Heating Control Blueprint — автоматизация отопления
Приложение: схема регистров eloBLOCK
Сводная таблица регистров по группам (d.00–d.47, d.60–d.96, d.100–d.108, D.149–D.155) с адресами eBUS и статусом по живым тестам — в файле bai.0010023658.inc и в комментариях к нему в репозитории.
Статья написана на основе личного опыта эксплуатации Vaillant eloBLOCK VE18 и atmoTEC plus. Обратная связь и pull requests приветствуются: репозиторий проекта.
