Можно ли назвать дом умным, когда все его функции заключаются в управлении светом из мобильного приложения?..
Можно ли назвать дом умным, когда все его функции заключаются в управлении светом из мобильного приложения?..

Меня зовут Виктор, я backend-разработчик в финансовом маркетплейсе Банки.ру.

Последние годы я интересуюсь темой умного дома. Хочу рассказать о том, с чего я начинал и к чему пришел. Эта статья будет полезна тем, кто:

  • хочет понять как устроен self-hosted умный дом;

  • хочет перенять опыт и избежать чужих ошибок;

  • уже имеет умный дом и интересуется прикладными сценариями.

Я расскажу про железо (Raspberry Pi, x86, NAS), протоколы (в основном Zigbee) и софт (Home Assistant + Zigbee2MQTT + Node-RED).

Немного о себе и об этой статье

В свободное время я люблю поковыряться в компьютерных железках, гаджетах и софте. В 2019 году я решил совместить свое хобби с чем-нибудь полезным. Мне хотелось сделать что-то такое, что добавит комфорта в домашнюю рутину. Сначала, я начал изучать, какие есть экосистемы умного дома и чем они отличаются. В итоге я взял одноплатный компьютер Raspberry Pi, установил на него Home Assistant и заказал на AliExpress Zigbee-координатор с парой устройств. Так и началось мое знакомство с темой умного дома.

Со временем у меня накопился практический опыт и набор интересных сценариев, которыми я хочу поделиться с вами.

Сначала я немного расскажу, кому может быть полезен умный дом. Потом сравню системы от производителей с open-source решениями. Далее опишу какое железо подойдет для самостоятельных экспериментов. Расскажу про Home Assistant и прочий связанный софт, варианты установки и мою архитектуру. И, наконец, поделюсь практическими сценариями автоматизаций.

Что такое умный дом

Под умным домом (УД) подразумевают широкий спектр устройств и понятий. Давайте конкретизируем.

Я считаю, что умный дом — это комплексная система, которая обеспечивает комфорт, безопасность и экономию ресурсов в автоматическом режиме. Некоторые сценарии удобно запускать со смартфона или через голосового ассистента, но самые базовые автоматизации должны срабатывать без вмешательства пользователя. Цель — избавиться от рутинных действий, а не сделать для них дополнительную прослойку в виде условного пульта.

Еще один важный момент, который нужно учитывать при проектировании — система обязана быть максимально отказоустойчивой:

  1. Если пропадает интернет, может перестать работать голосовой помощник, но не устройства и основные автоматизации.

  2. Если сломалось головное устройство, могут пострадать автоматизации, но ни в коем случае не базовые функции. Умный дом не превращается в тыкву.

Зачем нужен умный дом

Во-первых, самостоятельное построение такой системы может стать отличным хобби. Здесь и множество нетривиальных задач, и польза для домочадцев.

Во-вторых, система автоматизации помогают в оптимизации разных аспектов быта:

  • Безопасность: определение проникновения в жилье, видеонаблюдение, защита от протечек.

  • Доступность: помощь людям с ограниченными возможностями.

  • Климат и экономия ресурсов: управление светом, отоплением и вентиляцией.

  • Комфорт: управление бытовой техникой, шторами, режимами освещения и музыкой.

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

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

Кстати, кроме построения всей системы самостоятельно, есть вариант прибегнуть к услугам интеграторов умного дома. Они могут сделать это «под ключ». Но в данной статье я буду рассказывать о самостоятельном разворачивании всего софта.

Open source VS Системы от вендоров

Существует множество вариантов систем умного дома, которые можно разделить на две основные категории: закрытые системы от вендоров и открытые системы от сообщества, которые могут работать на локальном оборудовании.

Готовые системы от вендоров

Такие решения предоставляют конкретные производители, например Яндекс, Xiaomi, Aqara, Fibaro и другие.

Вендоры предлагают решения «всё в одном», где и конечные девайсы, и головное устройство (хаб) находятся внутри замкнутой экосистемы производителя.

Для настройки системы и взаимодействия с устройствами, чаще всего, нужно приложение для смартфона от того же изготовителя.

Wi-Fi и Bluetooth устройства, как правило, могут работать без хаба, но приложение требуется все равно.

Плюсы:

  • Простота установки и использования, т.к. это устройства для максимально широкого круга пользователей.

  • Часто такие устройства легче найти в розничных магазинах.

  • Производитель позаботился о резервном копировании настроек.

  • Обычно хабы без проблем переносят неожиданное отключение питания.

Минусы:

  • Зависимость от интернет-соединения и онлайн серверов производителя. Иногда системы сохраняют базовую функциональность в офлайне, но автоматизации всё равно могут ломаться.

  • Частичная или полная остановка работы при веерных блокировках IP-адресов.

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

  • Сравнительно ограниченные масштабируемость и функционал автоматизаций.

  • У каждого производителя свой набор устройств. Следовательно, возможна ситуация, когда нужное устройство не совместимо с выбранной системой.

  • Риск потери поддержки в будущем.

Приведу несколько примеров, когда пользователи теряли контроль над своими устройствами в системах от вендоров:

Кладбище закрытых сервисов Google (пока без Google Home)
Кладбище закрытых сервисов Google (пока без Google Home)

Open source self hosted решения

Это системы, которые создаются и развиваются сообществом энтузиастов.

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

Self hosted система полностью располагается на локальном компьютере-сервере. Из этого вытекают преимущества и недостатки.

Плюсы:

  • Возможность реализовать сценарии любой сложности.

  • Не требуют постоянного доступа в интернет и не завязаны на сервера производителя. Автоматизации тоже выполняются локально.

  • Полный контроль над всей системой.

  • Возможность подключить устройства от разных производителей (в том числе от вендоров закрытых систем). Таким образом можно существенно сэкономить.

  • Поддержка сообществом энтузиастов. Можно найти готовые интеграции на любой вкус и заставить устройства разных производителей работать вместе. Любой человек может сделать интеграцию и поделиться ей со всем миром.

  • Можно подключить любого голосового ассистента или даже несколько. То же относится и к приложениям умного дома, например, Apple HomeKit, Google Home или Яндекс Алиса.

Минусы:

  • Могут требовать продвинутых технических знаний и усилий от пользователя. Хотя решения наподобие Home Assistant стремятся максимально снизить порог вхождения.

  • Порой не предоставляют надежное резервное копирование из коробки.

  • Могут получить программный сбой при неожиданной потере питания.

Возможности self hosted платформ ограничиваются лишь вашей фантазией и желанием углубляться в тему. Гибкие системы УД наподобие Home Assistant позволяют интегрировать широчайший спектр устройств и сервисов: от бытовой техники и до автомобилей и расписаний общественного транспорта.

Список популярных решений (в алфавитном порядке):

Резюмирую: закрытые решения подходят для тех, кто хочет получить готовый продукт без особых хлопот, а self hosted решения — для тех, кто хочет иметь полную свободу действий и творчества. Я предпочел второй вариант и дальше буду рассказывать именно про него.

Аппаратная часть

Я буду рассматривать конфигурации железа, подходящие для Home Assistant, но с большой долей вероятности, они подойдут и для других self hosted систем УД.

Официальная статистика установок Home Assistant на различные устройства
Официальная статистика установок Home Assistant на различные устройства

Согласно статистике:

  • Почти половина установок платформы умного дома Home Assistant приходится на одноплатные компьютеры Raspberry Pi (46%). Популярность сохраняется, несмотря на то что 4-ая модель сильно подорожала за последние годы.

  • На втором месте – установка на виртуальную машину (34%).

  • Третье место и 14% — Generic x86-64.

Примечание об источнике статистики

Я привожу данные из официальной статистики Home Assistant за сентябрь 2023, субъективно, самого популярного open source решения для УД. Кстати, HA — это второй по активности проект с открытым исходным кодом на GitHub (источник).

Кроме того, стоит заметить, что Board types статистика собирается лишь в варианте установки Operating System. Подробнее о вариантах установки я расскажу в разделе Home Assistant.

Давайте рассмотрим разные аппаратные конфигурации.

Raspberry Pi и подобные ARM-одноплатники

Raspberry Pi 4
Raspberry Pi 4

В силу популярности, целесообразно начать знакомство с Home Assistant именно с Raspberry Pi или аналогичных ARM-одноплатников. Во-первых, установка максимально проста: записали образ Home Assistant Operating System на карту памяти и готово. Во-вторых, найти гайды и решения проблем будет гораздо проще. Я начинал с модели 3B, но с временем перешёл на 4B с внешним SSD.

Производительности RPi 4B вполне достаточно для системы со слабой/средней нагрузкой.

Отзывчивость может уменьшиться, если установить много аддонов или сильно увеличить количество устройств и интеграций.

Кроме ограниченной производительности, у Raspberry Pi могут быть проблемы и со стабильностью, т.к. по умолчанию этот одноплатник хранит все данные на MicroSD карте памяти, а HA очень часто пишет информацию о состоянии системы на диск. У такого типа памяти относительно небольшой ресурс, и рано или поздно система перестанет работать. Сборку может «окирпичить» и неожиданное отключение питания.

С обновлением до RPi 4B я перешёл на SSD и корпус Argon One M.2. Это решило проблемы с недолговечностью MicroSD и охлаждением. Добавить к этой сборке ИБП – и получится оптимальное решение с точки зрения надёжности.

Argon One M.2 - корпус для Raspberry Pi 4 со слотом m.2
Argon One M.2 - корпус для Raspberry Pi 4 со слотом m.2

Платформа x86

К устройствам на этой платформе можно отнести обычные ПК, ноутбуки и неттопы.

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

Учитывая повышение цен на Raspberry Pi, возможно, этот вариант самый рациональный.

NAS

Мой Synology DS720+
Мой Synology DS720+

Сетевая система хранения данных (NAS) обеспечивает централизованное место хранения данных в сети. NAS позволяет создавать частное облако для надежного хранения и доступа к файлам. Кроме того, современные NAS позволяют устанавливать дополнительные сервисы. Если у вас есть такое устройство, оно позволяет установить Docker и у него хватает ЦПУ и памяти, то это хороший вариант для установки системы УД.

Основное преимущество NAS перед прочими аппаратными платформами — надежный бэкапинг «из коробки». Когда я только познавал основы домашней автоматизации на Raspberry Pi, я несколько раз терял важные конфиги. Позднее я настроил резервное копирование всех настроек в облако, но на NAS таких проблем бы не возникло изначально.

Ещё один плюс — ОС на NAS полна полезными инструментами. Например, можно стандартными средствами настроить reverse proxy для удобного доступа к УД за пределами локальной сети.

Но есть и недостатки:

  • Цена: NAS дороже обычного неттопа и как выделенное устройство для УД выглядит нецелесообразным.

  • Малый простор для апгрейда: вам повезло, если в вашей модели можно заменить хотя бы оперативную память.

На данный момент это моя основная платформа. Сервисы УД работают в Docker-контейнера на Synology DS720+.

Протоколы связи устройств

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

Wi-Fi

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

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

Zigbee

Zigbee — это беспроводной протокол, способный поддерживать большое количество узлов (до 65 тысяч узлов в Zigbee 3.0). Он также отличается низким энергопотреблением, благодаря чему устройства могут функционировать от одной батарейки несколько лет.

Zigbee применяет децентрализованный подход, основанный на ячеистой топологии сети (mesh-сеть). Каждое устройство может обмениваться данными с устройствами в пределах радиуса действия. Если устройства находятся слишком далеко друг от друга, то команды будут передаваться через промежуточные устройства. Это обеспечивает легкость расширения зоны покрытия сети.

Кроме того, по стандарту Zigbee устройства могут взаимодействовать друг с другом без координатора (это называется binding). Таким образом, беспроводной выключатель может управлять светом, даже если сервер или хаб выключен.

Недостатки:

  • Производители могут по-разному интерпретировать стандарт, что может привести к несовместимости устройств от разных брендов. Это ограничение можно решить на стороне хаба, если используется self hosted ПО (см. раздел Zigbee2MQTT).

  • Может подвергаться помехам от других беспроводных устройств, работающих на той же частоте (2.4 ГГц), таких как Wi-Fi или Bluetooth. Для минимизации помех может потребоваться выбор непересекающихся каналов на Wi-Fi-роутере и Zigbee-хабе.

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

Z-Wave

Z-Wave, как и Zigbee, – это беспроводной протокол с ячеистой структурой сети. Z-Wave менее популярен, но тоже достоин внимания. 

Различия Z-Wave и Zigbee:

  • Z-Wave работает на частоте 868 МГц в Европе и 908 МГц в США, а Zigbee – на частоте 2,4 ГГц во всем мире. Z-Wave может быть более устойчив к помехам, но имеет меньший радиус действия. Устройства из разных регионов не совместимы на аппаратном уровне.

  • Стандарт Z-wave контролируется одной компанией - Silicon Labs, которая определяет спецификации и сертифицирует продукты. Это обеспечивает совместимость между моделями устройств от разных производителей. Zigbee же разработан международной ассоциацией Zigbee Alliance, которая включает в себя множество компаний и организаций. Это дает большую гибкость и инновации, но также создает риск несовместимости между различными приборами.

Matter

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

В разработке стандарта принимают участие Apple, Google, Amazon, Samsung и некоммерческая Connectivity Standards Alliance (бывшая Zigbee Alliance).

Matter поддерживает следующие транспортные протоколы: Bluetooth Low Energy, Thread, Wi-Fi и Ethernet.

Это новый протокол, и пока он не получил широкого распространения. Поэтому Zigbee все еще актуален.

Я выбрал Zigbee в качестве основного протокола
Я выбрал Zigbee в качестве основного протокола

Конечные устройства

Определившись с протоколом связи, можно начать выбирать девайсы в свой дом.

У меня в системе примерно 30 Zigbee-устройств (см. скриншот в разделе Zigbee2MQTT) и еще несколько девайсов работают по Wi-Fi.

Если их разделить на категории:

  • Безопасность: датчики протечки, открытия входной двери, движения, дворовые камеры общего пользования.

  • Климат: датчики температуры, влажности, давления, углекислого газа, термоголовка для радиатора.

  • Освещение: светильники с регулируемой яркостью и цветовой температурой, выключатели, компактные кнопки.

Кстати, об освещении: вместо покупки кучи умных лампочек дешевле заменить выключатель. Также, существуют модели с диммером, для управления яркостью «неумных» ламп.


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


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

Кроме самих девайсов, нам понадобится координатор беспроводных устройств – в зависимости от выбранного протокола связи.

Для работы с Zigbee-устройствами я использую USB Zigbee координатор.

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

Мой USB Zigbee Стик v.4 CC2652P
Мой USB Zigbee Стик v.4 CC2652P

Производители устройств

Из популярных закрытых решений я чаще всего слышу о Xiaomi Aqara и умном доме Яндекса, которые работают по Zigbee. На рынке есть большое разнообразие, но почти все мои устройства именно от Aqara.

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

Что касается самих исполнительных устройств, если вы хотите строить умный дом на закрытой системе, то ваш выбор часто сужен до списка устройств, заявленных производителем, как совместимые. Такая информация, как правило, есть на сайте производителя. Кроме того, в УД от Яндекса есть навыки, которые позволяют подключать устройства некоторых других брендов.

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

С точки зрения ассортимента и цены интересны предложения от Tuya Smart. Об их стабильности и поддержке закрытыми системами кроме Tuya рассказать не могу – их устройств у меня нет.

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

Программная часть

Когда вы определились с системой УД, железом и протоколами связи, самое время заняться соединением всего этого воедино.

Моя актуальная конфигурация: Synology NAS, Home Assistant и USB Zigbee-стик. На NAS в Docker установлено множество сервисов, из которых за умный дом отвечают:

  • Home Assistant — основная платформа.

  • Node-RED — поточно-ориентированное ПО для связи различных устройств и сервисов. Позволяет создавать автоматизаций в графическом редакторе без единой строчки кода.

  • Zigbee2MQTT — программный шлюз, который общается с Zigbee-устройствами через USB-стик.

  • Eclipse Mosquitto — брокер MQTT сообщений. Является шиной, через которую общаются HA, Node-RED и Z2M.

На схеме ниже наглядно изображены компоненты и интерфейсы связи.

Архитектура моего умного дома
Архитектура моего умного дома

Компоненты системы живут в Docker-контейнерах и общаются, в основном, через шину — MQTT-брокер.

Zigbee-устройства интегрированы с сервисами через программно-аппаратный шлюз, состоящий из двух компонентов:

  • Zigbee-координатор, который подключен к домашнему серверу по USB. Все устройства общаются с координатором по своему нативному протоколу.

  • Zigbee2MQTT – программный шлюз, который конвертирует сигналы от Zigbee-устройств в сообщения в MQTT-топиках, и обратно.

Подробнее про интеграцию устройств и MQTT я расскажу ниже, в блоке про Zigbee2MQTT. Но обо всем по порядку.

Home Assistant

https://www.home-assistant.io/

Home Assistant: dashboard
Home Assistant dashboard
Home Assistant: история показаний датчиков
Home Assistant: история показаний датчиков

Home Assistant: dashboard Home Assistant (HA) — это комплексная платформа для автоматизации умного дома, которая может интегрироваться с невообразимым множеством устройств и сервисов. Она имеет web-интерфейс и мобильное приложение для мониторинга и управления всем домом. Проект активно развивается и недавно отметил свое десятилетие.

Установить его можно на одноплатники наподобие Raspberry Pi, железо на платформе x86, в виртуальную машину или в Docker.

HA имеет 4 варианта установки, что может сбить с толку. Чтобы разобраться в их различиях, нужно вникнуть в основные особенности этой платформы.

Основные особенности HA

Интеграции

Интеграции могут слушать и обращаться к сервисам и устройствам. Таким образом они расширяют вожности в HA.

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

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

3 основных источника интеграций:

Supervisor

Supervisor управляет всей системой и следит за ее работоспособностью.

В его обязанности входит:

  • Запуск HA Core.

  • Обновление HA Core и откат, если система перестает работать.

  • Обновление операционной системы HAOS.

  • Управление аудиоподсистемой хоста.

  • Add-ons. Именно Supervisor дает поддержку аддонов.

Наличие супервизора позволило сделать установку и работу с HA максимально простой. Достаточно записать образ ОС на карту памяти или SSD и запустить сервер. И это все, что нужно сделать. Через условные 5 минут система будет доступна в любом браузере в локальной сети.

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

Подробнее о Supervisor можно почитать в Home Assistant Developer Docs.

Add-ons

Home Assistant Add-ons (аддоны) — это полноценные приложения, запускаемые в контейнерах для расширения возможностей системы. За работой аддонов следит Supervisor.

Среди аддонов можно найти множество полезных приложений. Например, Node-RED, Zigbee2MQTT и Mosquitto, о которых я начал говорить выше, проще всего установить именно отсюда.

Если в системе есть Supervisor (в вариантах установки Home Assistant Operating System или Home Assistant Supervised), то вам будет доступна страница Add-on Store, на которой можно найти нужный аддон и установить его в пару кликов. Также, можно подключить дополнительные репозитории аддонов, в том числе самодельные.

Аддоны представляют из себя Docker-образы, со специальными файлами конфигурации (см. Making your first add-on). Из этого следует, что случайный образ с Docker Hub не получится установить в качестве аддона без специальной подготовки и сборки/публикации. Так что если захотите иметь в своей Home Assistant Operating System какое-то экзотическое приложение, которого нет в репозиториях от сообщества, то придется собирать аддон самостоятельно.

Теперь, когда мы познакомились с некоторыми особенностями Home Assistant, нам будет проще выбрать подходящий вариант установки.

Варианты установки Home Assistant

Статистика вариантов установок Home Assistant (сентябрь 2023)
Статистика вариантов установок Home Assistant (сентябрь 2023)

Согласно официальной статистике, самый популярный вариант установки - Operating System (73%). На втором месте Container (19%). Остальные встречаются заметно реже.

Давайте рассмотрим все варианты установки и какой лучше подойдет под конкретные цели.

Home Assistant Operating System - Оптимальный вариант.

Это специальная операционная система на основе Linux с предустановленным софтом. Включает в себя ядро, Supervisor, поддержку аддонов, набор предустановленных аддонов.

Плюсы:

  • Очень простая установка. Достаточно записать образ ОС на карту памяти или жесткий диск.

  • Просто добавлять интеграции.

  • Просто настроить полный бэкапинг (в том числе в Google Drive - hassio-google-drive-backup).

  • Очень просто обновлять систему и аддоны.

  • Рекомендован разработчиками.

Минусы:

  • Недостаточная гибкость, т.к. нет полноценного доступа к ОС.

  • Нельзя установить сторонний софт, кроме того, который есть в аддонах.

  • Не подходит для установки на NAS или ПК, где кроме HA нужно установить что-нибудь ещё. Но можно установить в виртуальную машину.

Получаем самый простой и дружелюбный способ установки. Оптимальный вариант – если под нужды умного дома выделено отдельное железо или виртуальная машина.

Если перечисленные минусы для вас не критичны, смело останавливайтесь на этом варианте.

Home Assistant Core - HA в виде Python-приложения. Без HAOS и Supervisor.

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

Home Assistant Supervised - Как Home Assistant Core, но с Supervisor.

Официальный, но не рекомендуемый способ установки. Может быть полезен для установки на устройства, которые не поддерживаются HAOS.

Данный способ позволяет установить HA поверх Debian Linux.

Home Assistant Container - Home Assistant Core в Docker-контейнере. Без Supervisor.

Основной плюс по сравнению с HAOS — кроме HA можно рядом установить что-угодно.

Недостатки:

  • Нет Supervisor. HA не будет следить за здоровьем «аддонов» в инородных контейнерах.

  • Нет удобных механизмов бэкапинга из коробки. Нужно делать бэкапы docker-конфигов.

  • Связь между контейнерами и прочие инфраструктурные работы нужно проводить вручную.

Это мой текущий вариант, т.к. на NAS кроме умного дома хостятся и другие сервисы, а виртуальная машина с HAOS съела бы лишние ресурсы слабого сервера.

Проблема бэкапинга решилась стандартными средствами Synology DSM.

Полезные материалы по установке:

Node-RED

https://nodered.org/

Пара простых автоматизаций в Node-RED
Пара простых автоматизаций в Node-RED

Node-RED — это инструмент потокового программирования, который удобно использовать для автоматизации задач в умном доме. Он позволяет соединять устройства, сервисы и API с помощью визуального интерфейса. Большая часть моих сценариев хранится тут.

Простые автоматизации можно сделать и в самом Home Assistant. Но более сложные сценарии в HA делать не так комфортно.

Zigbee2MQTT

https://www.zigbee2mqtt.io/

Карта моих Zigbee-устройств в интерфейсе Zigbee2MQTT
Карта моих Zigbee-устройств в интерфейсе Zigbee2MQTT

Я рассказал вам уже о двух инструментах для автоматизации работы устройств, но почти не затронул тему добавления устройств в эту систему. Пора исправляться.

Связующее звено между Zigbee-девайсами и всей системой — Zigbee2MQTT (Z2M). Это ПО, которое преобразует сигналы устройств (полученные через USB-координатор) в сообщения в MQTT-топиках, понятные для Home Assistant и Node-RED.

MQTT — это стандарт для передачи данных в Интернете вещей (IoT) и протокол обмена сообщениями между устройствами и сервисами. Это легковесный протокол для сетей с низкой пропускной способностью. Из-за этого он и популярен в IoT.

Для обмена сообщениями, в системе должен работать MQTT-брокер. Чаще всего в системах с  используют Mosquitto, реже — RabbitMQ.

Кстати, такая архитектура общения сервисов через MQ-топики похожа на классическое асинхронное взаимодействие компонентов в микросервисной архитектуре. 

Представьте, что на месте Mosquito располагается, например, Kafka. Таким образом, построение подобной архитектуры будет полезной тренировкой для IT-специалиста.

Zigbee2MQTT не единственный программный шлюз между Zigbee-девайсами и Home Assistant. Существует альтернатива — ZHA — Zigbee Home Automation. В отличие от Z2M, это не аддон, а нативная интеграция от сообщества HA. Это значит, что его проще установить и ресурсов он потребует меньше. Z2M поддерживает больше девайсов, получает поддержку новых устройств раньше и имеет более удобный интерфейс, но изначальная настройка аддона тяжелее (см. 1, 2). Выбор за вам.

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

Стабильность системы

Как правило, хабы в закрытых брендовых системы, при всех своих недостатках, автоматически бэкапятся и переносят неожиданные отключения. А самодельный умный дом довольно хрупкая система, да и защиты от дурака, обычно, тут нет. Поэтому задача спасения от отключения и потери данных ложится на плечи пользователя. В частности, нужно настроить резервное копирование системы и обеспечить бесперебойное питание.

При использовании Home Assistant Operating System ультимативное решение для резервного копирования — плагин hassio-google-drive-backup. Он по расписанию будет делать копию всех важных файлов и заливать их на ваш Google-диск. Работает как часы. А для Docker-версии HA все сложнее.  Я для этого использую стандартные средства Synology NAS.

Для бесперебойного питания я использую обычный UPS, который подключен к NAS по USB для корректного завершения работы при низком заряде аккумулятора.

Получилась достаточно стабильная система. С последних настроек прошло больше года, и система исправно работает без моего вмешательства.

Сценарии автоматизации

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

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

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

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

Из этого наблюдения вытекают закономерные правила:

  • Чем меньше автоматизаций, тем проще их обслуживать.

  • По возможности, сценарии должны быть простыми.

А если автоматизация нарушает эти правила, то она должна того стоить — решать важную задачу или заметно упрощать ежедневную рутину.

Свет в туалете и ванной

Когда я только начал заниматься умным домом, я задумался, как автоматизировать включение света в ванной комнате и туалете. По одному датчику движения было непонятно, человек ушел или просто не двигается. Тем более, подобные датчики не всегда улавливают мелкие движения на расстоянии более пары метров. Да и через стекло инфракрасные датчики практически не видят. В общем, свет постоянно выключался, пока человек был в комнате.


Я думал, как улучшить систему, и в результате у меня получился довольно большой конечный автомат (плагин node-red-contrib-xstate-machine), который надежно определяет присутствие человека в ванной или туалете по беспроводным  датчикам движения и открытия двери.

Автоматизация включения света в ванной и туалете сделана в Node-RED. К нему мы еще вернемся
Автоматизация включения света в ванной и туалете сделана в Node-RED. К нему мы еще вернемся

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

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

Точка росы: прогноз появления конденсата на стене

В моей квартире в кладовке за стеной находится шахта лифта, и в сильные морозы стена промерзает и покрывается конденсатом, так как точка росы смещается внутрь комнаты. За этим важно следить, т.к. это может привести к образованию плесени.

Оказалось, что несложно рассчитать, когда стена намокнет, если знать температуру ее поверхности, а также температуру и влажность в помещении.

Использовал завалявшиеся дома esp8266, ds18b20 и Zigbee датчик климата, интегрировал все в Home Assistant, подключил HACS-интеграцию thermal_comfort и получил прогноз образования конденсата в режиме реального времени.

Карточка со шкалой отображается на дашборде в Home Assistant
Карточка со шкалой отображается на дашборде в Home Assistant

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

Этот сценарий я считаю самым полезным и вдохновляющим.

Остальные автоматизации скорее просто добавляют комфорта, избавляют от рутинных действий и что-нибудь подсказывают. Со временем привыкаешь, что не нужно трогать многие выключатели света и вентиляции — оно включается само.

Контроль концентрации углекислого газа в воздухе

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

Показания датчика углекислого газа на карточке в интерфейсе Home Assistant. Зеленая линия - 1000 ppm

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

Прочие автоматизации

Добавлю еще несколько небольших автоматизаций, из тех, что я делал:

  • Если кто-то проник в квартиру или обнаружена протечка, придет уведомление в Telegram.

  • Вечером можно произнести голосовую команду, и свет в гостинной станет тусклым и теплым.

  • Вентиляция в ванной включается сама, когда воздух становится влажным, и выключается тоже автоматически.

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

  • Полезная кнопка у входной двери, которая выключает свет во всей квартире. Можно не думать, что забыл что-то выключить. Такая же кнопка есть у кровати.

  • Проходные выключатели с двумя режимами яркости.

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

  • Диммер для прикроватных светильников. Можно включить яркий свет для чтения книги или тусклый посреди ночи.

Полезные ссылки

Выводы

Системы умного дома от производителей и open source решения имеют свои преимущества и недостатки, поэтому выбор зависит от ваших целей, бюджета и уровня знаний. Эксперименты с self hosted платформами требуют больше технических знаний и времени, но они дают большую надежность и гибкость в настройке.

Home Assistant — один из самых популярных open source проектов в этой области. Он позволяет интегрировать множество устройств и сервисов между собой. А в основном варианте установки для начала использования не потребуется особых технических знаний.

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

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

Комментарии (33)


  1. Aquahawk
    06.10.2023 11:31
    +5

    А у меня двойная звезда из кучи распберри (одна по проводам, вторая по wifi) mqtt и тьма микросервисов на nodejs, полный самопал.


  1. tavi
    06.10.2023 11:31
    +1

    У разного рода неттопов и мини-пк есть проблема: при пропадании питания они не стартуют автоматически. Вариант с ИБП для "сельской местности" не сработает - время отключения может составлять от нескольких часов до более суток. Сам планировал использовать мини-пк для видеонаблюдения, но, видимо, буду ставить вместо него обычный стационарный видеорегистратор.


    1. alekssaff
      06.10.2023 11:31
      +11

      Эмм... В биосе уже как лет 20 есть настройка Power fail state = off | on | previous

      У меня так все минисерверы (из обычных ПК) были настроены, чтобы после сбоя питания включались, если были включены до этого.


      1. tavi
        06.10.2023 11:31

        Спасибо, посмотрю. У моего биос довольно куцый, но если что-то обнаружится - хорошо)


    1. markoni
      06.10.2023 11:31
      +2

      У beelink в bios - стандартная настройка - включить при появлении питания. У меня местность достаточно сельская, и отключения, да, бывают и сутки. Аккум свинцовый, 12а/ч, держит часов 8-9: beelink u59, 3 микротика (роутер и 2 точки), 2 модема. Ну, и бензиновый генератор никто не отменял.


      1. selff
        06.10.2023 11:31

        теперь надо солнечную батарею для подзарядки акб :)


  1. sav13
    06.10.2023 11:31
    +2

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

    Что толку знать о протечке или проникновении в дом/квартиру если ты за 100+ км?

    Зачем следить за температурой/влажностью/СО2 а затем становиться исполнительным механизмом умного дома?

    Умный дом должен быть ненавязчивым. Например, вентилятор в ванной должен включаться не во время принятия душа, а после этого события. А оповещение в телеграмм, если их много могут сильно раздражать, особенно ночью )))

    Ну и умный дом должен быть 100% надежным. Что толку в системе протечки если в датчике кончилась батарейка, завис контроллер или ESP-ха потеряла WiFi

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


    1. Zara6502
      06.10.2023 11:31
      -1

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


    1. Heggi
      06.10.2023 11:31
      +4

      При протечке - перекрываем входные вентили (есть такие девайсы ИРЛ)

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

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


      1. sav13
        06.10.2023 11:31

        А еще Алиса непрерывно следит за вами и пытается впулить всякие услуги и товары где можно и сливает о вас информацию другим нейросетям )))


        1. Heggi
          06.10.2023 11:31
          +2

          Если вы так боитесь Алису - не пускайте ее к себе домой.

          К счастью, Алиса пока что не обязательный атрибут дома.


    1. 0xf331d34d
      06.10.2023 11:31
      +3

      Всмысле зачем знать когда за 100км?

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


    1. Dolios
      06.10.2023 11:31
      +2

      Что толку знать о протечке или проникновении в дом/квартиру если ты за 100+ км?

      Есть краны, которые перекроют воду.

      Зачем следить за температурой/влажностью/СО2 а затем становиться исполнительным механизмом умного дома?

      В автоматическом режиме можно включить бризер.

      Что толку в системе протечки если в датчике кончилась батарейка

      Там батарейка кончается несколько недель, если умный дом шлёт сообщения об этом, можно вовремя поменять.


    1. Nick0las
      06.10.2023 11:31

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


  1. Zivaka
    06.10.2023 11:31
    +1

    Все устройства используются беспроводные - это изначально план такой был или уже не было возможности для какого-нибудь wirenboard или похожих проводных решений?

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


    1. Viktor-235 Автор
      06.10.2023 11:31

      Я проектировал систему на этапе ремонта в новостройке и рассматривал все актуальные варианты. В том числе Wiren Board. На сколько я понял, типовой вариант использования централизованного контроллера (не беспроводного), это протягивание сигнальных кабелей от каждого выключателя к контроллеру. А потом, силовые кабели тянутся ко всем лампочкам и розеткам от реле, которые расположены в щитке рядом с контролером.

      Я прикинул стоимость и офигел от одного только расхода кабеля)

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

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


      1. Zivaka
        06.10.2023 11:31
        +1

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

        Что касается надежности беспроводных технологий, у меня есть несколько устройств на Zigbee/Z-Wave - их надежность подключения и общая безгеморройность не идет ни в какое сравнение с проводными устройствами, а если таких устройств еще и много, то в какой-то момент начнутся пляски заменой батареек)

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


  1. dr_Sergeus
    06.10.2023 11:31
    +1

    Голосовое управление - важная часть УД. Не зря HA объявили 2023 - годом голоса. И действительно, сейчас практически "из коробки" все работает. Но.. требует ресурсы. Локальные ресурсы.
    Как и автор, считаю, что docker - лучшее решение. Даже не смотря на то, что у меня под УД выделена отдельная железка. Это дает возможность рядом жить 11 контейнерам. Включая "piper " и "whisper" необходимые для локального voice assist от HA, silero для TTS, ну и пока еще не все в HA работает с голосом так как надо (ESPhome еще не допилино решение для сателлитов с активацией голосом и локальным распознанием Wake-up слова/фразы), все построено через rhysspy.
    Автору отдельный респект, что потрудился практически "на пальцах" разложить все по полкам.


    1. sav13
      06.10.2023 11:31

      А голосовое управление работает без интернета?


      1. dr_Sergeus
        06.10.2023 11:31
        +1

        На 100% локальное решение. То есть и STT и TTS обрабатывается локально.


      1. Darkformer
        06.10.2023 11:31

        В Home Assistant - да, в настройках выбирается, локально обрабатывать или в облаке.


    1. Viktor-235 Автор
      06.10.2023 11:31

      Спасибо! Ценное дополнение про локальные голосовые ассистенты. Я слышал, что энтузиасты прикручивают к такому пайплайну chatgpt и добавляют в контекст данные о состоянии entities. Вот первый попавшийся пример.


      1. dr_Sergeus
        06.10.2023 11:31

        Есть альтернативы. https://habr.com/ru/articles/725066/
        Но там пока еще много надо допиливать. Хотя идея хорошая и форк есть под linux.


  1. nomhoi
    06.10.2023 11:31
    +2

    Сегодня утром просыпаюсь, смотрю, на станции контроля AirNanny A7 на дисплее перестала показываться информация о концентрации C02, иногда моргает и показывает, и еще иногда показывает ошибку E-10.
    Захожу на хабр, вижу эту статью.
    Вы сговорились!!!


    1. Viktor-235 Автор
      06.10.2023 11:31
      +1

      Здоровья Вашему дому)

      Если будет полезным, я мониторю CO2 через Qingping Air Monitor Lite. Можно пробросить показания в Home Assistant.


  1. venanen
    06.10.2023 11:31
    +1

    У меня тоже небольшая система умного дома, в основном со светом. У меня сяомишные RGB лампочки, и несколько сценариев: утром за полчаса до будильника имитация рассвета, вместе с будильником включается холодный белый свет на максимальную яркость. Просыпаться стало очень комфортно, а если проснулся фигово - обратно уже не уснешь, по тремя такими лампами. К вечеру за час до сна переключаются в неяркий теплый режим - сразу в сон клонит. Засыпать тоже стал как человек.
    Ну и самое важное - кнопка у кровати, которая по маршруту кровать-туалет включает лампы в красном цвете с минимальной яркостью - сходить в туалет без боли в глазах - дорогого стоит.

    Но с чем столкнулся я, и почему забросил дальше делать дом - компоненты друг с другом не совместимы (я на вендровоских хабах делал, если на опенсурсе такого нет - поправьте, пожалуйста). Купил кнопку - а ей такой хаб не подходит, ей другой хаб нужен, но другой хаб не работает с лампочками. А третий работает с лампочками и кнопками, но не добавляется в гугл/яндекс home. И так повсюду, и не понятно - что будет работать, что не будет работать и так до бесконечности. Думаю поднять хаб на малине, с HA проще, или тоже перед каждой покупкой ходить по форумам спрашивать нужно?


    1. dr_Sergeus
      06.10.2023 11:31
      +1

      Именно для этого и есть связка HA+Zigbee2mqtt+Tasmota. Эта связка закрывает 99% потребностей умного дома.


    1. Viktor-235 Автор
      06.10.2023 11:31
      +1

      На малине будет проще всего поднять Home Assistant Operating System. А остальное зависит от брендов и протоколов.

      Совместимость zigbee-устрйоств с HA через Zigbee2MQTT можно проверить в едином месте.

      С не zigbee-девайсами тоже должно сработать, но интеграции для добавления устройств в HA придётся искать отдельно для каждой вендора. Можно начать с поиска по названию бренда на странице интеграций HA. Возможно, нужная интеграция уже предустановлена.


  1. alexzzam
    06.10.2023 11:31
    +1

    Tuya я бы не рекомендовал. Приятные недорогие устройства, всё работает. Но чтобы подключить к тому же HA, нужно заводить "аппликейшен" в их системе для доступа к апи. Проблема в том, что вся эта система предназначена для разработчиков устройств и доступ к апи стоит, кажется €50k. Но можно жить на триальном доступе. Но регулярно писать им тексты с просьбами его продлить. Они продлевают, но неприятненько.


    1. Viktor-235 Автор
      06.10.2023 11:31
      +2

      В случае с Zigbee-устройствами, проблем с поддержкой в HA+Zigbee2MQTT возникнуть не должно. Судя по списку поддерживаемых устройств Tuya, устройства залетают нативно.


    1. chercheur
      06.10.2023 11:31

      Видимо, комментатор имел в виду wifi устройства туя

      Подключить wifi туёвые устройства к HA можно двумя путями: 1. через облако туи, и тут достаточно пользовательского эккаунта в их приложении и 2. локально через интеграцию localtuya, и вот тут уже потребуются танцы с developer экаунтом, ключами доступа и т.д. В принципе, не rocket science

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


      1. alexzzam
        06.10.2023 11:31
        +1

        Немного не так. Для интеграции Tuya нужен девелоперский аккаунт, недостаточно только обычного логина, вот инструкция от ингерации: https://next.home-assistant.io/integrations/tuya
        Для интеграции LocalTuya вообще-то облако не нужно, но нужны токены конкретных устройств, а они доступны через девелоперский аккаунт.
        Не рокет-саенс, но девелоперский аккаунт теряет доступ к апи не более чем через полгода. Но можно запросить продление ещё на полгода.


        1. chercheur
          06.10.2023 11:31

          Посмотрел у себя, да, действительно облачная интеграция требует девелоперский эккаунт. Просто забыл как это было, единственное tuya wifi устройство добавил 2 года назад, спасибо!