Решено: По крайней мере сейчас во всяком случае, что буду пытаться строить домашнюю автоматизацию на базе Home Assistant. Заодно и подучу Python — но ставить буду конечно же на Ubuntu 18.04 Server, а уже с нее взаимодействовать с конечными устройствами.

Шаг №1: Подготавливаю систему к последующему использованию:

ekzorchik@srv-bionic:~$ hg clone --insecure https://ekzorchik@172.35.35.8/hg/dproject

ekzorchik@srv-bionic:~$ sudo ./dproject/default

ekzorchik@srv-bionic:~$ sudo reboot

ekzorchik@srv-bionic:~$ uname -a

Linux srv-bionic 4.15.0-72-generic #81-Ubuntu SMP Tue Nov 26 12:20:02 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

Шаг №2: Устанавливаю пакет Python в систему:

ekzorchik@srv-bionic:~$ sudo apt-get install -y python3 python3-venv python3-pip libudev-dev libpython3.8-dev python3.8-dev curl ipython3

Шаг №3: Подготавливаю виртуальное окружение Python под платформу Home Assistant:

ekzorchik@srv-bionic:~$ sudo useradd -rm homeassistant -G dialout

ekzorchik@srv-bionic:~$ sudo usermod -aG homeassistant ekzorchik

ekzorchik@srv-bionic:~$ sudo chmod -R 770 -R /home/homeassistant/

ekzorchik@srv-bionic:~$ sudo mkdir /srv/homeassistant

ekzorchik@srv-bionic:~$ sudo chown homeassistant:homeassistant /srv/homeassistant/

ekzorchik@srv-bionic:~$ sudo -u homeassistant -H -s

homeassistant@srv-bionic:/home/ekzorchik$ python3 -m venv /srv/homeassistant/

homeassistant@srv-bionic:/home/ekzorchik$ source /srv/homeassistant/bin/activate

(homeassistant) homeassistant@srv-bionic:/home/ekzorchik$

(homeassistant) homeassistant@srv-bionic:/home/ekzorchik$ cd /srv/homeassistant/

(homeassistant) homeassistant@srv-bionic:/srv/homeassistant$

(homeassistant) homeassistant@srv-bionic:/srv/homeassistant$ python3 -m pip install wheel

Collecting wheel

Downloading https://files.pythonhosted.org/packages/8c/23/848298cccf8e40f5bbb59009b32848a4c38f4e7f3364297ab3c3e2e2cd14/wheel-0.34.2-py2.py3-none-any.whl

Installing collected packages: wheel

Successfully installed wheel-0.34.2

(homeassistant) homeassistant@srv-bionic:/srv/homeassistant$

(homeassistant) homeassistant@srv-bionic:/srv/homeassistant$ pip3 install homeassistant

Шаг №4: Запускаю еще сессию подключения к текущей системе и настраиваю запуска сервиса homeassistant при перезагрузке системы:

ekzorchik@navy:~$ ssh -l ekzorchik 172.33.33.7

ekzorchik@srv-bionic:~$ sudo nano -w /etc/systemd/system/home-assistant@homeassistant.service

[Unit]

Description=Home Assistant

After=network-online.target

[Service]

Type=simple

User=%i

ExecStart=/srv/homeassistant/bin/hass -c "/home/homeassistant/.homeassistant"

[Install]

WantedBy=multi-user.target

ekzorchik@srv-bionic:~$ sudo systemctl --system daemon-reload

ekzorchik@srv-bionic:~$ sudo systemctl enable home-assistant@homeassistant

Created symlink /etc/systemd/system/multi-user.target.wants/home-assistant@homeassistant.service → /etc/systemd/system/home-assistant@homeassistant.service.

ekzorchik@srv-bionic:~$ sudo systemctl status home-assistant@homeassistant

● home-assistant@homeassistant.service - Home Assistant

Loaded: loaded (/etc/systemd/system/home-assistant@homeassistant.service; ena

Active: inactive (dead)

ekzorchik@srv-bionic:~$

Шаг №5: После перезагрузки проверяю, что сервис запустится:

ekzorchik@srv-bionic:~$ sudo reboot

ekzorchik@navy:~$ ssh -l ekzorchik 172.33.33.7

ekzorchik@srv-bionic:~$ sudo systemctl status home-assistant@homeassistant | head -n5

[sudo] password for ekzorchik:

● home-assistant@homeassistant.service - Home Assistant

Loaded: loaded (/etc/systemd/system/home-assistant@homeassistant.service; enabled; vendor preset: enabled)

Active: active (running) since Fri 2020-04-17 21:35:10 MSK; 27s ago

Main PID: 473 (hass)

Tasks: 9 (limit: 2336)

ekzorchik@srv-bionic:~$

Сервис успешно запустился вместе с загрузкой системы, значит настройки выше работают.

Шаг №6: А подключиться на Webинтерфейс:

ekzorchik@srv-bionic:~$ sudo netstat -tulpn  | grep :8123

tcp        0      0 0.0.0.0:8123            0.0.0.0:*               LISTEN      458/python3

http://IP&DNS:8123 (http://172.33.33.7:8123)

Создаю учетную запись в Home Assistant

Создаю учетную запись:

  • Имя: ekzorchik
  • Логин: ekzorchik
  • Пароль: 712mbddr@
  • Подтвердите пароль: 712mbddr@

и нажимаю "Создать учетную запись"

Именую свой Home Assistant:

Именую свой Home Assistant, как "Home Ekzorchik"

и нажимаю "Далее"

И нажимаю "Готово"

Нажимаю "Готово"

И вот запущенный Web-интерфейс

И вот запущенный Web-интерфейс Home Assistant

Вижу одно уведомление, перехожу на "Уведомления" и текст (это в левом нижнем углу)

Перехожу на "Уведомления"

Надпись "Необходимо обновить Python"

Шаг №7: В общем нужно обновить python, так говорится в уведомлении "Шаг №6"

ekzorchik@srv-bionic:~$ source /srv/homeassistant/bin/activate

(homeassistant) ekzorchik@srv-bionic:~$

(homeassistant) ekzorchik@srv-bionic:~$ dpkg -l | grep python3.6

(homeassistant) ekzorchik@srv-bionic:~$ dpkg -l | grep python3.8

оба пакета и зависимые пакеты стоят.

Что же нужно.

Перехожу на "Панель разработчика" - "О системе" и вижу, что у меня

Home Assistant 0.103.6

Путь к configuration.yaml: /home/homeassistant/.homeassistant

если перейти в "Лог", то вижу уведомление

Через "Панель разработчика" и "лог" то же самое сообщение об обновлении

Нажимаю "Показать весь журнал"

2020-04-17 21:36:28 WARNING (MainThread) [homeassistant.bootstrap] Python 3.6 support is deprecated and will be removed in the first release after December 15, 2019. Please upgrade Python to 3.7.0 or higher.

нажимаю "Обновить", но ничего не происходит, лишь надпись: "Нет сообщений о проблемах", прикольно.

Шаг №8: Проделываю обновление Python3 вручную:

(homeassistant) ekzorchik@srv-bionic:~$ deactivate

ekzorchik@srv-bionic:~$

ekzorchik@srv-bionic:~$ sudo apt-get install -y python3.8 python3.8-venv

ekzorchik@srv-bionic:~$ sudo systemctl stop home-assistant@homeassistant

ekzorchik@srv-bionic:~$ sudo mv /srv/homeassistant/ /srv/homeassistant.old

ekzorchik@srv-bionic:~$ sudo mkdir /srv/homeassistant

ekzorchik@srv-bionic:~$ sudo chown homeassistant:homeassistant /srv/homeassistant

ekzorchik@srv-bionic:~$ sudo -u homeassistant -H -s

homeassistant@srv-bionic:/home/ekzorchik$ python3 --version

Python 3.6.9

homeassistant@srv-bionic:/home/ekzorchik$ python3.8 -m venv /srv/homeassistant/

homeassistant@srv-bionic:/home/ekzorchik$ source /srv/homeassistant/bin/activate

(homeassistant) homeassistant@srv-bionic:/home/ekzorchik$

(homeassistant) homeassistant@srv-bionic:/home/ekzorchik$ python --version

Python 3.8.0

(homeassistant) homeassistant@srv-bionic:/home/ekzorchik$ cd /srv/homeassistant

(homeassistant) homeassistant@srv-bionic:/srv/homeassistant$ python -m pip install wheel

(homeassistant) homeassistant@srv-bionic:/srv/homeassistant$ pip3 -V

pip 9.0.1 from /srv/homeassistant/lib/python3.8/site-packages (python 3.8)

(homeassistant) homeassistant@srv-bionic:/srv/homeassistant$ pip3 install homeassistant

(homeassistant) homeassistant@srv-bionic:/srv/homeassistant$ deactivate

homeassistant@srv-bionic:/srv/homeassistant$ exit

exit

ekzorchik@srv-bionic:~$

ekzorchik@srv-bionic:~$ sudo systemctl restart home-assistant@homeassistant

ekzorchik@srv-bionic:~$ sudo systemctl status home-assistant@homeassistant | head -n5

● home-assistant@homeassistant.service - Home Assistant

Loaded: loaded (/etc/systemd/system/home-assistant@homeassistant.service; enabled; vendor preset: enabled)

Active: active (running) since Fri 2020-04-17 22:09:43 MSK; 13s ago

Main PID: 1042 (hass)

Tasks: 7 (limit: 2336)

ekzorchik@srv-bionic:~$

ekzorchik@srv-bionic:~$ sudo netstat -tulpn | grep :8123

вывод пуст, отправляю систему в перезагрузку

ekzorchik@srv-bionic:~$ sudo reboot

ekzorchik@navy:~$ ssh -l ekzorchik 172.33.33.7

ekzorchik@srv-bionic:~$ sudo netstat -tulpn | grep :8123

tcp        0      0 0.0.0.0:8123            0.0.0.0:*               LISTEN      484/python3.8

Теперь сервис работает.

Шаг №9: Проверяю, есть ли жалобы на версию и какая сейчас:

http://IP&DNS:8123 (http://172.33.33.7:8123) — авторизуюсь

Авторизуюсь. Проверяю, есть ли жалобы на версию и какая сейчас:

и нажимаю Next

Перехожу на "Панель разработчика" - "О системе" и вижу, что у меня

Home Assistant 0.108.6

Путь к configuration.yaml: /home/homeassistant/.homeassistant

arch   x86_64
dev    false
docker        false
hassio false
os_name     Linux
os_version  4.15.0-72-generic
python_version     3.8.0
timezone     UTC
version        0.108.6
virtualenv   true
Lovelace
dashboards  1
mode auto-gen
resources     0

Отлично, я обновился.

Так пока на этом всё, все выше работает применительно если установка велась на Ubuntu 18.04 Server. С уважением. автор блога Олло Александр aka ekzorchik.