Меня зовут Виктор, я backend-разработчик в финансовом маркетплейсе Банки.ру. Последние годы я интересуюсь темой умного дома. Хочу рассказать о том, с чего я начинал и к чему пришел. Эта статья будет полезна тем, кто: хочет понять как устроен self-hosted умный дом; хочет перенять опыт и избежать чужих ошибок; уже имеет умный дом и интересуется прикладными сценариями. Я расскажу про железо (Raspberry Pi, x86, NAS), протоколы (в основном Zigbee) и софт (Home Assistant + Zigbee2MQTT + Node-RED). Немного о себе и об этой статье Что такое умный дом Open source VS Системы от вендоров Аппаратная часть Протоколы связи устройств Конечные устройства Программная часть Стабильность системы Сценарии автоматизации Полезные ссылки Выводы  В свободное время я люблю поковыряться в компьютерных железках, гаджетах и софте. В 2019 году я решил совместить свое хобби с чем-нибудь полезным. Мне хотелось сделать что-то такое, что добавит комфорта в домашнюю рутину. Сначала, я начал изучать, какие есть экосистемы умного дома и чем они отличаются. В итоге я взял одноплатный компьютер Raspberry Pi, установил на него Home Assistant и заказал на AliExpress Zigbee-координатор с парой устройств. Так и началось мое знакомство с темой умного дома. Со временем у меня накопился практический опыт и набор интересных сценариев, которыми я хочу поделиться с вами. Сначала я немного расскажу, кому может быть полезен умный дом. Потом сравню системы от производителей с open-source решениями. Далее опишу какое железо подойдет для самостоятельных экспериментов. Расскажу про Home Assistant и прочий связанный софт, варианты установки и мою архитектуру. И, наконец, поделюсь практическими сценариями автоматизаций. Под умным домом (УД) подразумевают широкий спектр устройств и понятий. Давайте конкретизируем. Я считаю, что умный дом — это комплексная система, которая обеспечивает комфорт, безопасность и экономию ресурсов в автоматическом режиме. Некоторые сценарии удобно запускать со смартфона или через голосового ассистента, но самые базовые автоматизации должны срабатывать без вмешательства пользователя. Цель — избавиться от рутинных действий, а не сделать для них дополнительную прослойку в виде условного пульта. Еще один важный момент, который нужно учитывать при проектировании — система обязана быть максимально отказоустойчивой: Если пропадает интернет, может перестать работать голосовой помощник, но не устройства и основные автоматизации. Если сломалось головное устройство, могут пострадать автоматизации, но ни в коем случае не базовые функции. Умный дом не превращается в тыкву. Во-первых, самостоятельное построение такой системы может стать отличным хобби. Здесь и множество нетривиальных задач, и польза для домочадцев. Во-вторых, система автоматизации помогают в оптимизации разных аспектов быта: Безопасность: определение проникновения в жилье, видеонаблюдение, защита от протечек. Доступность: помощь людям с ограниченными возможностями. Климат и экономия ресурсов: управление светом, отоплением и вентиляцией. Комфорт: управление бытовой техникой, шторами, режимами освещения и музыкой. Система может автоматически реагировать на внешние факторы, наподобие изменения погоды, времени суток или присутствия людей. В особенности все эти оптимизации могут быть полезны для владельцев частных домов и садовых участков. Для них вопросы безопасности и климата стоят особенно остро. Кстати, кроме построения всей системы самостоятельно, есть вариант прибегнуть к услугам интеграторов умного дома. Они могут сделать это «под ключ». Но в данной статье я буду рассказывать о самостоятельном разворачивании всего софта. Существует множество вариантов систем умного дома, которые можно разделить на две основные категории: закрытые системы от вендоров и открытые системы от сообщества, которые могут работать на локальном оборудовании. Такие решения предоставляют конкретные производители, например Яндекс, Xiaomi, Aqara, Fibaro и другие. Вендоры предлагают решения «все в одном», где и конечные девайсы, и головное устройство (хаб) находятся внутри замкнутой экосистемы производителя. Для настройки системы и взаимодействия с устройствами, чаще всего, нужно приложение для смартфона от того же изготовителя. Wi-Fi и Bluetooth устройства, как правило, могут работать без хаба, но приложение требуется все равно. Плюсы: Простота установки и использования, т.к. это устройства для максимально широкого круга пользователей. Часто такие устройства легче найти в розничных магазинах. Производитель позаботился о резервном копировании настроек. Обычно хабы без проблем переносят неожиданное отключение питания. Минусы: Зависимость от интернет-соединения и онлайн серверов производителя. Иногда системы сохраняют базовую функциональность в офлайне, но автоматизации все равно могут ломаться. Частичная или полная остановка работы при веерных блокировках IP-адресов. Низкая отзывчивость устройств, когда команды обрабатываются на сервере производителя. Сравнительно ограниченные масштабируемость и функционал автоматизаций. У каждого производителя свой набор устройств. Следовательно, возможна ситуация, когда нужное устройство не совместимо с выбранной системой. Риск потери поддержки в будущем. Приведу несколько примеров, когда пользователи теряли контроль над своими устройствами в системах от вендоров: Разработчики платформы умного дома Wink в 2020 году ввели платную подписку. Те, кто не оплатил подписку в течение недели, остались без мобильного приложения, голосового управления и автоматизаций.  Свежий пример — 4 октября 2023 года российские пользователи умного дома Xiaomi и Aqara столкнулись с массовым сбоем приложения и управляемых через него устройств. Разработчик устройств Insteon внезапно закрылся в 2022 году, оставив всех пользователей с неработающими устройствами. Учитывая любовь Google закрывать свои продукты, надеюсь, что такая же судьба не постигнет Google Home… Это системы, которые создаются и развиваются сообществом энтузиастов. Обычно, они предлагают большую гибкость, масштабируемость и возможность тонкой настройки под свои нужды, но за это приходится расплачиваться сложностью настройки и поддержки или нестабильностью, если настройка произведена неверно. Self hosted система полностью располагается на локальном компьютере-сервере. Из этого вытекают преимущества и недостатки. Плюсы: Возможность реализовать сценарии любой сложности. Не требуют постоянного доступа в интернет и не завязаны на сервера производителя. Автоматизации тоже выполняются локально. Полный контроль над всей системой. Возможность подключить устройства от разных производителей (в том числе от вендоров закрытых систем). Таким образом можно существенно сэкономить. Поддержка сообществом энтузиастов. Можно найти готовые интеграции на любой вкус и заставить устройства разных производителей работать вместе. Любой человек может сделать интеграцию и поделиться ей со всем миром. Можно подключить любого голосового ассистента или даже несколько. То же относится и к приложениям умного дома, например, Apple HomeKit, Google Home или Яндекс Алиса. Минусы: Могут требовать продвинутых технических знаний и усилий от пользователя. Хотя решения наподобие Home Assistant стремятся максимально снизить порог вхождения. Порой не предоставляют надежное резервное копирование из коробки. Могут получить программный сбой при неожиданной потере питания. Возможности self hosted платформ ограничиваются лишь вашей фантазией и желанием углубляться в тему. Гибкие системы УД наподобие Home Assistant позволяют интегрировать широчайший спектр устройств и сервисов: от бытовой техники и до автомобилей и расписаний общественного транспорта. Список популярных решений (в алфавитном порядке): Domoticz Home Assistant (мой выбор) Homebridge ioBroker MajorDoMo Node-RED (мой выбор) OpenHab Резюмирую: закрытые решения подходят для тех, кто хочет получить готовый продукт без особых хлопот, а self hosted решения — для тех, кто хочет иметь полную свободу действий и творчества. Я предпочел второй вариант и дальше буду рассказывать именно про него. Я буду рассматривать конфигурации железа, подходящие для Home Assistant, но с большой долей вероятности, они подойдут и для других self hosted систем УД. Согласно статистике: Почти половина установок платформы умного дома Home Assistant приходится на одноплатные компьютеры Raspberry Pi (46%). Популярность сохраняется, несмотря на то что 4-ая модель сильно подорожала за последние годы. На втором месте – установка на виртуальную машину (34%). Третье место и 14% — Generic x86-64. Я привожу данные из официальной статистики Home Assistant за сентябрь 2023, субъективно, самого популярного open source решения для УД. Кстати, HA — это второй по активности проект с открытым исходным кодом на GitHub (источник). Кроме того, стоит заметить, что Board types статистика собирается лишь в варианте установки Operating System. Подробнее о вариантах установки я расскажу в разделе Home Assistant. Давайте рассмотрим разные аппаратные конфигурации. В силу популярности, целесообразно начать знакомство с 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 и охлаждением. Добавить к этой сборке ИБП – и получится оптимальное решение с точки зрения надежности. К устройствам на этой платформе можно отнести обычные ПК, ноутбуки и неттопы. Из этого следует, что для первых экспериментов можно обойтись и без покупки выделенного железа. Учитывая повышение цен на Raspberry Pi, возможно, этот вариант самый рациональный. Сетевая система хранения данных (NAS) обеспечивает централизованное место хранения данных в сети. NAS позволяет создавать частное облако для надежного хранения и доступа к файлам. Кроме того, современные NAS позволяют устанавливать дополнительные сервисы. Если у вас есть такое устройство, оно позволяет установить Docker и у него хватает ЦПУ и памяти, то это хороший вариант для установки системы УД. Основное преимущество NAS перед прочими аппаратными платформами — надежный бэкапинг «из коробки». Когда я только познавал основы домашней автоматизации на Raspberry Pi, я несколько раз терял важные конфиги. Позднее я настроил резервное копирование всех настроек в облако, но на NAS таких проблем бы не возникло изначально. Еще один плюс — ОС на NAS полна полезными инструментами. Например, можно стандартными средствами настроить reverse proxy для удобного доступа к УД за пределами локальной сети. Но есть и недостатки: Цена: NAS дороже обычного неттопа и как выделенное устройство для УД выглядит нецелесообразным. Малый простор для апгрейда: вам повезло, если в вашей модели можно заменить хотя бы оперативную память. На данный момент это моя основная платформа. Сервисы УД работают в Docker-контейнера на Synology DS720+. Протоколы связи для умного дома — это способы, которыми различные устройства в доме обмениваются данными и командами. Существует множество протоколов связи, но давайте поподробнее посмотрим на самые популярные беспроводные решения. Wi-Fi обеспечивает быструю передачу данных, но требует большого количества энергии, что затрудняет создание беспроводных устройств на батарейках. Благодаря широкому распространению Wi-Fi, можно подключать устройства к сети без хаба, но перегрузка сети может привести к снижению качества связи всех Wi-Fi устройств. Этот протокол оптимален для устройств потоковой передачи, наподобие камер видеонаблюдения, но плохо подходит для большой сети из множества выключателей, ламп и подобных приборов. Zigbee — это беспроводной протокол, способный поддерживать большое количество узлов (до 65 тысяч узлов в Zigbee 3.0). Он также отличается низким энергопотреблением, благодаря чему устройства могут функционировать от одной батарейки несколько лет. Zigbee применяет децентрализованный подход, основанный на ячеистой топологии сети (mesh-сеть). Каждое устройство может обмениваться данными с устройствами в пределах радиуса действия. Если устройства находятся слишком далеко друг от друга, то команды будут передаваться через промежуточные устройства. Это обеспечивает легкость расширения зоны покрытия сети. Кроме того, по стандарту Zigbee устройства могут взаимодействовать друг с другом без координатора (это называется binding). Таким образом, беспроводной выключатель может управлять светом, даже если сервер или хаб выключен. Недостатки: Производители могут по-разному интерпретировать стандарт, что может привести к несовместимости устройств от разных брендов. Это ограничение можно решить на стороне хаба, если используется self hosted ПО (см. раздел Zigbee2MQTT). Может подвергаться помехам от других беспроводных устройств, работающих на той же частоте (2.4 ГГц), таких как Wi-Fi или Bluetooth. Для минимизации помех может потребоваться выбор непересекающихся каналов на Wi-Fi-роутере и Zigbee-хабе. Имеет низкую скорость передачи данных, что не критично для устройств, которые обмениваются простыми командами. Т.е. для камер видеонаблюдения не подойдет. 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 — это проект с открытым исходным кодом, целью которого является создание единого стандарта для обмена данными между разными устройствами Интернета вещей (IoT). Благодаря этому, гаджеты смогут общаться друг с другом напрямую, без необходимости дополнительных посредников и программ, что должно улучшить ситуацию с совместимостью, безопасностью и удобством. В разработке стандарта принимают участие Apple, Google, Amazon, Samsung и некоммерческая Connectivity Standards Alliance (бывшая Zigbee Alliance). Matter поддерживает следующие транспортные протоколы: Bluetooth Low Energy, Thread, Wi-Fi и Ethernet. Это новый протокол, и пока он не получил широкого распространения. Поэтому Zigbee все еще актуален. Определившись с протоколом связи, можно начать выбирать девайсы в свой дом. У меня в системе примерно 30 Zigbee-устройств (см. скриншот в разделе Zigbee2MQTT) и еще несколько девайсов работают по Wi-Fi. Если их разделить на категории: Безопасность: датчики протечки, открытия входной двери, движения, дворовые камеры общего пользования. Климат: датчики температуры, влажности, давления, углекислого газа, термоголовка для радиатора. Освещение: светильники с регулируемой яркостью и цветовой температурой, выключатели, компактные кнопки. Кстати, об освещении: вместо покупки кучи умных лампочек дешевле заменить выключатель. Также, существуют модели с диммером, для управления яркостью «неумных» ламп. Попытки автоматизации робота-пылесоса на практике показали, что удобнее управлять им вручную или голосом, потому что ты не знаешь, в какой момент будешь на созвоне, и спрогнозировать удачное время для запуска пылесоса в моем случае слишком сложно. В целом, автоматизация всего подряд не имеет смысла. Все, что внедряется в систему умного дома, иногда нужно поддерживать, чтобы оно работало. И чем больше ты внедрил, тем сложнее поддерживать все рабочим и обновленным. Кроме самих девайсов, нам понадобится координатор беспроводных устройств – в зависимости от выбранного протокола связи. Для работы с Zigbee-устройствами я использую USB Zigbee координатор. Такие приборы можно найти на AliExpress и на других торговых площадках. Свой я заказал у умельцев, которые проектируют и изготавливают Zigbee-координаторы и другие устройства. Из популярных закрытых решений я чаще всего слышу о Xiaomi Aqara и умном доме Яндекса, которые работают по Zigbee. На рынке есть большое разнообразие, но почти все мои устройства именно от Aqara. В качестве голосового ассистента я использую Google-колонки. Но не стану их рекомендовать всем, т.к. их сложно найти, и понимают они лишь команды на английском языке. Что касается самих исполнительных устройств, если вы хотите строить умный дом на закрытой системе, то ваш выбор часто сужен до списка устройств, заявленных производителем, как совместимые. Такая информация, как правило, есть на сайте производителя. Кроме того, в УД от Яндекса есть навыки, которые позволяют подключать устройства некоторых других брендов. Zigbee-устройства от Xiaomi и Aqara, пожалуй, самые распространенные. Они дешевые и имеют широкую поддержку различными системами, как закрытыми, так и открытыми. Об Aqara я слышал плохие отзывы о стабильности их работы в Mesh-сети. Тем не менее, эти устройства легко найти и купить как на AliExpress, так и в розницу. И их интеграция в популярные системы делает этот вариант вполне удобным. С точки зрения ассортимента и цены интересны предложения от Tuya Smart. Об их стабильности и поддержке закрытыми системами кроме Tuya рассказать не могу – их устройств у меня нет. Производителей устройств для умного дома очень много. Рассмотрите и другие предложения, подходящие вашей системе и укладывающиеся в бюджет. Когда вы определились с системой УД, железом и протоколами связи, самое время заняться соединением всего этого воедино. Моя актуальная конфигурация: Synology NAS, Home Assistant и USB Zigbee-стик. На NAS в Docker установлено множество сервисов, из которых за умный дом отвечают: Home Assistant (HA) — основная платформа. Node-RED — поточно-ориентированное ПО для связи различных устройств и сервисов. Позволяет создавать автоматизаций в графическом редакторе без единой строчки кода. Zigbee2MQTT (Z2M) — программный шлюз, который общается с Zigbee-устройствами через USB-стик. Eclipse Mosquitto — брокер MQTT сообщений. Является шиной, через которую общаются HA, Node-RED и Z2M. На схеме ниже наглядно изображены компоненты и интерфейсы связи в моей архитектуре. Компоненты системы живут в Docker-контейнерах и общаются, в основном, через шину — MQTT-брокер. Zigbee-устройства интегрированы с сервисами через программно-аппаратный шлюз, состоящий из двух компонентов: Zigbee-координатор, который подключен к домашнему серверу по USB. Все устройства общаются с координатором по своему нативному протоколу. Zigbee2MQTT – программный шлюз, который конвертирует сигналы от Zigbee-устройств в сообщения в MQTT-топиках, и обратно. Подробнее про интеграцию устройств и MQTT я расскажу ниже, в блоке про Zigbee2MQTT. Но обо всем по порядку. https://www.home-assistant.io/ Home Assistant (HA) — это комплексная платформа для автоматизации умного дома, которая может интегрироваться с невообразимым множеством устройств и сервисов. Она имеет web-интерфейс и мобильное приложение для мониторинга и управления всем домом. Проект активно развивается и недавно отметил свое десятилетие. Установить его можно на одноплатники наподобие Raspberry Pi, железо на платформе x86, в виртуальную машину или в Docker. HA имеет 4 варианта установки, что может сбить с толку. Чтобы разобраться в их различиях, нужно вникнуть в основные особенности этой платформы. Интеграции Интеграции могут слушать и обращаться к сервисам и устройствам. Таким образом они расширяют возможности в HA. Например, можно добавить интеграцию с telegram или работу с голосовыми ассистентами. Также, можно получать информацию о погоде, рассветах/закатах, трафика на дорогах, расписании общественного транспорта и полноценно использовать эти данные в автоматизациях. Интеграции доступны в любом варианте установки HA. В одном лишь официальном перечне интеграций их уже свыше 2.5 тысяч штук. 3 основных источника интеграций: Интеграции, разработанные Home Assistant community Кроме того, есть популярный и очень полезный сторонний источник интеграций и прочих компонентов — HACS: Home Assistant Community Store Можно разработать свою на Python и положить в папку “custom_components” или опубликовать ее для общего доступа. 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, нам будет проще выбрать подходящий вариант установки. Согласно официальной статистике, самый популярный вариант установки - 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. Полезные материалы по установке: Installation - Home Assistant Installation Methods & Community Guides Wiki - Home Assistant https://nodered.org/ Node-RED — это инструмент потокового программирования, который удобно использовать для автоматизации задач в умном доме. Он позволяет соединять устройства, сервисы и API с помощью визуального интерфейса. Большая часть моих сценариев хранится тут. Простые автоматизации можно сделать и в самом Home Assistant. Но более сложные сценарии в HA делать не так комфортно. https://www.zigbee2mqtt.io/ Я рассказал вам уже о двух инструментах для автоматизации работы устройств, но почти не затронул тему добавления устройств в эту систему. Пора исправляться. Связующее звено между Zigbee-девайсами и всей системой — Zigbee2MQTT. Это ПО, которое преобразует сигналы устройств (полученные через USB-координатор) в сообщения в MQTT-топиках, понятные для Home Assistant и Node-RED. MQTT — это стандарт для передачи данных в Интернете вещей (IoT) и протокол обмена сообщениями между устройствами и сервисами. Это легковесный протокол для сетей с низкой пропускной способностью. Из-за этого он и популярен в IoT. Для обмена сообщениями, в системе должен работать MQTT-брокер. Чаще всего в паре с Z2M используют 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), который надежно определяет присутствие человека в ванной или туалете по беспроводным  датчикам движения и открытия двери. Автоматизация оказалось сложной, но она оправдала затраченные усилия. С ней полностью отпала необходимость взаимодействия с выключателями в туалете и ванной. Сейчас же задачу определения пребывания человека в комнате можно решить без сложных алгоритмов и одним единственным устройством — датчиком присутствия. Автоматизации с его участием будет проще сделать, но этот девайс требует постоянного питания от сети. В моей квартире в кладовке за стеной находится шахта лифта, и в сильные морозы стена промерзает и покрывается конденсатом, так как точка росы смещается внутрь комнаты. За этим важно следить, т.к. это может привести к образованию плесени. Оказалось, что несложно рассчитать, когда стена намокнет, если знать температуру ее поверхности, а также температуру и влажность в помещении. Использовал завалявшиеся дома esp8266, ds18b20 и Zigbee датчик климата, интегрировал все в Home Assistant, подключил HACS-интеграцию thermal_comfort и получил прогноз образования конденсата в режиме реального времени. Далее с полученными данными можно настроить уведомления и автоматизацию включения обогревателя. Я же просто проветриваю помещение, когда стрелка в желтой зоне. Этот сценарий я считаю самым полезным и вдохновляющим. Остальные автоматизации скорее просто добавляют комфорта, избавляют от рутинных действий и что-нибудь подсказывают. Со временем привыкаешь, что не нужно трогать многие выключатели света и вентиляции — оно включается само. Когда работаешь из дома целый день, важно регулярно проветривать комнату для притока кислорода. Но если на улице холодно и не хочется лишний раз впускать холод с улицы, на счету каждая минута открытых окон. С помощью датчика качества воздуха и дашборда Home Assistant можно наглядно увидеть, не пора ли проветрить комнату.  Показания датчика углекислого газа на карточке в интерфейсе Home Assistant. Зеленая линия - 1000 ppm При желании можно пойти дальше и установить бризер, который будет проветривать помещение автоматически, ориентируясь на показания датчика. Добавлю еще несколько небольших автоматизаций, из тех, что я делал: Если кто-то проник в квартиру или обнаружена протечка, придет уведомление в Telegram. Вечером можно произнести голосовую команду, и свет в гостинной станет тусклым и теплым. Вентиляция в ванной включается сама, когда воздух становится влажным, и выключается тоже автоматически. В прихожей свет управляется датчиком движения. Заходишь домой – и свет сразу включается, а позже выключается. Полезная кнопка у входной двери, которая выключает свет во всей квартире. Можно не думать, что забыл что-то выключить. Такая же кнопка есть у кровати. Проходные выключатели с двумя режимами яркости. На кухне можно включить яркий свет, попросив голосового ассистента. Полезно, когда руки грязные. Диммер для прикроватных светильников. Можно включить яркий свет для чтения книги или тусклый посреди ночи. Цикл статей в блоге Вастрика: можно начать с Дом-дурачок 2.0 Каталог устройств и статьи об УД: sprut.ai Каталог устройств от Ивана Бессарабова: ivan.bessarabov.ru Гайды от AlexKvazis на Youtube Детально о Home Assistant на английском: awesome-ha.com Моя старая Trello-доска (не обновляется, но может оказаться полезной) Системы умного дома от производителей и open source решения имеют свои преимущества и недостатки, поэтому выбор зависит от ваших целей, бюджета и уровня знаний. Эксперименты с self hosted платформами требуют больше технических знаний и времени, но они дают большую надежность и гибкость в настройке. Home Assistant — один из самых популярных open source проектов в этой области. Он позволяет интегрировать множество устройств и сервисов между собой. А в основном варианте установки для начала использования не потребуется особых технических знаний. Практические сценарии автоматизаций, которые я описал, показывают, как можно использовать умный дом для повышения комфорта и решения разных задач. Я надеюсь, что данная статья вдохновила вас и показала оптимальные точки входа в тему Умного дома. Если вы тоже хотите сделать свой дом комфортнее и безопаснее, я рекомендую вам начать с изучения разных экосистем, доступных на рынке. Выберите решение под ваш бюджет и сложность сценариев. Вы увидите, что это не так сложно и дорого, как может показаться на первый взгляд. Главное, иметь желание и интерес.  Java Backend Developer