После выхода статьи "Погодозависимая автоматика для газового котла своими руками. Технологии умного дома." часто получаю вопросы по поводу интеграции WDA Sensor. Возникает непонимание по поводу практики применения. В данном материале попробую подробно рассказать как настраивать и использовать данную интеграцию.
Сама интеграция очень простая. На основе параметров указанных пользователем, она рассчитывает целевую температуру теплоносителя и предоставляет её в виде сенсора с числовыми показаниями. Самые важные параметры, которые влияют на расчёт, — это номер кривой (от 1 до 200) и сенсор, предоставляющий показания уличной температуры. Это может быть как ваш собственный датчик, так и показания погодного сервиса.
Показания WDA Sensor могут быть использованы для периодической записи в настройки вашего отопительного оборудования (газового или электрического котла). Записывать можно как по событию изменения значения, так и с определённой периодичностью (об этом далее). Возможность записи в произвольное оборудование, конечно же, не поддерживается; этот функционал должен предоставляться другими интеграциями, которые реализуют управление конкретно вашим котлом.
В текущей версии v1.1.0 интеграция предоставляет три сенсора:
Целевая температура теплоносителя
Целевая температура теплоносителя (периодический)
Данные для построения кривой
Далее я опишу все параметры, которые можно настроить:
Название — произвольное название группы сенсоров
Минимальная и максимальная температура теплоносителя — эти параметры нужно устанавливать в соответствии с диапазоном указанным в паспорте вашего котла.
Целевая температура в помещении — укажите ту температуру, которую вы хотите поддерживать в помещении. Напрямую связан с параметрами "Внутренняя температура" и "Коэффициент коррекции по внутренней температуре".
Номер отопительной кривой — от 1 до 200, чем выше значение тем более агрессивное регулирование будет применяться. Подбирается индивидуально опытным путём. Графики привёл ниже.
Интервал обновления — как часто будут рассчитываться показания сенсора. Применяется только для сенсора "Целевая температура теплоносителя (периодический)". Чуть ниже будут подробности.
Наружная температура — здесь необходимо из списка выбрать сенсор, который предоставляет температуру на улице.
Внутренняя температура (опционально) — здесь необходимо из списка выбрать сенсор, который предоставляет температуру внутри помещения. Если параметр будет заполнен, то будет производиться корректировка по внутренней температуре, по следующему правилу: на каждый 1°C разницы между желаемой (п.3) и фактической температурой в помещении (п.7) целевая температура теплоносителя корректируется на ±2°C (по умолчанию). Умолчание можно корректировать, изменяя параметр "Коэффициент коррекции по внутренней температуре".
Скорость ветра (опционально) — здесь необходимо из списка выбрать сенсор, который предоставляет скорость ветра. Если параметр будет заполнен, то будет производиться корректировка по скорости ветра, по следующему правилу: на каждые 5 м/с скорости ветра целевая температура теплоносителя увеличивается на 1°C (по умолчанию). Умолчание можно корректировать, изменяя параметр "Коэффициент коррекции по скорости ветра". Откуда берется 1°C, если в коэффициенте значение 0.2? Из только что описанного правила: 5 * 0.2 = 1. Так работают все коэффициенты.
Влажность снаружи (опционально) — здесь необходимо из списка выбрать сенсор, который предоставляет влажность воздуха на улице. Если параметр будет заполнен, то будет производиться корректировка по влажности, по следующему правилу: на каждые 10% влажности свыше 50% целевая температура теплоносителя увеличивается на 0.5°C (по умолчанию). Умолчание можно корректировать, изменяя параметр "Коэффициент коррекции по влажности".
Коэффициент коррекции по внутренней температуре — диапазон от 0 до 10, по умолчанию 2.
Коэффициент коррекции по скорости ветра — диапазон от 0 до 1, по умолчанию 0.2.
Коэффициент коррекции по влажности — диапазон от 0 до 0.4, по умолчанию 0.05.
Минимальная (по умолчанию 1.2) и максимальная экспонента (по умолчанию 2.2) — определяет форму кривой, вначале более резкий рост, в конце более плавный. Чем меньше минимальное значение, тем более агрессивный рост в начале и чем больше максимальное, тем более плавный рост в конце. Имеет смысл менять, если не удалось подобрать кривую с параметрами по умолчанию.
Диапазон для обоих параметров 0 - 4
Отопительные кривые
Для параметров минимальной и максимальной экспоненты по умолчанию (1.2 - 2.2):

Описание сенсоров
Целевая температура теплоносителя
Предоставляет рассчитанную целевую температуру теплоносителя. Обновляется немедленно, как только изменились показания любого из сенсоров, указанных в настройках. Например, при изменении показаний температуры на улице немедленно изменяются показания и этого сенсора.
Целевая температура теплоносителя (периодический)
Также предоставляет рассчитанную целевую температуру теплоносителя, но обновляется с указанной периодичностью. См. описание параметра "Интервал обновления".
Данный сенсор появился в версии v1.1.0. Применять целесообразно для котлов или адаптеров, которые записывают переданную им температуру в ПЗУ. Как известно ПЗУ обычно имеет фиксированное количество циклов записи-перезаписи.
Представим, что у нас есть датчик внутренней температуры, который передаёт показания каждые 10 секунд, с точностью до двух знаков. Практически каждую передачу значение будет отличаться во втором, а иногда и в первом знаке. Соответственно, сенсор "Целевая температура теплоносителя" тоже будет пересчитывать своё значение, и если автоматизация будет построена на событии изменения этого сенсора, то запись температуры в котёл будет производиться очень часто, что приведёт к износу ПЗУ и выходу его из строя. Периодический сенсор решает данную проблему.
Данные для построения кривой
В качестве значения имеет номер кривой, а также дополнительные атрибуты, которые позволят вывести график кривой на дашборт.
Содержит три дополнительных атрибута:
heating_curve — номер кривой
graph_data_map — значения для графика кривой (в виде карты) в диапазоне от 20 до -25 градусов по уличной температуре (ключ - наружная температура, значение - температура теплоносителя)
graph_data_items — тоже самое, что и graph_data_map, но в виде массива кортежей
Вот как я строю этот график кривой с использованием интеграции apexcharts-card (доступна в HomeAssistant Community Store, далее HACS). Добавляем карточку apexcharts-card на дашборт и указываем yaml в качестве настроек:
type: custom:apexcharts-card
chart_type: line
header:
show: true
title: Отопительная кривая (ТД-11)
series:
- entity: sensor.wda_by_td11_graph
type: line
color: "#0AF"
data_generator: |
const points = Object.entries(entity.attributes.graph_data_map)
.sort(([a], [b]) => parseFloat(a) - parseFloat(b))
.map(([x, y]) => ({x: `${x}`, y: y}));
console.log(points);
return points;
apex_config:
xaxis:
type: numeric
tickAmount: 8
title:
text: Температура снаружи (°C)
labels:
rotate: -90
style:
fontSize: 10px
yaxis:
tickAmount: 8
title:
text: Температура теплоносителя (°C)
tooltip:
x:
formatter: function(value) { return value; }
stroke:
width: 2
Где, sensor.wda_by_td11_graph - это ID этого сенсора.

На выходе получается такой график:

Как установить
Установить можно через HACS. В поиске вбейте "wda", далее провалитесь внутрь и нажмите "Скачать".


После чего нужно перейти в раздел "Настройки", выполнить рестарт. Затем перейти в "Устройства и службы" и нажать "Добавить интеграцию". Вбейте в поиске "wda" и выберите найденную запись. После этого запустится диалог настройки.


Как установить сам HACS подробно описано на официальном сайте.
Сценарий использования совместно с интеграцией для вашего котла
В качестве примера покажу сценарий ПЗА совместно с интеграцией ectoControl Adapter, которая обеспечивает поддержку моего котла.
Для настройки сценария ПЗА нужно перейти в раздел "Настройки -> Автоматизации и сцены", нажать "Создать автоматизацию", далее выбрать "Создать новую автоматизацию".
Нажать "Добавить триггер" и в качестве триггера выбрать "Объект -> Состояние". В качестве объекта выбрать сенсор "Целевая Т. теплоносителя" или "Целевая Т. теплоносителя (периодический)" (см. описание выше).
Нажать "Добавить действие", выбрать "Число -> Установить значение", далее нажать "+ Выбрать объект", в качестве объекта выбрать Целевая Т. теплоносителя, предоставляемого интеграцией ectoControl Adapter (пусть вас не смущает одинаковое название, просто в этой интеграции объект называется так же). В качестве значения указать
{{ states('sensor.wda_by_td11') | int }}, где sensor.wda_by_td11 — идентификатор вашего WDA сенсора.Нажать "Сохранить". Ваш сценарий ПЗА готов.


В качестве заключения
Надеюсь, рассказал достаточно подробно. Вопросы, отзывы и критика приветствуются.
P.S.: Упомянутая интеграция ectoControl Adapter поддерживает достаточно большой перечень газовых котлов. Сами адаптеры в свободной продаже на сайте производителя. Интеграцию разработал совсем недавно, в HACS её еще пока нет. Для тех кто уже глубоко в теме, проблем с установкой не будет (в меню HACS через "Пользовательские репозитории"). В ближайшее время выйдет материал и по этой интеграции тоже.
P.S.S.: В README репозитория HA Brands есть такой текст:

Возможно, среди сообщества есть специалисты по авторскому праву. Насколько данный текст отражает реалии правоприменения в РФ?
Дело в том, что для включения интеграции в HACS предварительно должны быть загружены и приняты брендирующие изображения. Принимаются только оригинальные бренды. В этом есть логика, это сделано для того, чтобы не вводить в заблуждение пользователей. Соответственно, для интеграции ectoControl Adapter, должны быть загружены оригинальные логотипы производителя.