Решено: По крайней мере сейчас во всяком случае, что буду пытаться строить домашнюю автоматизацию на базе 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)
Создаю учетную запись:
Имя: ekzorchik
Логин: ekzorchik
Пароль: 712mbddr@
Подтвердите пароль: 712mbddr@
и нажимаю "Создать учетную запись"
Именую свой Home Assistant:
и нажимаю "Далее"
Нажимаю "Готово"
И вот запущенный Web
-интерфейс
Вижу одно уведомление, перехожу на "Уведомления"
и текст (это в левом нижнем углу)
Шаг №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.