2. Install HA Supervised in Docker Container - vit-um/hass GitHub Wiki

Підготовка та запис образу Debian 11 на SD-card

  1. Для запису на microSD образу операційної системи знадобиться програма Raspberry Pi Imager.
  2. Завантажуємо останню версію для Windows. На час написання цієї інструкції це версія 1.7.5 з вже потрібним нам для встановлення образом останньої версії 64х RaspiOS.
  3. Встановлюємо на комп'ютер Raspberry Pi Imager та запускаємо програму:
    Raspberry Pi Imager
  4. Натискаємо кнопку CHOOSE OS, та обираємо варіант установки повної версії з графічною оболонкою Raspberry Pi OS (64-bit):
    Raspberry Pi
  5. Обираємо SD-card або диск на який буде записано образ, у нашому випадку це диск G розміром 512Gb.
    Raspberry Pi
  6. Натискаємо шестерню або поєднання Ctrl-Shift-X для відкриття меню "Розширені налаштування в Raspberry Pi Imager" на обираємо наступні налаштування?
  • щоб наступного разу не довелось робити те саме, обираємо to always use
  • ставимо check box Enable ssh, та трохи нижче вказуємо логін (за умовчуванням pi) та пароль для входу в ОС:
  • Set locale settings: Обираємо потрібну, ту де Ви знаходитесь.
    Options
  1. Натискаємо WRITE та чекаємо доки завершиться процес запису образу та перевірка коректності його запису на SD-карту або диск:
    WRITE
  2. Доки триває процес запису завантажуємо та встановимо PuTTY, зручний SSH-клієнт для подальшого налаштування Raspberry Pi.
  3. Про вдале завершення процесу створення завантажувального носія свідчить наступне вікно Raspberry Pi Imager:
    Done

Підключення до мережі та перший логін в систему

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

Оновлення та налаштування OC Raspberry PI

  1. Якщо ви виконали усі інструкції з встановлення OS, то наразі маєте бачити наступний екран після вводу паролю:
    Login
  2. Перед встановленням програмного забезпечення вам слід оновити список пакетів за допомогою:
    sudo apt update && sudo apt upgrade -y
    update
  3. Оновимо прошивку самого пристрою командою:
    sudo rpi-update
    Оновлення прошивки не потрібно робити часто без зайвої потреби!
    pri-update
  4. Перезавантажуємо систему:
    sudo reboot
  5. Встановлюємо необхідні пакети:
    sudo apt-get install -y jq wget curl udisks2 apparmor-utils libglib2.0-bin network-manager dbus systemd-journal-remote
    packages

Налаштування системи та інтерфейсу Wi-Fi

  1. Налаштуємо локалізацію системи, додавши українську мову:
    sudo raspi-config
  2. Комбінація 5 -> L1 або Localisation Options / I1 Change Locale та обираємо uk_UA.UTF-8 UTF-8
    nmtui
  3. Перезавантажуємо систему:
    sudo reboot
  4. Запускаємо Network Manager Text User Interface за допомогою команди:
    sudo systemctl start NetworkManager
    sudo systemctl enable NetworkManager
    nmtui
  5. Запускаємо команду налаштування мережевих інтерфейсів:
    sudo nmtui
  6. Обираємо в меню пункт Задіяти з'єднання, в ньому обираємо вашу Wi-Fi мережу та вводимо до неї пароль:
    nmtui
  7. Повертаємось в головне меню та перевіряємо чи вірно встановлена назва вузла системи:
    nmtui
  8. Зберігаємо, натиснувши Ok та перезавантажуємо систему:
    sudo reboot
  9. Щоб уникнути попередження в процесі встановлення Home Assisistant Supervised виконуємо наступну команду:
    sudo touch /etc/default/grub && echo "systemd.unified_cgroup_hierarchy=true" | sudo tee -a /etc/default/grub
  10. В разі якщо запуск системи планується робити з CD-card, то замінюємо параметр в команді на:
    systemd.unified_cgroup_hierarchy=false

Керування обертами вентилятора

  1. Встановлюємо скрипт:
    curl https://download.argon40.com/argon1.sh | bash
    cooler
  2. В командному рядку налаштування можна зробити наступною командою:
    argonone-config
  3. Встановлюємо наступні налаштування:
    cooler

Виправлення помилки Apparmor

  1. Помилка в HA буде виглядати наступним чином:
    apparmor
    а в журналі Ви знайдете отакий запис про помилку:
    WARNING (MainThread) [supervisor.core] System running in a unsupported environment!
  2. Відкрити для редагування файл cmdline.txt:
    sudo nano /boot/cmdline.txt
  3. Додати в кінець рядка 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
  4. Виходимо з редактора комбінацією клавіш Ctrl X, обов'язково зберігаємо зміни натиснувши послідовно Y та Enter
  5. Замість пунктів 2-4 можна скористатися командою:
    sudo sed -i -e "1 s/$/ systemd.unified_cgroup_hierarchy=false lsm=apparmor/" /boot/cmdline.txt
  6. Перезавантажуємо систему:
    sudo reboot

Встановлення Docker

  1. В командному рядку запускаємо:
    sudo curl -fsSL get.docker.com | sh
  2. Результат успішного виконання команди:
    docker
  3. Додаємо в групу docker користувача наступними командами:
    sudo gpasswd -a $USER docker
    newgrp docker
    docker
  4. Перевірити наявність користувача можемо командами: cat /etc/group
    id -Gn
    groups pi
    less /etc/passwd

Встановлення OS-Agent

  1. Виконуючи вказівки інструкції визначаємо останню версію OS-Agent:
    os-agent
  2. Качаємо у домашній каталог командою:
    wget https://github.com/home-assistant/os-agent/releases/download/1.5.1/os-agent_1.5.1_linux_aarch64.deb
  3. Встановлюємо:
    sudo dpkg -i os-agent_1.5.1_linux_aarch64.deb
    os-agent
  4. Видаляємо скачаний файл з домашнього каталогу:
    rm os-agent_1.5.1_linux_aarch64.deb

Встановлення Home Assisistant Supervised

  1. Скачуємо дистрибутив командою:
    wget https://github.com/home-assistant/supervised-installer/releases/latest/download/homeassistant-supervised.deb
  2. Встановлюємо:
    sudo dpkg -i homeassistant-supervised.deb
  3. Обираємо апаратну платформу:
    hass
  4. Якщо пакет встановлено без помилок на екрані маємо побачити щось на зразок цього:
    hass
  5. Видаляємо файл дистрибутиву:
    rm homeassistant-supervised.deb
  6. Переходимо в браузері за посиланням:
    http://192.168.1.100:8123
  7. Якщо у Вас є збережена копія конфігурації вашого домашнього помічника, переходьте за посиланням "Восстановить систему из резервной копии" та виконуйте подальші інструкції системи:
    hass
  8. Якщо це Ваша перша установка, переходимо до наступного розділу Wiki.

Виправляємо помилки в логах:

  1. [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:

Встановлення пріоритетів маршруту для інтерфейсів (за бажанням)

  1. Для перевірки виконаної роботи заходимо в систему через щойно налаштований бездротовий інтерфейс:
    [email protected]:22
  2. Перевіряємо пріоритет маршрутизації командою route:
    route
  3. Наша мета зробити Ethernet більш пріоритетним, бо дротове з'єднання вважається надійнішим за Wi-Fi. Чим менший номер метрики, тим більш пріоритетний маршрут. Наче все добре, але після встановлення додатків (Addons) в контейнери Docker-а з'явиться багато нових маршрутів та їх пріоритети можуть стати вищими за наші фізичні інтерфейси, тому встановлюємо метрику wlan0 наступною за eth0 - 203:
    sudo nmtui
  4. Послідовно: Edit connection -> Xiaomi -> Enter -> IPv4 CONFIGURATION -> Routing -> Edit:
    nmtui
  5. Зберігаємо, натиснувши Ok та перезавантажуємо систему:
    sudo reboot
  6. Перевіряємо налаштування командою route:
    route
    Усе гаразд. Другий за значенням маршрут за умовчуванням піде через інтерфейс wlan0.
  7. Мережеві налаштування кожного з наявних в пристрої інтерфейсів можна прочитати командою:
    ifconfig

Збільшуємо розмір swap файлу (за бажанням)

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

Вимикання графічної оболонки (за бажанням)

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

До змісту