Возвращаюсь к проекту с самопальным умным домом. Предыдущие серии
- Прошивка Zigbee-сниффера
- Установка Ubuntu Server 20.04 на Banana PI M5
- Установка Mosquitto MQTT Broker
- Установка 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" (снимок сделан при выключенных датчиках):
Выбираем виджет:
Настраиваем его. Тут у меня мышка тоже не работала
Можно добавить прогноз погоды
Получится как-то так:
Продолжение следует...
Комментариев нет:
Отправить комментарий