Home Assistant 101. Посібник для початківців
Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті
Привіт усім! Вам не здається, що про таку чудову систему як Home Assistant — замало контенту українською? Мені здається. Пропоную це виправити. російський військовий корабель, пішов нах***!
Home Assistant — це універсальна вільна операційна система для керування пристроями інтернету речей різних виробників, а також їхньої автоматизації. Це локальне рішення, що не залежить від хмари чи наявності інтернету, та підтримує велику кількість протоколів: Wi-Fi, Zigbee, Z-wave, Bluetooth, Bluetooth-mesh, IR etc.
Існує велика кількість сценаріїв його використання. До прикладу:
- керування безпекою: камери, сигналізації, датчики задимленості, відкриття, руху, вібрації;
- керування освітленням: регулювання яскравості, кольору, теплоти, підсвітка, ambilight;
- керування побутовою технікою: кондиціонер, пилосос, телевізор, чайник;
- керування електроживленням: розетки, вимикачі, реле, лічильники;
- моніторинг: температури, вологості, тиску, CO2, протікання.
Куди встановлювати
Якщо я вас зацікавив і виникає питання, як і куди встановити Home Assistant, то найпопулярніший варіант — це використання одноплатних комп’ютерів, таких як Raspberry pi 3/4, Odroid N2+, Asus Tinkerboard S, Intel NUC, Orange Pi Zero. Також можна встановити на NAS від Synology та QNAP, на міні ПК на кшталт Lenovo Thinkcentre. Детальніше про вибір апаратного забезпечення в окремій статті
Що встановлювати
Перше, що може заплутати при знайомстві з Home Assistant, чотири рекомендованих варіанти встановлення.
Home Assistant OS. Це рекомендований та найлегший спосіб встановлення. Це мінімальна операційна система, оптимізована для роботи Home Assistant. Хоча вона і має обмеження на встановлення стороннього ПЗ та контейнерів, я не помітив недоліків для себе. Його використовують 67% користувачів.
Home Assistant Container. Автономна контейнерна установка, яка не має магазину доповнень. Перевага контейнерного способі встановлення: ними легко керувати (наприклад, через portainer). Займає друге місце по кількістю встановлень.
Home Assistant Supervised. Має усі функції HA OS, встановлюється у Linux, над яким у вас є практично повний контроль. Єдина відмінність: немає автоматичного оновлення пакетів. Вам потрібно мати знання Linux та Docker.
Home Assistant Core — це програма, яку можна запускати в різних операційних системах. Home Assistant Core доступний як образ Docker. В ньому відсутня можливість встановлення docker контейнерів, доповнень, створення резервних копій.
Керування операційною системою — це автоматичне оновлення пакетів. Проте встановлювати ці пакети потрібно вручну.
Альтернативним варіантом є встановлення HA OS у віртуальну машину. Такий спосіб має усі функції HA OS та, крім резервних копій, дозволяє робити знімки системи (snapshot).
Як встановлювати
Raspberry Pi Imager
- Завантажте та відкрийте Raspberry Pi Imager.
- Оберіть Operations system >> Other specific purpose OS >> Home Assistant.
- Підключіть та оберіть носій.
- Натисніть write.
balenaEtcher
- Завантажте та відкрийте balenaEtcher.
- Оберіть «Flash from URL».
- Вставте URL.
- Підключіть та оберіть носій.
- Натисніть Flash.
Вибір протоколу
Home Assistant підтримує велику кількість протоколів, проте два найпопулярніших — Zigbee та Z-wave.
Zigbee Home Assistant (ZHA) — це вбудований компонент Home Assistant з простим налаштуванням. Має меншу кількість підтримуваних пристроїв (~800), проте охоплює практично усі популярні моделі. Для його налаштування необхідно прошити (або купити прошитий) один з підтримуваних Zigbee адаптерів.
Z-Wave JS — це відповідний стандартам, керований спільнотою драйвер пристрою Z-Wave з відкритим вихідним кодом. Щоб запустити Z-Wave JS, вам знадобиться підтримуваний адаптер Z-Wave Для України підійдуть пристрої на частоті 868,42 МГц.
Zigbee2MQTT — це програмне забезпечення координатора (синоніми шлюз, хаб). Zigbee мережі, що дозволяє локально керувати пристроями різних виробників. Воно поєднує мережу Zigbee з MQTT-протоколом. Має якісну підтримку великої кількості (2245) пристроїв та відрізняється надійністю. Для його роботи необхідно мати один з підтримуваних шлюзів та прошити його (можна купити прошитий). Найдешевшим варіантом (~250 грн) є використання USB адаптера CC2531. Проте він вважається застарілим, деякі значення обладнання можуть відображатись некоректно. Більш сучасним і популярним варіантом (~550 грн) є використання CC2652P, наприклад smartlight, або sonoff.
1.Перейдіть в налаштування >> Додатки >> Магазин доповнень >> Знайдіть та встановіть Mosquito broker.
2. Перейдіть на сторінку додатку Mosquito broker >> вкладку Configuration.
У Параметрах в пункті logins впишіть:
username: mqtt
password: mqtt
В конфігураціях Home Assistant є два види редагування параметрів: користувацький та YAML. Змінити режим можна, натиснувши три крапки зверху.
В режимі YAML конфігурація виглядає так:
logins: - username: mqtt password: mqtt require_certificate: false certfile: fullchain.pem keyfile: privkey.pem customize: active: false folder: mosquitto anonymous: false
3. Збережіть налаштування та запустіть додаток.
4. Перейдіть в налаштування >> Пристрої та сервіси >> Додати інтеграцію >> Встановіть інтеграцію MQTT.
5. З’явиться вікно підключення до MQTT брокера:
- в полі брокер введіть core-mosquitto;
- в полі імені користувача mqtt;
- в полі пароль mqtt;
- виділіть пункт автододавання пристроїв та збережіть.
6. Додайте репозиторій Zigbee2mqtt: Перейдіть в налаштування >> Додатки >> Магазин доповнень >> Натисніть меню зверху справа >> Репозиторії
У пустій стрічці знизу вставте адресу https://github.com/Zigbee2mqtt/hassio-Zigbee2mqtt
Натисніть додати:
7. В магазині доповнень з’являться два нових додатки Zigbee2MQTT Edge — це розробницька гілка додатку, у ній раніше з’являється підтримка нових пристроїв. Натисніть та встановіть Zigbee2mqtt. Якщо додатки не з’явилися, необхідно очистити кеш або зайти в Home Assistant з іншого браузера.
8. Перейдіть на сторінку додатку Zigbee2mqtt >> вкладку Configuration.
У параметрах запишіть наступні дані:
base_topic: zigbee2mqtt
server: mqtt://core-mosquitto
user: mqtt
password: mqtt
В режимі YAML це виглядає так:
data_path: /config/zigbee2mqtt socat: enabled: false master: pty,raw,echo=0,link=/tmp/ttyZ2M,mode=777 slave: tcp-listen:8485,keepalive,nodelay,reuseaddr,keepidle=1,keepintvl=1,keepcnt=5 options: '-d -d' log: false mqtt: base_topic: zigbee2mqtt server: <a href="mqtt://core-mosquitto">mqtt://core-mosquitto</a> user: mqtt password: mqtt serial: port: /dev/ttyACM0
9. Запустіть додаток.
Як знайти порт
Перейдіть в налаштування >> Система >> Устаткування >> Верхнє праве меню >> Все обладнання.
Найчастіше ваш порт буде tty ACM0. Також ви можете скористатись пошуком і вписати назву вендора.
Якщо у вас мережевий координатор з ethernet портом на кшталт SLZB-05, в рядку «Порт» потрібно вказати IP та порт, наприклад:
port: tcp://192.168.0.237:6638
Перевстановлення Zigbee2MQTT
Якщо вам потрібно змінити версію Zigbee2mqtt, але ви не хочете втратити наявну конфігурацію та налаштовувати пристрої знову:
1. Створіть резервну копію Home Assistant.
2.За допомогою доповнення File editor у папці config знайдіть папку zigbee2mqtt та завантажте усі файли.
3. Зупиніть старий додаток.
4. Встановіть потрібну версію додатку.
5. Пропишіть файли конфігурації в новому додатку.
6. Замініть вміст файлів папки Zigbee2mqtt.
7. Перезавантажте Home Assistant.
Перше налаштування
Після встановлення ОС потрібно підключити ПК по кабелю (рекомендований варіант), або по wifi до мережі. Після того в браузері комп’ютера, підключеного до тієї ж мережі, введіть: http://homeassistant.local:8123
Для пошуку виданої адреси використайте додаток Network Scanner, або зайдіть адресу в адмін панелі роутера. До прикладу: 192.168.1.106:8123
Коли відкриєте вебінтерфейс, Home Assistant попросить вас почекати близько 20 хвилин та дозволить створити логін та пароль користувача.
Корисні поради
На роутері прив’яжіть МАС-комп’ютер до виділеного IP. Це дозволить мати постійну адресу home assistant.
Рознесіть Zigbee адаптер та роутер подалі один від одного (можна використати USB-подовжувач). Zigbee працює в тому ж діапазоні, що і wi-fi, тож така дія допоможе уникнути проблем з інтернет-підключенням.
Якщо якийсь функціонал в Home Assistant не працює належним чином, спробуйте перезавантажити.
Інформаційна панель (dashboard) Lovelace
Перше, що ви бачите після налаштування, це інформаційна панель Lovelace (названа на честь Ади Лавлейс). Вона складається з карток та може мати вкладки.
Вигляд Home Assistant автора
Картки
Існує приблизно 30 типів карток під різні потреби. Наприклад, кнопка, панель сигналізації, шкала, графік, освітлення та інші. Також HA надає можливість створювати або використовувати чужі користувацькі картки. Наприклад, mini-graph-card, mushroom та багато інших Усі вони доступні в HACS.
Теми
Дозволяють змінити кольорове оформлення, шрифти та колір іконок HA. Їх можна встановити вручну, але набагато зручніше це робити через HACS. Наприклад, Noctis, Dark teal. Теми можна знайти в пункті профіль бічної панелі. Якщо у вас недоступний список вибору тем, додайте до configuration.yaml
frontend: themes: !include_dir_merge_named themes
Піктограми
Home Assistant використовує піктограми з колекції mdi (material design icons). При редагуванні карток Lovelace, HA може пропонувати вам змінити піктограму. Вам потрібно лише вказати її псевдонім з ресурсу mdi. Існує декілька наборів користувацьких піктограм. Їх можна встановити за допомогою HACS.
Бічна панель
Відіграє роль панелі швидкого доступу в HA. Ви можете додавати встановлені додатки в бічну панель, а також видаляти існуючі розділи в профілі користувача.
Також варто додати, що існує багато альтернативних чудових оформлень інформаційної панелі.
Мобільний застосунок
Home Assistant має офіційні мобільні додатки для Android та IOS. Як на мене, найбільша перевага мобільного застосунку це можливість створення та отримування сповіщень про події в домі. Для користувачів IOS є можливість створення швидких команд (shortcuts) та створення нових голосових команд на їх основі. Володарі розумних годинників можуть керувати домом за допомогою Apple Watch та Wear OS.
Додатки та інтеграції
Додатки (доповнення) — це додаткове ПЗ, що поширюється як налаштовані докер-контейнери. Home Assistant має офіційні додатки, що підтримуються його командою (official add-ons), а також додатки спільноти (community add-ons), які за замовчуванням також присутні в магазині.
Додатки можна встановити через Конфігурація >> Додатки >> Магазин доповнень.
Ті додатки, що не входять до однієї з категорій, розповсюджуються окремо у вигляді репозиторіїв. Щоб встановити такі додатки, необхідно скористатись меню магазину (зверху справа).
Інтеграції, на перший погляд, схожі на додатки. Їх робота — взаємодія з фізичними пристроями та підключення додатків до Home Assistant.
Інтеграції бувають офіційними або користувацькими (неофіційними). Якщо інтеграції офіційні, їх можливо встановити через Конфігурація > Пристрої та сервіси >> додати інтеграцію.
Якщо інтеграції користувацькі, вони встановлюються з репозиторію GitHub або через HACS, який є зручною «вітриною» (графічним інтерфейсом) для користувацьких інтеграцій, карток Lovelace тощо.
Інтеграція з HomeKit
HomeKit — це програмна платформа та протокол від Apple, що дозволяє контролювати розумні прилади. Якщо ви хочете віддалено керувати через програму Дім, необхідно мати Apple TV
Існує три способи інтеграції з HomeKit:
- Пристрої, що підтримують HomeKit (таких небагато).
- Пристрої, що інтегруються з хабом, що має позначку «Work with HomeKit».
- Програмна інтеграція в режимі мосту.
В Home Assistant є дві інтеграції — HomeKit та Home Kit Controller.
HomeKit Controller інтеграція дозволяє додавати сертифіковані пристрої, що мають позначку «Work with HomeKit».
HomeKit інтеграція дозволяє додавати усі, навіть несертифіковані пристрої, що присутні в Home Assistant, в програму Дім та керувати ними через голосового асистента Siri. Для цього вона створює віртуальний міст, що служить чимось на кшталт шлюза для програми Дім.
Важливо зазначити, що без використання домашнього хаба, ви не зможете дистанційно керувати пристроями з програми Дім, лише коли знаходитесь вдома.
Щоб додати пристрої Home Assistant до HomeKit, необхідно перейти до меню >> Конфігурація >> Пристрої та сервіси >> Додати інтеграцію >> обрати інтеграцію HomeKit.
Після інтеграція попросить вас обрати домени обладнання (категорії, простіше кажучи). Якщо ви не знаєте, за що вони не відповідають, залиште так, їх можна налаштувати пізніше. До прикладу, датчики руху, температури, вологості — належать до домену Sensor.
Після того, як ви натиснете кнопку «Надіслати», ви отримаєте повідомлення, про те, що код спарювання з HomeKit буде доступний в сповіщеннях. Натисніть кнопку «Надіслати» і після успішної конфігурації Home Assistant попросить вас обрати кімнату віртуального мосту. Натисніть кнопку «Закінчити».
Відкрийте меню сповіщень Home Assistant та програму Дім на пристрої Apple. Натисніть кнопку «Додати прилад» та відскануйте код в меню сповіщень.
Дім сповістить вас, що пристрій, який ви додаєте, несертифікований. Натисніть «Все одно додати». Оберіть назву та кімнату пристроїв. Пристроїв може бути багато, непотрібні можна прибрати.
Щоб не показувати непотрібні пристрої, перейдіть до меню >> Конфігурація >> під іконкою інтеграції буде кнопка «Налаштувати, натисніть її.
Інтеграція має два режими включення:
- exclude (виключити) — після вибору доменів (категорій) пристроїв, ви можете виключити з них непотрібні вам сутності. Відмічені галочкою пристрої та сутності не будуть відображатись в програмі Дім.
- include (включити) — після вибору доменів (категорій) пристроїв, ви можете включити потрібні вам пристрої. Відмічені галочкою пристрої та сутності будуть присутні в програмі Дім. Усе, що не відмічено, відображатись не буде.
В результаті ви отримаєте ваші пристрої в програмі Дім від Apple та зможете керувати ними через Siri.
Інтеграція ESPHome
ESPHome — це інструмент для створення практично будь-яких пристроїв або датчиків на основі недорогих Wi-Fi плат ESP8266/ESP32 без знань програмування. Він зчитує файл конфігурації YAML і створює спеціальне мікропрограмне забезпечення, яке встановлює на ESP. Пристрої або датчики, додані в конфігурації ESPHome, автоматично відображаються в інтерфейсі Home Assistant. Приклади чудових проектів.
HACS. Home Assistant Community Store (HACS) — це магазин неофіційних інтеграцій. Він надає зручний графічний інтерфейс для завантаження додаткових користувацьких інтеграцій, тем та оформлень з Github.
1. Активуйте розширений режим. Для цього перейдіть в профіль Home Assistant.
2. Перейдіть в розділ конфігурація >> Додатки >> Магазин доповнень та встановіть Terminal & SSH.
3. Встановіть пароль або RSA ключ.
4. Відкрийте вебінтерфейс терміналу та введіть команду. Щоб вставити команду, натисніть в терміналі праву клавішу мишки двічі.
wget -q -O — get.hacs.xyz | bash -
5. Перезавантажте Home Assistant Конфігурація >> Система >> Пперезавантажити та очистіть кеш браузера (очищається там же, де і історія).
6. Перейдіть в розділ конфігурація >> Пристрої та сервіси >>Додати інтеграцію >> введіть HACS.
7. Встановіть усі прапорці у вікні, що з’явилось.
8. З’явиться вікно з кодом та проханням відкрити це.
9. Перейдіть за посиланням, введіть код та підтвердіть авторизацію HACS.
10. Перейдіть на сторінку Home Assistant та натисніть «Готово».
Часто після Встановлення HACS виникає помилка досягнення ліміту швидкості. Вона виникає через обмеження кількості запитів API на годину в стандартних акаунтах. Її можна вирішити, купивши платний акаунт, але я рекомендую зачекати, і проблема мине сама.
Configuration.yaml
YAML (YAML Ain’t Markup Language) — це легкозасвоювана, гнучка мова серіалізації даних, яка часто використовується для створення конфігураційних файлів. В Home Assistant усі налаштування зберігаються у файлі configuration.yaml. Це сторінка налаштувань, тільки параметри зберігаються в письмовому списку, а не за допомогою купи перемикачів і прапорців. При бажанні можна розбити файл на менші, вказавши посилання на нього. Важливим моментом, про який слід пам’ятати при редагуванні yaml, це табуляція. Вона необхідна, щоб уникнути синтаксичних помилок.
Досвідченні користувачі Home Assistant стверджують, що користування YAML краще та легше за використання користувацького інтерфейсу, і будуть по-своєму праві. В своїй роботі я об’єдную два підходи і користуюсь тим методом, який дозволяє швидше зробити потрібну мені дію.
Найпростіший варіант редагування configuration.yaml — використання офіційного доповнення File Editor. Воно має зручне навігаційне меню та перевірку синтаксису.
Автоматизації
Автоматизації — один з найпотужніших інструментів Home Assistant. Пристрої можуть мати декілька функцій. Наприклад, датчик температури може показувати вологість і навіть тиск. В HA кожна така функція представляється сутністю (entities).
Автоматизації дозволяють автоматично реагувати на події, що відбуваються: увімкнути підсвітку, коли темно, увімкнути вентиляцію, коли в ванній волого, надіслати сповіщення, коли двері відчинені, або увімнути кондиціонер, коли спекотно. Автоматизації знаходять у пункті Конфігурація >> Автоматизації та сцени. Є два способи створення автоматизацій в користувацькому режимі та в режимі YAML.
Тригер — це те, що запускає автоматизацію. Коли будь-який із тригерів спрацьовує, Home Assistant перевіряє умови, якщо такі є, і викликає дію. Існує різні типи тригерів. Наприклад тригер події, стану, часу геолокації та інші.
Умова — не обов’язкова частина автоматизації. Вона використовується для виконання дії лише за певної умови.
Дія — те, що виконується при запуску автоматизації.
Резервне копіювання
Резервне копіювання — важливий елемент підтримання постійної роботи будь-якої системи. Копії дозволяють відновити роботу після помилки користувача або збою. В Home Assistant знаходяться в пункті Конфігурація >> Система >> Резервні копії, та дозволяють створити повну або часткову резервну копію. Копія також автоматично створюється при оновленні операційної системи. Як на мене, є одним з найзручніших способів використання додатку Home Assistant Google Drive Backup. Він дозволяє налаштувати резервне копіювання в Google диск та локально за розкладом.
1. Перейдіть до меню Конфігурація >> Додатки >> Магазин доповнень >> натисніть три крапки зверху справа >> Репозиторії.
2. Додайте репозиторій.
3. Перезавантажте сторінку, прокрутіть униз, щоб знайти нове сховище, і натисніть нове доповнення під назвою «Home Assistant Google Drive Backup» (оновіть кеш або змініть браузер, якщо доповнення не з’являється).
4. Натисніть «Встановити» та зачекайте.
5. Натисніть «Старт» та відкрийте вебінтерфейс додатку.
6. Натисніть кнопку Authenticate with Google Drive.
7. Відкриється нова вкладка, яка дозволить вам обрати або увійти в обліковий запис Google.
8. Надайте дозволи додатку.
9. Натисніть кнопку Send Credential, вас перенаправить в вікно Home Assistant.
Якщо ви отримуєте таке повідомлення, це значить, що ви ніколи не заходили на свій диск. Перейдіть в диск, потім натисніть кнопку try syncing again.
В налаштуваннях додатку можна налаштувати, як часто створювати резервну копію, яку кількість зберігати локально, а яку — на диску, чи видаляти старі резервні копії та інше.
Віддалене керування
Home Assistant — це локальний сервер, який працює всередині однієї мережі. Тому якщо ви хочете отримати доступ до Home Assistant з будь-якого місця, потрібно створити віддалений доступ.
Home Assistant Cloud — це сервіс засновників Home Assistant компанії Nabu Casa. Він також це дає можливість простого підключення до функцій хмарних сервісів Amazon Alexa і Google Assistant. Сервіс платний та коштує 6,50$ на місяць або 65$ на рік.
DuckDNS — додаток та безкоштовна служба Dynamic DNS з підтримкою Let’s Encrypt. Для його роботи потрібно налаштовувати переадресацію портів (port forwarding) на вашому роутері.
Cloudflared — додаток та проксі тунель сервісу Cloudflare. Допомагає просто отримати віддалений доступ до Home Assistant без відкриття портів на рутері. Для його роботи необхідно мати доменне ім’я. Детальніше тут
VPN сервіси
Tailscale — простий у використанні VPN-додаток. Для його використання на телефоні потрібен мобільний додаток Tailscale.
ZeroTierOne — VPN-додаток. Для його використання на телефоні потрібен мобільний додатокZeroTierOne
TOR — VPN-додаток дозволяє отримати адресу в мережі TOR та підключатись до неї, використовуючи orbot або TOR браузер.
SSH тунель до віртуальної машини на хостингу. Це дозволить використовувати IP віртуальної машини як адресу сервера Home Assistant.
Реальна статична ip адреса купується у інтернет-провайдера та налаштовується переадресація портів на роутері.
Куточок читача
Чудовим початком є перегляд відео від Alex Kvazis. З зарубіжних блогерів мені дуже подобається відео Paul Hibbert, Everything Smart Home та JuanMTech. Україномовного контентенту про Home Assistant в мережі небагато (порадьте, якщо знаєте, в коментарях), проте можу порадити чат Розумний будинок.
Висновок
Home Assistant — дуже гнучка і налаштовувана система з потужними інструментами автоматизації. Недоліком є те, що вам потрібно трошки часу на вивчення цього «багатства». Також вам потрібно купити або десь взяти комп’ютер, де Home Assistant можна встановити.
Дякую за допомогу в написанні Камілі Павлівні Сторчак з Державного університету телекомунікацій.
Якщо вам сподобалась публікація — задонатьте на ЗСУ.
67 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів