Интеграция в Home Assistant интернет термостата RODOS-16 DIN для управления котлом отопления

Интеграция в Home Assistant интернет термостата RODOS-16 DIN для управления котлом отопления Оставить комментарий

Интернет-термостат для котла отопления используется для поддержания определенного микроклимата в различных помещениях. RODOS-16 DIN представляет собой устройство, которое управляет питанием электроприборов в зависимости от значений температуры и влажности. Значения температуры и влажности определяются подключаемыми к устройству датчиками (REX-5, REX-6, REX-7, DS18B20, DHT22). Такое устройство пригодится как для домашнего использования, так и для установки в производственных и коммерческих помещениях.

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

Реализация умного дома невозможна без центральной системы управления устройствами. Для решения этой задачи можно использовать бесплатное приложение Home Assistant с открытым исходным кодом. Само приложение и его программные расширения написаны на языке Python.

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

Штатное управление

Если рассмотреть RODOS-16 DIN как интернет-термостат для газового котла, то его настройка достаточно простая. Детальное описание данного раздела можно найти в инструкции к термостату с управлением через интернет.

Рисунок 1. Внешний вид веб-интерфейса термостата RODOS-16 DIN
Рисунок 1. Внешний вид веб-интерфейса термостата RODOS-16 DIN

В меню Climate control мы видим два блока, отвечающих за настройку работы выходов Relay1 и Relay2. Их можно настроить для работы в режиме термостатирования (поддержание заданной температуры) или гигростатирования (поддержание заданной влажности). 

При необходимости можно активировать настройку invert, отвечающую за инверсный режим работы. Выход реле, для которого задан этот режим, выключается при температуре/влажности на датчике, меньшей либо равной значению, установленному в поле min, и включается при температуре/влажности, большей либо равной значению, установленному в поле max.

На RODOS-16 DIN выходы Relay1 и Relay2 расположены в верхнем правом углу. Каждый канал представляет собой встроенное электромеханическое реле типа 1C с тремя контактами «N.O.», «COM» и «N.C.». Каждое реле может находиться в двух состояниях:

  1. Реле включено — контакты «N.O.» и «COM» замкнуты между собой, контакт «N.C.» отключен. 
  2. Реле выключено — контакты «N.С.» и «COM» замкнуты между собой, контакт «N.O.» отключен.
Рисунок 2. Расположение выходов Relay для подключения управления внешним котлом
Рисунок 2. Расположение выходов Relay для подключения управления внешним котлом

Теперь рассмотрим, как установить и подключить термостат с подключением интернета к котлу отопления. Современные котлы обычно оборудованы клеммной колодкой с двумя клеммами для подключения внешнего термостата для управления, работающего по принципу «Включил-выключил». 

Без подключенного термостата они обычно соединены специальной перемычкой, при этом цепь между ними замкнута и котел всё время работает. Если перемычку удалить, котел выключится. 

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

Рисунок 3. Пример клемм для подключения внешнего термостата к отопительному котлу
Рисунок 3. Пример клемм для подключения внешнего термостата к отопительному котлу

Возникает вопрос: если котел сам может поддерживать температуру в системе отопления, то зачем нужен дополнительный электронный термостат? Подобная автоматика в системе отопления позволяет более точно контролировать температурный режим в помещениях, куда будет заведен внешний датчик термостата, в то время как сам котел без внешнего датчика может поддерживать лишь температуру теплоносителя, ничего не зная о реальной температуре в помещении. Установив термостат для котла отопления, пользователь может увеличить эффективность работы оборудования на 20–30%.

Возможная схема подключения отопительного котла представлена на рисунке ниже.

Рисунок 4. Схема подключения отопительного котла к интернет-термостату RODOS-16 DIN
Рисунок 4. Схема подключения отопительного котла к интернет-термостату RODOS-16 DIN

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

Обратите внимание на то, что мы сейчас намеренно не касаемся вопросов безопасности, чтобы не усложнять задачу. Поэтому в нашем примере флажок Secure Management (раздел Device Config) отключен. Настроив систему, вы легко добавите авторизацию, добавив дополнительные ключи в созданные конфигурационные файлы и уже потом активировав Secure Management для обязательной проверки логина и пароля.

Если устройство находится в защищенном и изолированном сегменте домашней сети, то это действие вообще не потребуется.

Интеграция в Home Assistant

Устройство RODOS-16 DIN, если рассматривать его с точки зрения системы умного дома, содержит в себе сразу два типа устройств: сенсоры и исполнительные устройства. В роли сенсоров для управления котлом используется датчик температуры, а в роли исполнительного устройства реле. Начнем интеграцию с получения данных.

Интеграция сенсоров RODOS-16

Всю информацию с датчиков устройство предоставляет по HTTP-запросу на адрес:

http://<IP-адрес термостата>/status.xml

В этом кроется небольшая загвоздка, так как родным форматом входных данных для Home Assistant является JSON, так что прежде всего следует определить верный механизм получения и интерпретации данных. Исходя из нашего опыта, наиболее простым и точным в этом плане будет использование механизма Scrape. Этот механизм делает HTTP-запрос, возвращает HTML-код страницы и позволяет очень просто извлечь из полученного кода нужные данные.

Взглянем браузером на содержимое status.xml:

<response>
<vst/>
<sensor0>26.1</sensor0>
<sensor1/>
<sensor2/>
<sensor3/>
<sensor4>34.9</sensor4>
<sensor5>994</sensor5>
<sensor6>746</sensor6>
<in1>0</in1>
<in2>0</in2>
<out3>1</out3>
<out4>0</out4>
<out1>0</out1>
<out2>0</out2>
<aj1e>0</aj1e>
<aj2e>0</aj2e>
<aj3e>0</aj3e>
<remserv>192.168.1.20</remserv>
<cooler>0</cooler>
</response>

Для управления котлом нам нужно извлечь данные о температуре, которые у нас находятся внутри тега <sensor0>. В примере наш термостат имеет IP-адрес по умолчанию 192.168.1.20.

Допишем в configuration.yaml следующие строки:

sensor:
      - platform: scrape
        resource: http://192.168.1.20/status.xml
        select: "sensor0"
        value_template: '{{ (value) }}'
        unit_of_measurement: "°C"
        name: Temp
        scan_interval: 5

Разберем, что делает каждая строка:

  • sensor: — создаем группу датчиков;
  • – platform: scrape — выбираем механизм Scrape;
  • resource: http://192.168.1.20/status.xml — указываем, куда делаем запрос;
  • select: “sensor0” — разбираем полученный ответ, извлекая только данные с датчика температуры;
  • value_template: ‘{{ (value) }}’ — применяем шаблон для обработки данных, нас интересует только само значение без каких-либо преобразований;
  • unit_of_measurement: “°C” — оперируем градусами Цельсия;
  • name: Temp — даем понятное имя;
  • scan_interval: 5 — задаем интервал обновления в 5 секунд.

Сохраняем configuration.yaml и перезагружаем сервер Home Assistant. Зайдя в консоль разработчика, видим, что у нас есть объект sensor.temp, который уже отображает текущее значение с датчика температуры. Именно его мы позже будем использовать для автоматизации, а пока научимся управлять реле через Home Assistant.

Интеграция управляющих устройств

Смотрим документацию и видим, что RODOS-16 позволяет управлять состоянием реле, простой отправкой HTTP-запросов. Достаточно открыть в браузере http://192.168.1.20/rb0n.cgi для того, чтобы включить реле, или http://192.168.1.20/rb0f.cgi, чтобы его отключить. То есть нам как-то надо из Home Assistant выполнять HTTP-запрос на нужный адрес.

Самым простым и банальным решением является использование механизма command_line, который позволяет исполнять привычные linux-команды. Чтобы выполнить нужный нам запрос, достаточно обычного curl, поэтому снова открываем configuration.yaml и добавляем следующую строку:

switch:
  platform: command_line
  switches:
    relay1:
      command_on: "/usr/bin/curl -X GET http://192.168.1.20/rb0n.cgi"
      command_off: "/usr/bin/curl -X GET http://192.168.1.20/rb0f.cgi"
      friendly_name: Relay 1

Тут все элементарно: мы собрали группу переключателей switch, указали на использование механизма command_line и указали команды для включения и выключения реле. В качестве команд использован стандартный GET-запрос curl. Таким образом, у нас появился объект switch.relay1, который будет работать исполнительным механизмом.

Ручное управление

В предыдущих разделах мы создали два объекта: sensor.temp, который отображает температуру с датчика, и switch.relay1, который позволяет управлять реле. Теперь нам нужно, чтобы эти объекты появились в нашем интерфейсе управления домом:

Обзор ••• Изменить панель Добавить карточку Сенсор

В качестве объекта можно выбрать sensor.temp:

Рисунок 5. Добавление интерфейса датчика температуры в Home Assistant
Рисунок 5. Добавление интерфейса датчика температуры в Home Assistant

Таким же образом добавляем еще одну карточку с типом Кнопка и в качестве объекта выбираем switch.relay1:

Рисунок 6. Добавление интерфейса реле RODOS-16 в Home Assistant
Рисунок 6. Добавление интерфейса реле RODOS-16 в Home Assistant

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

Рисунок 7. Интерфейс для ручного управления (вид со смартфона на Android)
Рисунок 7. Интерфейс для ручного управления (вид со смартфона на Android)

Автоматическое управление

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

  1. Смотрим текущие показания температуры с определенной периодичностью.
  2. Если температура котла ниже текущей, то включаем реле, котел начинает нагреваться.
  3. Если температура достигла целевой температуры, то реле выключаем, котел начнет остывать.

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

  • значение температуры с датчика;
  • нижняя граница температуры котла, ниже которой он не должен остыть;
  • верхняя граница температуры котла, выше которой он не должен нагреться;
  • целевая температура;
  • интервал проверки активности (на случай потери состояния переключателя);
  • шаг установки температуры.

Теперь создадим отдельный пустой конфиг с именем thermo.yaml там же, где находится configuration.yaml. В нем мы пропишем все вышеуказанные параметры, предварительно задействовав механизм generic_thermostat:

      - platform: generic_thermostat
        name: thermo
        heater: switch.relay1
        target_sensor: sensor.temp
        min_temp: 75
        max_temp: 85
        target_temp: 80
        keep_alive:
          minutes: 1
        precision: 0.1

Осталось лишь сохранить конфиг и осуществить его вызов в основной конфигурации. Для этого достаточно добавить следующую строку в /config/configuration.yaml

climate: !include thermo.yaml

Эта строка позволит системе использовать наш новый конфиг и созданную сущность generic_thermostat. Остается лишь добавить термостат в интерфейс управления. Для этого выбираем Обзор ••• Изменить панель Добавить карточку Термостат.

Рисунок 8. Добавление интерфейса термостата в Home Assistant
Рисунок 8. Добавление интерфейса термостата в Home Assistant

Немного оптимизируем панель и оставляем только термостат. С помощью этого объекта мы можем как просматривать текущую температуру, так и включать/выключать режим термостатирования, а также изменять целевую температуру в заранее заданных пределах.

Рисунок 9. Интерфейс для автоматического термостатирования (вид со смартфона на Android)
Рисунок 9. Интерфейс для автоматического термостатирования (вид со смартфона на Android)

Заключение

Интеграция RODOS-16 DIN в систему управления умным домом Home Assistant для управления котлом отопления весьма проста и эффективна. Здесь свою роль играет и понятная документация к устройству, и реализованные в нем принципы управления.

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

Вам также будет интересно:

Pin It on Pinterest

Share This