Если инфорация оказалась интересна и/или полезна, не побрезгуйте, оставьте комментарий ;)

среда, 18 мая 2022 г.

Установка и первая настройка Home Assistant

Возвращаюсь к проекту с самопальным умным домом. Предыдущие серии

  1. Прошивка Zigbee-сниффера
  2. Установка Ubuntu Server 20.04 на Banana PI M5
  3. Установка Mosquitto MQTT Broker
  4. Установка Zigbee2MQTT, интеграция с Mosquitto и с Home Assistant

Ставим Home Assistant. Честно скажу, что на Банану я его поставил сразу. Но не записал ходы установки. Поэтому сейчас повторил на виртуальной машине шаги статьи по установке Mosquitto и Zigbee2MQTT. И то же делаю для Home Assistant.

Важно. Разработчики рекомендуют ставить отдельную ОС. Если бы я делал это на машине x86, то просто поставил бы виртуалку с Home Assistant Operating System. Но так как у нас Бананка, то такой фокус не пройдет. Я выбрал вариант Core

Такой метод не позволяет ставить плагины через веб-интерфейс. Но, как минимум с Zigbee2MQTT интеграцию настроить можно, только требуется больше времени.

Итак, начинаем

Нужно поставить новую версию Python - в моем случае это 3.9. Если вы используете более свежую версию Ubuntu или другой дистрибутив, в котором версия Питона уже 3.9 или выше, то шаги с добавлением репозиторий можно пропуститьВ репозитории такой версии нет. Поэтому надо подключить дополнительный репозиторий. Для простоты подключения используем команду add-apt-repository из пакета software-properties-common
evgeniy@u1804-ha1:~$ sudo apt update
evgeniy@u1804-ha1:~$ sudo apt upgrade -y
evgeniy@u1804-ha1:~$ sudo apt install software-properties-common

Подключаем репозиторий, проверяем, что нужные пакеты доступны для установки
evgeniy@u1804-ha1:~$ sudo add-apt-repository ppa:deadsnakes/ppa
evgeniy@u1804-ha1:~$ sudo apt update
evgeniy@u1804-ha1:~$ apt list | grep python3.9

Инструкции, как поставить Питон в старую Ubuntu взял тут и тут.

Ставим нужные пакеты:
evgeniy@u1804-ha1:~$ sudo apt-get install -y python3.9 python3.9-dev python3.9-venv python3-pip libffi-dev libssl-dev libjpeg-dev zlib1g-dev autoconf build-essential libopenjp2-7 libtiff5 libturbojpeg0-dev tzdata

Дальше по инструкции с официального сайта. создаем пользователя и директорию для установки Home Assistant.
evgeniy@u1804-ha1:~$ sudo useradd -rm homeassistant
evgeniy@u1804-ha1:~$ sudo mkdir /srv/homeassistant
evgeniy@u1804-ha1:~$ sudo chown homeassistant:homeassistant /srv/homeassistant

Меняем пользователя
evgeniy@u1804-ha1:~$ sudo -u homeassistant -H -s

Теперь важный момент. Надо создать виртуальное окружение Питона с нужной версией интерпретатора:
homeassistant@u1804-ha1:/home/evgeniy$ cd /srv/homeassistant
homeassistant@u1804-ha1:/srv/homeassistant$ python3.9 -m venv .
homeassistant@u1804-ha1:/srv/homeassistant$ source bin/activate
После этого приглашение командной строки изменится, указывая на виртуальное окружение. Проверяем, что используется правильный интерпретатор:
(homeassistant) homeassistant@u1804-ha1:/srv/homeassistant$ python3 -V
Python 3.9.12

Инструкция по работе с виртальными окружениями на сайте Питона

Устанавливаем и обновляем пакеты установщика:

(homeassistant) homeassistant@u1804-ha1:/srv/homeassistant$ python3 -m pip install wheel
Collecting wheel
  Downloading https://files.pythonhosted.org/packages/27/d6/003e593296a85fd6ed616ed962795b2f87709c3eee2bca4f6d0fe55c6d00/wheel-0.37.1-py2.py3-none-any.whl
Installing collected packages: wheel
Successfully installed wheel-0.37.1
(homeassistant) homeassistant@u1804-ha1:/srv/homeassistant$ pip install -U pip

И, наконец, ставим Home Assistant

(homeassistant) homeassistant@u1804-ha1:/srv/homeassistant$ pip3 install homeassistant
Collecting homeassistant
  Downloading homeassistant-2022.5.4-py3-none-any.whl (17.7 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 17.7/17.7 MB 1.1 MB/s eta 0:00:00
Collecting bcrypt==3.1.7
  Using cached bcrypt-3.1.7-cp34-abi3-manylinux1_x86_64.whl (56 kB)
Collecting voluptuous-serialize==2.5.0
  Using cached voluptuous_serialize-2.5.0-py3-none-any.whl (6.8 kB)
Collecting async-timeout==4.0.2
  Downloading async_timeout-4.0.2-py3-none-any.whl (5.8 kB)
Collecting ciso8601==2.2.0
  Using cached ciso8601-2.2.0.tar.gz (18 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
....

Запускаем. Будут подгружены нужные пакеты
(homeassistant) homeassistant@u1804-ha1:/srv/homeassistant$ hass

После этого заходим по адресу сервера. Порт Home Assistant - 8123. В моем случае: http://192.168.1.101:8123.

Создаем нового пользователя

Выбираем местоположение и часовой пояс

При необходимости добавляем плагины

И в конце концов видим главный экран

Возвращаемся в консоль. Нужно настроить запуск Home Assistant, как демона. Для этого в редакторе создаем файл
sudo vim /etc/systemd/system/homeassistant.service

следующего содержания:

[Unit]
Description=homeassistant
After=network.target

[Service]
ExecStart=/srv/homeassistant/bin/hass
WorkingDirectory=/srv/homeassistant/bin/
StandardOutput=null
StandardError=inherit
Restart=always
User=homeassistant

[Install]
WantedBy=multi-user.target

Активируем демон:
evgeniy@u1804-ha1:~$ sudo systemctl enable homeassistant.service
Created symlink /etc/systemd/system/multi-user.target.wants/homeassistant.service → /etc/systemd/system/homeassistant.service.

Запускаем его и проверяем, что он работает:

evgeniy@u1804-ha1:~$sudo systemctl start homeassistant.service
evgeniy@u1804-ha1:~$ sudo systemctl status homeassistant.service
● homeassistant.service - homeassistant
   Loaded: loaded (/etc/systemd/system/homeassistant.service; disabled; vendor preset: enabled)
   Active: active (running) since Wed 2022-05-18 23:47:48 MSK; 10s ago
 Main PID: 7936 (hass)
    Tasks: 10 (limit: 1126)
   CGroup: /system.slice/homeassistant.service
           └─7936 /srv/homeassistant/bin/python3 /srv/homeassistant/bin/hass

May 18 23:47:48 u1804-ha1 systemd[1]: Started homeassistant.

Теперь еще немного картинок.

Для пробы заказывал на Алике такие датчики температуры и влажности

Ссылка на предложение

Zigbee2MQTT имеет свой собственный веб-интерфейс. Мы повесили его на порт 8080 (см. статью о настройке Zigbee2MQTT). Заходим в интерфейс Zigbee2MQTT. На датчиках активируем добавление. Zigbee2MQTT сам опознает и подключит датчики. У меня они не сразу добавились корректно. Портебовалось несколько попыток связывания. В конечном варианте будет вот так:

Теперь добавляем Zigbee2MQTT в Home Assistant. Для этого переходим в настройки (Settings) и далее пункт "Devices & Services"

В поиске пишем "MQTT"

Заполняем форму. IP-адрес у меня сработал локальный 127.0.0.1, а основной (172.16.1.212) не сработал. Имя пользователя - под кем запущен Zigbee2MQTT

Должны увидеться подключенные датчики. Можно сразу указать их расположение. Тут странная вещь. Мышкой я выбор из списка сделать не мог. Только стрелками на клавиатуре.

После этого вид с экраном интеграций будет примерно такой:

Добавим данные с датчиков на домашний экран. Нажимаем три точки в верхнем правом углу и выбираем "Edit Dashboard". Затем нажимаем "+ ADD CARD" (снимок сделан при выключенных датчиках):

Выбираем виджет:

Настраиваем его. Тут у меня мышка тоже не работала

Можно добавить прогноз погоды

Получится как-то так:

Продолжение следует...

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