Статья

Умный дом на Raspberry Pi и Home Assistant: добавляем диммеры и реле Wiren Board

С чего все начиналось?

Все началось в 2020 году, когда Петр купил квартиру в Минске площадью 120 м² на этапе черновой отделки. Комнат немного: гостиная, совмещенная с кухней, кабинет и спальня. Также есть два санузла (гостевой и хозяйский). Конечно, квартира Петра должна быть комфортной и умной. Задачи были поставлены весьма амбициозные:

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

В качестве контроллера умного дома Петр выбрал Raspberry Pi. Причина в том, что это решение весьма популярно на рынке и хорошо интегрируется в Home Assistant, разве что к одноплатному компьютеру был добавлен M.2 SSD для повышения емкости и надежности хранения.

Многие устройства в умном доме Петра — беспроводные и работают через Wi-Fi или Zigbee. Например, приводы штор, кондиционеры, телевизоры, пара «умных ламп» Yeelight Ceiling Light, датчики открытия окон и дверей, температуры и влажности. О них мы расскажем чуть ниже. Но для основного освещения с диммированием были выбраны проводные решения. То же самое верно и для учета энергопотребления — Петр не хотел плодить умные розетки в массовых количествах, а установил на линии питания измерительные токовые трансформаторы.

Лампы накаливания в гостиной  

Свет в квартире должен работать всегда!

Начнем с освещения. Петр выбрал проводные решения, поскольку свет должен работать всегда. Контроллер Raspberry Pi может повиснуть, Wi-Fi — «умереть»,  интернет — «отпасть». Но при нажатии на клавиши свет должен загораться при любых условиях. Поэтому были выбраны модули диммирования с микроконтроллером, которые можно программировать независимо от основного контроллера. Можно было взять и обычные модули реле для простого включения/выключения, но Петр решил, что свет будет диммируемым везде.

Сказано — сделано: Петр купил восемь модулей WB-MDM3 для диммированиея ламп (три канала на каждом), а также три модуля WB-MRGBW-D (четыре канала на каждом) для диммирования светодиодных лент. Модули работают по протоколу Modbus, который Петр считает надежным и проверенным временем . Кроме того, модули распознают одинарное, длительное, двойное и другие типы нажатий. Поэтому для управления четырьмя группами в комнате не нужно устанавливать «пианино» на четыре клавиши. Достаточно пары клавиш и умное программирование. Кроме того, свет клавишами включается мгновенно, небольшая задержка может быть только в отображении состояния в Home Assistant — она связана с длительностью цикла опроса Modbus.

Петр долго подбирал лампы, но остановился на диммируемых Gauss MR16 5W 4100К, которые понравились качеством и характеристиками, хотя стоят намного дороже обычных недиммируемых. Две умные лампы Yeelight Ceiling Light в гостиной и санузле подключены, можно сказать, через простое реле (WB-MDM3 переведен в ключевой режим). У них своя автоматизация через интеграцию в Home Assistant. В спальне вокруг зеркала проложена диммируемая светодиодная лента CCT, которая может менять световую температуру. В гостиной над столом для красоты установлены три лампы накаливания Uniel Vintage по 60 Вт из золотистого прозрачного стекла. Они подключены к одному каналу WB-MDM3 и управляются синхронно.

Отдельное внимание было уделено выбору выключателей, чтобы они не воспринимались как кусок пластика. В итоге Петр посоветовался с дизайнером и взял Jung LS 990 с узкой рамкой и хорошей тактильной отдачей. В квартире есть выключатели как из металла, так и пластика.

Осталось одно препятствие: как интегрировать модули в Home Assistant и управлять через Raspberry Pi? Сначала Петр купил самый простой USB-модуль — преобразователь Modbus. Но позднее перешел на модульWB-MIO-E v.2, представляющий собой мост между Modbus и Ethernet. Причина в том, что модуль можно спрятать в щит, также можно опрашивать устройства Wiren Board с ноутбука или настольного ПК через Wi-Fi. А затем написал на Python собственную интеграцию в Home Assistant, которую мы сейчас и рассмотрим.

Контроллер Raspberry Pi  
Щит автоматизации  
Выключатели Jung LS 990 в санузле
Выключатели Jung LS 990 на кухне. Каждая клавиша управляет двумя группами светильников. Длительность нажатия также используется в сценариях 
Выключатели Jung LS 990 в гостиной. Здесь как раз реализована идея одной клавиши на каждую группу светильников, такое «пианино» не самый удобный вариант. Причина в том, что изначально разные типы нажатий не рассматривались, идея пришла позже, поэтому в других комнатах клавиш меньше
Светильник в спальне  
Умная лампа Yeelight Ceiling Light в гостиной  
Настенный светильник в гостиной
Выключатели Jung LS 990 в спальне
Лампа Gauss MR16 5W 4100К справа. Слева можно видеть выключатели, которые пробовал Петр

Почему Home Assistant?

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

К преимуществам Home Assistant Петр относит удобный и функциональный пользовательский интерфейс (через панели dashboard). Home Assistant позволяет легко создавать панели dashboard в формате YAML или с помощью встроенного дизайнера. В данном случае был выбран формат YAML. Для построения простейшего интерфейса не требуются знания в веб-программировании, все можно «собрать» из готовых модулей Cards (см. подробное описание). На момент публикации доступны уже 29 модулей Cards, которые очень хорошо интегрированы с объектами Home Assistant.

Например, Петр захотел на главном экране видеть одним списком весь включенный свет с возможностью одной кнопкой его выключить. Он воспользовался модулем Card типа entity-filter, указал список из всех объектов light и установил критерий on. В общем случае entity-filter фильтрует список объектов по заданному критерию.

Интерфейс умного дома Петра состоит из главной панели, на которой отображена общая информация и отдельных панелей для каждого помещения.

Главная панель
Панель гостиной

Интеграция диммера от Wiren Board в Home Assistant

Установим Home Assistant на Raspberry Pi. Для удобства и простоты можно с помощью утилиты «Raspberry Pi Imager» выбрать и установить на одноплатник ОС с уже установленной Home Assistant (в разделе other specific-purposes OS > Home assistants and home automation > Home Assistant). Пройти первоначальную инициализацию в Home Assistant.

Для удобства интеграции установим Studio Code Server (Настройки > Дополнения > Магазин дополнений > Studio Code Server) и File editor (Настройки > Дополнения > Магазин дополнений > File editor).

Настроим преобразователь интерфейсов WB-MIO-E v.2 согласно документации. Поскольку по умолчанию наши Modbus-устройства настроены на скорость 9600 бит/с, то именно эту скорость и установим в шлюзе.

 Подключим диммер с Modbus RTU WB-MDM3 к шлюзу. Далее настроим встроенную Modbus-службу Home Assistant. Перейдем в Studio Code Server > configuration.yaml и приведем файл к виду:  

Перезапускаем Home Assistant (Панель разработчика > YAML > Перезапустить). Далее можем проверить корректность настройки и работу Home Assistant c диммером без самой интеграции. Переходим в Панель разработчика > Службы. В поле служб выбираем «Modbus: Записать в регистр флагов». Далее указываем Modbus-адрес диммера, регистр записи, состояние:

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

Переходим в File editor. В папке config создаем папку custom_components. И копируем сюда папку с интеграцией (wirenboard). В интеграции реализована поддержка WB-MDM3 и WB-MAP6S.

Перезагружаем Home Assistant и можем добавлять интеграцию. Переходим в Настройки > Устройства и службы > Добавить интеграцию и выбираем wirenboard. Вводим название Modbus-хаба и адреса устройств через запятую.

Теперь должна появиться интеграция диммеров в Home Assistant.

При удачной настройке на главной вкладке «Обзор» должны появиться добавленные устройства. Теперь можем включать/выключать каналы диммера, а также диммировать каждый из них.

Диспетчеризация энергопотребления

Петр установил два счетчика электроэнергии WB-MAP6S, каждый может собирать данные с шести однофазных потребителей. Причем достаточно просто подключить разъемные измерительные трансформаторы тока на питающие линии, физически никуда подключаться не нужно. Счетчики тоже работают через Modbus и добавлены в Home Assistant через интеграцию, которую мы рассмотрели выше.

Идея Петра следующая: он хотел проанализировать энергопотребление всех устройств, чтобы выбрать оптимальные режимы работы. Но картина оказалась не такой, как предполагалось изначально. Петр думал, что зимой главным потребителем в кВт·ч за месяц будет варочная панель, но им оказался газовый котел с насосными группами. Он потребляет, вроде бы, небольшую мощность, но работает постоянно, отсюда и высокое энергопотребление. Следом идут кондиционеры, которые выходят на первое место в жаркие летние дни.

Ниже на диаграммах показаны 11 потребителей (devices) + один общий (трансформатор на входе), использованы все 12 каналов двух модулей WB-MAP6S.

Энергопотребление в жаркий месяц, насосные группы выключены, работает котёл в режиме нагрева воды, котёл не в топе 
20 дней холодного месяца (ноябрь) работают все насосные группы. Хорошо виден дополнительный расход электроэнергии

Контроль протечек

Для модулей WB-MWAC в Home Assistant были добавлены 2 switch (для управления контактами реле K1 и К2) и 6 binary_sensor (для контроля за входами S1, S2, S3, F1, F2, F3), в результате через switch entity в HA можно с легкостью управлять каналами реле из интерфейса пользователя или создать сценарий автоматизации.

На стадии ремонта не были заложены провода для датчиков, поэтому пришлось приобретать беспроводные, Петр выбрал Xiaomi SJCGQ11LM и подключил их к HA через zigbee2mqtt. Далее создал автоматизацию: если хотя бы один из датчиков сработает, то закрывается кран с электроприводом, перекрывающий подачу воды.

Стоит отметить, что WB-MWAC имеет гибкие функции ручного управления. Например, Петр подключил кнопку без фиксации для управления каналом реле. Кнопка была добавлена на случай отказа HA, так как функции ручного управления не зависят от HA и обрабатываются самим устройством.

WB-MWAC поддерживает и проводные датчики, что, бесспорно, надежнее, но что имеем, то имеем.

В щите можно заметить модуль аналоговых выходовWB-MAO4— с его помощью планируется управлять вентилятором вытяжки из санитарных комнат и кухни: тоже в планах на будущее. Оба модуля работают через Modbus интегрируются в Home Assistant по приведенной выше схеме.

Разные датчики протечки, которые тестировал Петр
Кран с электроприводом «Нептун» перекрывает подачу воды в случае утечки

Климат и вентиляция

На балконе установлена приточно-вытяжная установка UniMAX-R 850 VWL EC от Shuft с производительностью воздухообмена до 850 м³/ч. Поддерживается рекуперация, то есть из удаляемого воздуха тепло частично передается приточному воздуху. Установка работает постоянно, по своим алгоритмам, к умному дому не подключена. Петр обычно выставляет минимальную скорость работы.

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

Кондиционеры LG Dual Inverter установлены во всех трех комнатах, мощность подобрана, исходя из площади помещений. Самый мощный — для совмещенной гостиной/кухни. На стену дома вынесены три наружных блока кондиционеров. Кондиционеры подключаются через Wi-Fi и имеют интеграцию с Home Assistant от интернет-сообщества (SmartThinQ LGE Sensors). В квартире кондиционеры используются только для охлаждения. Петр отдельно отметил, что интеграция HA позволяет включить кондиционеры до прихода домой, чтобы предварительно охладить помещение. Ночью кондиционеры не работают.

В квартире установлен газовый котел De Dietrich, который подает теплоноситель в узел смешения и на накопитель горячей воды емкостью 120 л. Узел смешения нужен, чтобы по-разному нагревать воду для радиаторов и теплых полов. В каждой комнате установлены радиаторы, подключенные отдельными контурами. То же самое касается теплых полов, каждый подключен своим контуром. Теплые полы установлены в кухне, коридоре, двух санитарных комнатах. Пока регулирование подачи теплоносителя в контуры ручная, приводы установлены без автоматизации. 

Автоматика для отопления комнат в процессе разработки, но Петр уже заложил кабель для датчика на улице. И в будущем планирует добавить погодозависимое регулирование отопления.

Кондиционер LG Dual Inverter в гостиной
ПВУ Shuft UniMAX-R 850 VWL EC на балконе  
Бойлер косвенного нагрева на 120 л для горячей воды
Сверху — смесительные модули контуров отопления. Ниже расположены коллекторы для подключения трубопроводов горячей воды, радиаторов отопления и теплых полов  
Газовый котел De Dietrich  
Вентиляционная решетка в гостиной
Вентиляционная решетка в кухне, также видны светильники  
Вентиляционная решетка в кабинете
Вертикальный радиатор в кабинете  
Вертикальный радиатор в спальне 
Кондиционер LG Dual Inverter в кабинете  
Кондиционер LG Dual Inverter в спальне  

Датчики

В каждой комнате установлены беспроводные датчики температуры и влажности, которые подключены к Home Assistant через дополнение Zigbee2MQTT. Соответственно, в контроллере установлен USB-модуль Zigbee.

На всех окнах и входной двери есть беспроводные датчики открытия/закрытия.

В интерфейсе Home Assistant при выходе из дома можно посмотреть весь включенный свет, все открытые окна и все включенные кондиционеры.

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

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

Беспроводной датчик температуры и влажности в кабинете
Беспроводной датчик движения в гостевом санузле  
Беспроводной датчик движения в хозяйском санузле
Беспроводной датчик открытия на окне 
Динамик акустической системы на потолке
Беспроводной датчик температуры и влажности в спальне  
USB-модуль Zigbee

Шторы

На всех шторах установлены приводы Tuya Curtain Motor с поддержкой WiFi, но Петр перепрошил их, отвязав от облака. Пришлось даже припаивать провода к чипу, поэтому процедура не самая простая. В результате приводы локально интегрируются с Home Assistant через ESPHome.

Привод штор Tuya Curtain Motor

Заключение

Модули Wiren Board работают по открытому протоколу, поэтому их можно «подружить» с контроллерами других производителей. В статье мы как раз рассмотрели пример на Raspberry Pi с интеграцией в Home Assistant. Поэтому если у вас уже работает умный дом на любом контроллере, обратите внимание на подобную возможность.

Модули WB-MDM3 и WB-MRGBW-D позволяют диммировать лампы и светодиодные ленты. Проводное подключение и микроконтроллер «на борту» гарантируют, что свет будет работать, даже если связь с контроллером «упадет». К преимуществам можно также отнести мгновенное включение, многоканальность и умение работать с разными типами нажатий (одинарное, двойное, длительное…).

Поскольку основная интеграция в Home Assistant уже сделана, дальше экосистему умного дома можно расширять: добавить счетчики электроэнергии, модули реле, протечек и т.д. Здесь мы рекомендуем ознакомиться с нашей статьей, где рассмотрели наиболее полезные модули Wiren Board для умного дома.

1

Все по уму. Беспроводные приборы постарался бы исключить. Какая стоимость оборудования и работы?

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