2. Install HA Supervised in Docker Container - vit-um/hass GitHub Wiki
Підготовка та запис образу Debian 11 на SD-card
- Для запису на microSD образу операційної системи знадобиться програма Raspberry Pi Imager.
- Завантажуємо останню версію для Windows. На час написання цієї інструкції це версія 1.7.5 з вже потрібним нам для встановлення образом останньої версії 64х RaspiOS.
- Встановлюємо на комп'ютер
Raspberry Pi Imagerта запускаємо програму:

- Натискаємо кнопку
CHOOSE OS, та обираємо варіант установки повної версії з графічною оболонкою Raspberry Pi OS (64-bit):

- Обираємо SD-card або диск на який буде записано образ, у нашому випадку це диск
Gрозміром 512Gb.

- Натискаємо шестерню або поєднання
Ctrl-Shift-Xдля відкриття меню "Розширені налаштування в Raspberry Pi Imager" на обираємо наступні налаштування?
- щоб наступного разу не довелось робити те саме, обираємо
to always use - ставимо check box
Enable ssh, та трохи нижче вказуємо логін (за умовчуваннямpi) та пароль для входу в ОС: - Set locale settings: Обираємо потрібну, ту де Ви знаходитесь.

- Натискаємо
WRITEта чекаємо доки завершиться процес запису образу та перевірка коректності його запису на SD-карту або диск:

- Доки триває процес запису завантажуємо та встановимо PuTTY, зручний SSH-клієнт для подальшого налаштування Raspberry Pi.
- Про вдале завершення процесу створення завантажувального носія свідчить наступне вікно Raspberry Pi Imager:

Підключення до мережі та перший логін в систему
- Видаляємо карту з кардридера та встановлюємо її у слот Raspberry Pi.
- Під'єднаємо кабелем Ethernet наш міні-комп'ютер, подаємо живлення та чекаємо на завантаження.
- Заходимо на маршрутизатор, в моєму випадку це Wi-Fi точка доступу Asus RT, знаходимо серед під'єднаних пристроїв Raspberry Pi, тицяємо мишкою та попадаємо в наступне меню:

- Далі згідно нумерації позначеною красним на малюнку вище, послідовно:
- Змінюємо MAC на назву для зручності ідентифікації,
- Обираємо вільну адресу з дозволеного пула адресів, щоб було легко запам'ятати,
- Пов'язуємо IP-адресу з MAC-адресою пристрою,
- Натискаємо кнопку "Застосувати" та перезавантажуємо маршрутизатор та міні-комп'ютер.
- Далі запускаємо PuTTY, що була встановлена у п.10 цієї інструкції, та заходимо на Raspberry Pi за допомогою адреси, що призначена в п.15, логіну та паролю, що були обрані у п.8 цієї інструкції (потрібно вказати тип з'єднання SSH, порт 22, логін та IP-адресу вказати у форматі login@IP, пароль вводиться пізніше після входу в операційну систему:

Оновлення та налаштування OC Raspberry PI
- Якщо ви виконали усі інструкції з встановлення OS, то наразі маєте бачити наступний екран після вводу паролю:

- Перед встановленням програмного забезпечення вам слід оновити список пакетів за допомогою:
sudo apt update && sudo apt upgrade -y

- Оновимо прошивку самого пристрою командою:
sudo rpi-update
Оновлення прошивки не потрібно робити часто без зайвої потреби!

- Перезавантажуємо систему:
sudo reboot - Встановлюємо необхідні пакети:
sudo apt-get install -y jq wget curl udisks2 apparmor-utils libglib2.0-bin network-manager dbus systemd-journal-remote

Налаштування системи та інтерфейсу Wi-Fi
- Налаштуємо локалізацію системи, додавши українську мову:
sudo raspi-config - Комбінація
5 -> L1абоLocalisation Options / I1 Change Localeта обираємоuk_UA.UTF-8 UTF-8

- Перезавантажуємо систему:
sudo reboot - Запускаємо Network Manager Text User Interface за допомогою команди:
sudo systemctl start NetworkManager
sudo systemctl enable NetworkManager

- Запускаємо команду налаштування мережевих інтерфейсів:
sudo nmtui - Обираємо в меню пункт Задіяти з'єднання, в ньому обираємо вашу Wi-Fi мережу та вводимо до неї пароль:

- Повертаємось в головне меню та перевіряємо чи вірно встановлена назва вузла системи:

- Зберігаємо, натиснувши
Okта перезавантажуємо систему:
sudo reboot - Щоб уникнути попередження в процесі встановлення Home Assisistant Supervised виконуємо наступну команду:
sudo touch /etc/default/grub && echo "systemd.unified_cgroup_hierarchy=true" | sudo tee -a /etc/default/grub - В разі якщо запуск системи планується робити з CD-card, то замінюємо параметр в команді на:
systemd.unified_cgroup_hierarchy=false
Керування обертами вентилятора
- Встановлюємо скрипт:
curl https://download.argon40.com/argon1.sh | bash

- В командному рядку налаштування можна зробити наступною командою:
argonone-config - Встановлюємо наступні налаштування:

Виправлення помилки Apparmor
- Помилка в HA буде виглядати наступним чином:

а в журналі Ви знайдете отакий запис про помилку:
WARNING (MainThread) [supervisor.core] System running in a unsupported environment! - Відкрити для редагування файл cmdline.txt:
sudo nano /boot/cmdline.txt - Додати в кінець рядка
systemd.unified_cgroup_hierarchy=false lsm=apparmor, після чого єдиний присутній там рядок буде виглядати наступним чином:
console=serial0,115200 console=tty1 root=PARTUUID=a13fd6cb-02 rootfstype=ext4 fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles systemd.unified_cgroup_hierarchy=false lsm=apparmor - Виходимо з редактора комбінацією клавіш
Ctrl X, обов'язково зберігаємо зміни натиснувши послідовноYтаEnter - Замість пунктів 2-4 можна скористатися командою:
sudo sed -i -e "1 s/$/ systemd.unified_cgroup_hierarchy=false lsm=apparmor/" /boot/cmdline.txt - Перезавантажуємо систему:
sudo reboot
Встановлення Docker
- В командному рядку запускаємо:
sudo curl -fsSL get.docker.com | sh - Результат успішного виконання команди:

- Додаємо в групу docker користувача наступними командами:
sudo gpasswd -a $USER docker
newgrp docker

- Перевірити наявність користувача можемо командами:
cat /etc/group
id -Gn
groups pi
less /etc/passwd
Встановлення OS-Agent
- Виконуючи вказівки інструкції визначаємо останню версію OS-Agent:

- Качаємо у домашній каталог командою:
wget https://github.com/home-assistant/os-agent/releases/download/1.5.1/os-agent_1.5.1_linux_aarch64.deb - Встановлюємо:
sudo dpkg -i os-agent_1.5.1_linux_aarch64.deb

- Видаляємо скачаний файл з домашнього каталогу:
rm os-agent_1.5.1_linux_aarch64.deb
Встановлення Home Assisistant Supervised
- Скачуємо дистрибутив командою:
wget https://github.com/home-assistant/supervised-installer/releases/latest/download/homeassistant-supervised.deb - Встановлюємо:
sudo dpkg -i homeassistant-supervised.deb - Обираємо апаратну платформу:

- Якщо пакет встановлено без помилок на екрані маємо побачити щось на зразок цього:

- Видаляємо файл дистрибутиву:
rm homeassistant-supervised.deb - Переходимо в браузері за посиланням:
http://192.168.1.100:8123 - Якщо у Вас є збережена копія конфігурації вашого домашнього помічника, переходьте за посиланням "Восстановить систему из резервной копии" та виконуйте подальші інструкції системи:

- Якщо це Ваша перша установка, переходимо до наступного розділу Wiki.
Виправляємо помилки в логах:
- [supervisor.dbus.manager] Can't load dbus interface de.pengutronix.rauc: The name de.pengutronix.rauc was not provided by any .service files
- Оновлюємо список пакетів:
sudo apt-get update - Встановлюємо rauc-service deb package:
sudo apt-get install rauc-service - Перезавантажуємо систему:
sudo reboot
an't load dbus interface de.pengutronix.rauc:
Встановлення пріоритетів маршруту для інтерфейсів (за бажанням)
- Для перевірки виконаної роботи заходимо в систему через щойно налаштований бездротовий інтерфейс:
[email protected]:22 - Перевіряємо пріоритет маршрутизації командою
route:

- Наша мета зробити Ethernet більш пріоритетним, бо дротове з'єднання вважається надійнішим за Wi-Fi. Чим менший номер метрики, тим більш пріоритетний маршрут. Наче все добре, але після встановлення додатків (Addons) в контейнери Docker-а з'явиться багато нових маршрутів та їх пріоритети можуть стати вищими за наші фізичні інтерфейси, тому встановлюємо метрику
wlan0наступною заeth0- 203:
sudo nmtui - Послідовно: Edit connection -> Xiaomi -> Enter -> IPv4 CONFIGURATION -> Routing -> Edit:

- Зберігаємо, натиснувши
Okта перезавантажуємо систему:
sudo reboot - Перевіряємо налаштування командою
route:

Усе гаразд. Другий за значенням маршрут за умовчуванням піде через інтерфейсwlan0. - Мережеві налаштування кожного з наявних в пристрої інтерфейсів можна прочитати командою:
ifconfig
Збільшуємо розмір swap файлу (за бажанням)
- Перевіряємо розмір поточної swap пам'яті:
free -h

- За рекомендаціями для пристроїв, що мають переходити в режим гіпернації розмір swap-файлу має перевищувати об'єм фізичної пам'яті в два рази. Змінюємо розмір файлу підкачки у конфігурації:
sudo nano /etc/dphys-swapfile - Виходимо з редактора комбінацією клавіш
Ctrl X, обов'язково зберігаємо зміни натиснувши послідовноYтаEnter:

- Перезавантажуємо пристрій, та перевіряємо розмір swap:
sudo reboot
free -h
Вимикання графічної оболонки (за бажанням)
- Відключаємо графічну оболонку в systemd, без сенсорного екрану вона нам навряд чи буде у пригоді:
systemctl set-default multi-user.target - Щоб увімкнути графічну оболонку:
systemctl set-default graphical.target - Щоб перевірити поточний стан:
systemctl get-default
В разі відповіді:
graphical.target- графічна оболонка працює
multi-user.target- графічна оболонка вимкнута

- Перезавантажуємо пристрій:
sudo reboot