Установка Home Assistant CENTOS 8
Минимальные требования
В то время как Home Assistant отлично работает на Raspberry Pi для простых вещей, со временем он может начать становиться вялым и чувствовать себя недостаточно мощным, поскольку вы, как и все мы, становитесь зависимыми и продолжаете добавлять в него автоматизацию. Это особенно тяжело, когда вы начинаете добавлять автоматизацию, которая включает видео и увлекается другими.
Tаким образом, если вы любитель и планируете со временем развивать автоматизацию своего дома, Raspberry Pi недостаточно хорош. Маленький компьютер ( и, конечно же, это руководство ? ) — лучший вариант.
Но даже если у вас просто валяется старый компьютер в углу, это тоже будет фантастический выбор! Несмотря на указанные здесь официальные требования , для наиболее оптимальной работы (на мой взгляд) ваш компьютер Home Assistant должен иметь:
Память: 8 ГБ
ПРОЦЕССОР: >= Intel i5
СЕТЬ: >= 100 Мбит/с. Настоятельно рекомендуется, чтобы сервер, который вы выбрали для настройки Home Assistant, использовал физический сетевой кабель, а не WiFi.
МЕСТО: >= 32 ГБ Хранилище действительно важно, только если вы планируете установить домашнее наблюдение (в частности, видеокамеры). Если да, то вместо этого нацеливайте свое хранилище на 512 ГБ или больше. Это позволит вам записывать с ними и сохранять контент локально (если вы решите это сделать).
Вот разбивка того, где находится все хранилище ( относительно этого руководства ):
/etc/homeassistant/ 1ГБ Ваши файлы конфигурации малы ( менее 256 КБ ), однако Home Assistant поддерживает так называемый рекордер, который отслеживает себя в базе данных SQLite. Эта база данных SQLite имеет тенденцию расти со временем в размере (который вы можете контролировать). Здесь же находится ваш файл homeassistant.log, который также может увеличиваться в размере. Предоставляя себе (по крайней мере) 1 ГБ здесь, вы просто предоставляете достаточно места для будущего роста, который никогда не прервет вашу настройку с течением времени. Подробнее о содержимом этого каталога рассказывается в конце этого блога.
/opt/homeassistant/ 2ГБ Вся установка Home Assistant будет находиться здесь после того, как вы завершите это руководство. Фактическая установка (с большинством наворотов) составляет чуть менее 1 ГБ. 2 ГБ — это всего лишь рекомендуемый размер, потому что у вас будет много места для будущего роста.
/ 6ГБ Ваша корневая файловая система и все связанные с ней основные каталоги, такие как / boot , / tmp , / home , / usr , / var и т . Д.
6 ГБ более чем достаточно для размещения операционной системы Linux и всего, что ей необходимо, при этом у вас остается достаточно места для роста.
Загрузите последнюю копию CentOS 8 и вставьте ее на запасной USB-накопитель, который у вас есть, и / или запишите на DVD, чтобы установить на свой компьютер.
Настройка Base Home Assistant
На этом этапе предполагается, что вы настроили свой сервер или уже запустили его. Давайте настроим рабочую среду, в которой может работать Home Assistant. Перед запуском команд ниже в каждом разделе важно иметь права root или sudo .
Общая подготовка сервера
Самый безопасный способ запустить Home Assistant — использовать отдельного пользователя и разрешения. Следующее создаст для нас рабочую среду, на которой мы будем работать дальше:
# Again.. our basic layout will be:
# User: homeassistant
# HA Config: /etc/homeassistant
# HA Core: /opt/homeassistant
# Prepare our user:
sudo useradd -rm homeassistant \
--home-dir /opt/homeassistant
# The dialout group allows us to access our external USB
# devices such as the Aeotec Z-Stick Series 5 (which is
# what I use). We want to add our user to this group:
sudo usermod -aG dialout homeassistant
# Prepare our configuration directory
sudo mkdir /etc/homeassistant
# Adjust our permissions
sudo chown -R homeassistant:homeassistant \
/opt/homeassistant /etc/homeassistant
# Some of the packages later installed with pip3
# require that they are compiled in your environment
# (or it will not work) so the following is also
# required:
sudo dnf install -y gcc make gcc-c++ systemd-devel \
unzip tar
Установка Python 3.8
Нам нужно установить Python 3.8 в нашу среду CentOS, потому что это минимальное требование для работы Home Assistant. Итак, в основном у нас есть 2 варианта: взять самую стабильную версию v3.8 или взять версию, управляемую CentOS, которая иногда устарела. В любом случае, я объяснил оба ниже:
- Вариант 1. Поддерживаемая версия CentOS :
# Simply install the module sudo dnf module -y install python38 python38-devel # That's it... you're done :)
- Вариант 2: Последняя стабильная версия :
sudo dnf install -y bzip2-devel expat-devel gdbm-devel \ libuuid-devel libffi-devel\ ncurses-devel openssl-devel readline-devel \ sqlite-devel tk-devel xz-devel zlib-devel wget \ gcc make gcc-c++ tar # At the time this blog was written, the current # version was v3.8.5: VERSION=3.8.5 # # Acquire # wget https://www.python.org/ftp/python/${VERSION}/Python-${VERSION}.tgz tar -xf Python-${VERSION}.tgz # # Configure # cd Python-${VERSION} ./configure --enable-optimizations # # Build # # This step can take a while - so be patient! make -j 4 # # Install # # This is very safe and will not over-write # existing Python that ships with CentOS sudo make altinstall
Независимо от того, какой путь вы выбрали, вы можете протестировать версию, чтобы убедиться, что вы прошли успешно:
# Test the version out:
python3.8 -V
Установка домашнего помощника
Предполагая, что вы следовали приведенным выше разделам « Установка Python 3.8» и « Общая подготовка сервера» , теперь мы можем установить Home Assistant:
# First we switch to our new homeassistant user we created:
sudo -u homeassistant -H -s
# Optional SSH Keygen Setup
[ ! -f ~/.ssh/id_rsa.pub ] && \
ssh-keygen -f ~/.ssh/id_rsa -C "Home Assistant" -q -N ""
# Change to our home directory (if we're not there already)
cd /opt/homeassistant
# Prepare our virtual environment
python3 -m venv .
# It's always VERY important you activate your
# environment before you start running pip3
# commands
source bin/activate
# Perform our installation:
pip3 install homeassistant home-assistant-frontend \
homeassistant-pyozw colorlog flask-sqlalchemy
# Return back to our root user
exit
Наконец, мы должны создать файл запуска System D, чтобы упростить запуск / остановку нашего экземпляра Home Assistant:
# the following will drop us in a startup script we can use with our environment
sudo bash <<EOF
cat << _EOF > /usr/lib/systemd/system/home-assistant.service
[Unit]
Description=Home Assistant
After=network-online.target
[Service]
Type=simple
User=homeassistant
ExecStart=/opt/homeassistant/bin/hass -c "/etc/homeassistant"
WorkingDirectory=/opt/homeassistant
PrivateTmp=true
Restart=on-failure
[Install]
WantedBy=multi-user.target
_EOF
EOF
# Pick up our new configuration
sudo systemctl daemon-reload
# Make it so Home Assistant starts even after a
# server reboot
sudo systemctl enable home-assistant
# Let's start it up now
sudo systemctl start home-assistant
Последняя часть головоломки — открыть порт 8123 для нашей сети, чтобы мы могли получить доступ к нашему экземпляру Home Assistant.
Завершение установки
Теперь вы можете посетить свой новый сервер Home Assistant по адресу http://ip.to.your.server:8123 и начать настройку своей учетной записи в первый раз.
При первом доступе к странице вы сможете создать первого системного пользователя (также учетную запись администратора), с которым вы сможете создавать автоматизацию.
Обновления Home Assistant
Вы обнаружите, что Home Assistant быстро расширяется и всегда исправляет проблемы и добавляет больше интересных функций, с которыми вы можете играть. Обновить Home Assistant очень просто:
# Switch to our home assistant user:
sudo -u homeassistant -H -s
# Change to our home directory (if we're not there already)
cd /opt/homeassistant
# It's always VERY important you activate your
# environment before you start running pip3
# commands
. ./bin/activate
# Switch to our homeassistant user
pip3 install --upgrade homeassistant
# Return to our user with sudoer's permission
exit
# Restart Home Assistant
sudo systemctl restart home-assistant
Краткий обзор
На этом этапе у вас должны быть все настроены для работы с запущенной копией Home Assistant. Вот некоторые общие файлы и каталоги, которые начнут появляться в файловой системе вашего сервера в каталоге /etc/homeassistant/, о которых вы, возможно, захотите узнать:
homeassistant.log
Здесь будут отображаться все журналы, связанные с Home Assistant. Это отличное место для начала устранения неполадок, если у вас возникнут проблемы.
configuration.yaml
Это основная конфигурация, которая будет управлять всем вашим приложением Home Assistant с этого момента. Любые изменения в этом файле потребуют перезапуска Home Assistant, чтобы изменения вступили в силу.
home-assistant_v2.db
Это домашний помощник для записи. На панели инструментов Home Assistant вы можете нажать кнопку «История» на панели инструментов, чтобы просмотреть содержимое.
secretts.yaml
Это простой файл, который позволяет отображать пары ключ / значение. Идея состоит в том, чтобы сохранить все свои пароли и / или токены, которые в противном случае вы бы хотели скрыть от посторонних глаз. Этому файлу должны быть предоставлены очень строгие разрешения:
# protect this file if you intend to use it
chmod 600 /etc/homeassistant/secrets.yaml
Например, вы можете использовать Apprise для отправки вам уведомления по электронной почте. Чтобы отправить электронное письмо, Apprise нужна ваша личная информация. Например, в файле configuration.yaml вы можете сделать это:
# /etc/homeassistant/configuration.yaml
# ...
notify:
name: apprise
platform: apprise
url: !secret apprise_url
Затем в вашем файле secrets.yaml теперь вам нужна запись для нового созданного вами ключевого слова с именем apprise_url . Ваша запись в файле secrets.yaml может выглядеть так:
# /etc/homeassistant/secrets.yaml
# Define your Apprise details in a secure location:
apprise_url: mailto://myuser:mypassword@gmail.com
Более подробную информацию о том, как работают секреты, можно найти здесь, в документации Home Assistant. Кроме того, посетите вики-страницу Apprise, чтобы увидеть все различные службы, с которыми вы можете уведомлять.
automations.yaml
Здесь вы можете начать создавать свою собственную автоматизацию Home Assistant после того, как добавите несколько интеграций в Home Assistant.
Например, вы могли бы настроить автоматизацию, отправив нам электронное письмо с помощью Apprise на закате:
# /etc/homeassistant/automations.yaml
#
# Utilize Apprise to send a notification
#
alias: "[Interactive] - Sunset Apprise Notice"
trigger:
platform: sun
event: sunset
action:
service: notify.apprise
dаta:
title: "Good evening"
message: "This sun is setting."
Резервное копирование конфигурации
Никакая установка не будет завершена без регулярного резервного копирования. Ниже приводится всего лишь базовая настройка резервного копирования конфигурации, которую вы можете использовать для начала:
# For Backups (run these commands as the homeassistant user):
sudo mkdir -p /opt/homeassistant/backups
sudo chown homeassistant.homeassistant /opt/homeassistant/backups
# This is a simple script to get you started:
sudo bash <<EOF
cat << _EOF > /opt/homeassistant/bin/backup.sh
#!/bin/sh
# Create a backup of Home Assistant
TARGET=/opt/homeassistant/backups
SOURCE=/etc/homeassistant
[ ! -d "\$TARGET" ] && /usr/bin/mkdir -p "\$TARGET"
[ ! -d "\$TARGET" ] && exit 1
tar cfz "\$TARGET/\$(date +'%Y.%m.%d')-config.tgz" -C \$SOURCE .
RET=\$?
# Tidy; Keep X days worth
find -L \$TARGET/ -mindepth 1 -maxdepth 1 -name "*.config.tgz" -mtime +120 -delete
exit \$RET
_EOF
EOF
# Permissions to be executable
sudo chmod 775 /opt/homeassistant/bin/backup.sh
# Prepare ourselves a cron job that will run our backup every week
sudo bash <<EOF
cat << _EOF > /etc/cron.d/homeassistant_backup
0 0 * * 0 homeassistant /opt/homeassistant/bin/backup.sh &>/dev/null
_EOF
EOF