среда, 26 марта 2025 г.

Arch Linux: Установка Home Assistant в виртуальном окружении Python

Для установки Home Assistant проделайте следующие шаги:

1. Обновите систему и зависимости:
sudo pacman -Syu

2. Установите зависимости и компоненты:
sudo pacman -S python python-pip python-virtualenv base-devel libffi openssl

3. Установите пакет FFmpeg:
sudo pacman -S ffmpeg

При установке будет выбор между двумя вариантами: "jack2" и "pipewire-jack", в большинстве случаев рекомендовано - "pipewire-jack". После установки проверьте версию коммандой "ffmpeg -version".

4. Создайте пользователя и каталоги:
sudo useradd -rm homeassistant -d /srv/homeassistant -s /bin/bash
sudo mkdir -p /srv/homeassistant
sudo chown -R homeassistant:homeassistant /srv/homeassistant


5. Настройте виртуальное окружение:
sudo su - homeassistant # Переключение на пользователя
cd /srv/homeassistant
python -m venv venv # Создание окружения
source venv/bin/activate # Активация окружения

6. Установите Home Assistant через pip:
pip install wheel zlib-ng isal
pip install homeassistant


7. Сконфигурируйте каталог:
mkdir -p /srv/homeassistant/.homeassistant
exit
# Выход из пользователя homeassistant
sudo chown -R homeassistant:homeassistant /srv/homeassistant/.homeassistant

8. Создайте systemd-сервис:
sudo nano /etc/systemd/system/homeassistant.service

Добавьте в файл:

[Unit]
Description=Home Assistant
After=network-online.target

[Service]
Type=simple
User=homeassistant
WorkingDirectory=/srv/homeassistant/.homeassistant
ExecStart=/srv/homeassistant/venv/bin/hass -c "/srv/homeassistant/.homeassistant"

[Install]
WantedBy=multi-user.target


9. Запустите сервис:
sudo systemctl daemon-reload
sudo systemctl enable --now homeassistant


10. Проверка установки:
Откройте в браузере http://server_name_or_ip:8123. Если страница не загружается спустя несколько минут после старта сервиса - выясните, открыты ли порты, и проверьте логи:
sudo ss -tlnp | grep ':8123'
journalctl -u homeassistant -f



Процедура бэкапа:

1. Остановите Home Assistant:
sudo systemctl stop homeassistant

2. Зархивируйте конфигурацию:
sudo tar -czvf bkp_$(date +%Y-%m-%d).tar.gz -C /srv/homeassistant/.homeassistant .

3. Скопируйте архив в надежное хранилище (например, облако или внешний диск).

4. Запустите сервис:
sudo systemctl start homeassistant

5. Добавьте задание в cron (запуск раз в неделю):
0 3 * * 0 sudo systemctl stop homeassistant && tar -czvf /backup/ha_backup_$(date +\%Y-\%m-\%d).tar.gz -C /srv/homeassistant/.homeassistant . && sudo systemctl start homeassistant


Обновление версии Home Assistant:

1. Выполните бэкап (см. выше).

2. Остановите сервис:
sudo systemctl stop homeassistant

3. Активируйте виртуальное окружение:
sudo su - homeassistant
source /srv/homeassistant/venv/bin/activate


4. Обновите Home Assistant:
pip install --upgrade homeassistant
exit
# Выход из пользователя homeassistant

5. Запустите сервис:
sudo systemctl start homeassistant

6. Проверьте логи на наличие ошибок:
journalctl -u homeassistant -f


Примечания:

Для отката версии используйте бэкап и команду "pip install homeassistant==x.x.x" (где "x.x.x" — нужная версия).
Если после обновления Arch Linux изменилась версия Python, пересоздайте виртуальное окружение следующим образом:

1. Остановите сервис Home Assistant:
sudo systemctl stop homeassistant

2. Убедитесь, что версия Python изменилась:
python --version

3. Создайте резервную копию конфигурации:
sudo tar -czvf bkp_$(date +%Y-%m-%d).tar.gz -C /srv/homeassistant/.homeassistant .

4. Удалите старое виртуальное окружение:
sudo su - homeassistant
cd /srv/homeassistant
rm -rf venv


5. Создайте новое виртуальное окружение:
python -m venv venv # Используется обновленная версия Python
source venv/bin/activate

6. Переустановите Home Assistant:
pip install wheel zlib-ng isal homeassistant
exit
# Выход из пользователя homeassistant

7. Запустите сервис:
sudo systemctl start homeassistant

Комментариев нет:

Отправить комментарий