Интернет-термостат для котла отопления используется для поддержания определенного микроклимата в различных помещениях. RODOS-16 DIN представляет собой устройство, которое управляет питанием электроприборов в зависимости от значений температуры и влажности. Значения температуры и влажности определяются подключаемыми к устройству датчиками (REX-5, REX-6, REX-7, DS18B20, DHT22). Такое устройство пригодится как для домашнего использования, так и для установки в производственных и коммерческих помещениях.
Интернет-термостат можно установить в доме или квартире и использовать, например, для регулирования теплого пола и управления включением увлажнителя в зависимости от температуры и влажности в помещении. И это уже можно считать частичной домашней автоматизацией. Также часто пользователи используют подобные устройства для контроля температуры и влажности в цехах с промышленными холодильными установками.
Реализация умного дома невозможна без центральной системы управления устройствами. Для решения этой задачи можно использовать бесплатное приложение Home Assistant с открытым исходным кодом. Само приложение и его программные расширения написаны на языке Python.
Home Assistant поддерживает добавление в свою систему управления широкого спектра устройств. Доступно как локальное, так и удаленное управление приборами через приложение или веб-интерфейс. В дополнение к этому можно создавать различные сценарии «поведения» освещения, климатических устройств и домашних приборов.
Штатное управление
Если рассмотреть RODOS-16 DIN как интернет-термостат для газового котла, то его настройка достаточно простая. Детальное описание данного раздела можно найти в инструкции к термостату с управлением через интернет.

В меню Climate control мы видим два блока, отвечающих за настройку работы выходов Relay1 и Relay2. Их можно настроить для работы в режиме термостатирования (поддержание заданной температуры) или гигростатирования (поддержание заданной влажности).
При необходимости можно активировать настройку invert, отвечающую за инверсный режим работы. Выход реле, для которого задан этот режим, выключается при температуре/влажности на датчике, меньшей либо равной значению, установленному в поле min, и включается при температуре/влажности, большей либо равной значению, установленному в поле max.
На RODOS-16 DIN выходы Relay1 и Relay2 расположены в верхнем правом углу. Каждый канал представляет собой встроенное электромеханическое реле типа 1C с тремя контактами «N.O.», «COM» и «N.C.». Каждое реле может находиться в двух состояниях:
- Реле включено — контакты «N.O.» и «COM» замкнуты между собой, контакт «N.C.» отключен.
- Реле выключено — контакты «N.С.» и «COM» замкнуты между собой, контакт «N.O.» отключен.

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

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

Теперь рассмотрим настройку интеграции термостата в систему 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:

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

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

Автоматическое управление
Теперь, когда вручную мы уже умеем управлять реле и смотреть температуру с датчика температуры, пришло время слегка усложнить задачу и создать логику, которой руководствуется любой термостат:
- Смотрим текущие показания температуры с определенной периодичностью.
- Если температура котла ниже текущей, то включаем реле, котел начинает нагреваться.
- Если температура достигла целевой температуры, то реле выключаем, котел начнет остывать.
Собственно, это и все. Этих трех логических утверждений достаточно, чтобы понять, как работает термостат. Но дьявол, как известно, кроется в деталях, так что составим список значений того, что нам потребуется в конфигурационном файле:
- значение температуры с датчика;
- нижняя граница температуры котла, ниже которой он не должен остыть;
- верхняя граница температуры котла, выше которой он не должен нагреться;
- целевая температура;
- интервал проверки активности (на случай потери состояния переключателя);
- шаг установки температуры.
Теперь создадим отдельный пустой конфиг с именем 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. Остается лишь добавить термостат в интерфейс управления. Для этого выбираем Обзор — ••• — Изменить панель — Добавить карточку — Термостат.

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

Заключение
Интеграция RODOS-16 DIN в систему управления умным домом Home Assistant для управления котлом отопления весьма проста и эффективна. Здесь свою роль играет и понятная документация к устройству, и реализованные в нем принципы управления.
Разумеется, возможности устройства позволяют контролировать не только котел управления, но и иные устройства, такие как кондиционеры, автоматические жалюзи и тому подобные. Простота конструкции легко позволяет разместить ее даже в небольшом по размеру слаботочном щитке и провести необходимую СКС.
Вам также будет интересно: