Категории

Как поставить Home Assistant на Ubuntu и подключить Zigbee — без «понтов», по делу

2025-10-29 10:28:31 | Статья из категории: IOT умный дом

Как установить Home Assistant на Ubuntu с поддержкой Zigbee

Привет, друзья! Решил накатать короткую, но полезную статью — потому что у меня в блоге уже куча самописных IoT-решений на PHP, а про Home Assistant ни слова. Хотя это же один из самых популярных open-source хабов для умного дома. Давайте разберёмся, как его поставить на обычную Ubuntu (не HassOS!), подключить Zigbee-адаптер и начать управлять датчиками без танцев с бубном.

Что понадобится

Шаг 1: Установка Docker

Home Assistant отлично работает в Docker-контейнере. Это проще, чем ставить через Python или виртуальное окружение.

sudo apt update
sudo apt install -y ca-certificates curl gnupg lsb-release
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

Добавим себя в группу docker, чтобы не писать sudo каждый раз:

sudo usermod -aG docker $USER
newgrp docker

Шаг 2: Запуск Home Assistant в контейнере

Создадим папку для конфигов и запустим контейнер:

mkdir -p ~/homeassistant/config
docker run -d \
  --name homeassistant \
  --privileged \
  --restart=unless-stopped \
  -e TZ=Europe/Moscow \
  -v ~/homeassistant/config:/config \
  -v /run/dbus:/run/dbus:ro \
  --net=host \
  ghcr.io/home-assistant/home-assistant:stable

Флаг --privileged нужен для доступа к USB-устройствам (в том числе Zigbee-донглу). --net=host — чтобы не мучиться с пробросом портов.

Шаг 3: Подключаем Zigbee-адаптер

Вставляем донгл в USB. Убеждаемся, что система его видит:

lsusb

Если адаптер на базе Texas Instruments (CC2531/CC2652), скорее всего, он определится как Texas Instruments. Теперь нужно дать Home Assistant к нему доступ. В нашем случае — благодаря --privileged и --net=host — всё уже работает.

Шаг 4: Настройка через веб-интерфейс

Открываем в браузере:

http://IP_ВАШЕГО_СЕРВЕРА:8123

Проходим первоначальную настройку: создаём аккаунт, указываем имя системы и т.д.

Добавляем Zigbee-интеграцию

  1. Заходим в «Настройки» → «Устройства и службы» → «+ Добавить интеграцию»
  2. Ищем ZHA (Zigbee Home Automation)
  3. В поле «Serial device» указываем путь к устройству, например: /dev/ttyACM0 или /dev/ttyUSB0
  4. Жмём «Отправить» и ждём инициализации

Если всё прошло успешно — можно начинать добавлять устройства: кнопки, датчики движения, розетки и т.п. Просто зажимаем кнопку сопряжения на устройстве, и оно само появится в интерфейсе.

Шаг 5: (Опционально) Автозапуск и резервные копии

Контейнер уже перезапускается автоматически (--restart=unless-stopped), но не забудьте настроить бэкапы папки ~/homeassistant/config. Можно через cron + rsync или просто скопировать на NAS.

Установка Home Assistant Core с нуля на Ubuntu (без Docker, без «магии»)

Если ты, как и я, не любишь «чёрные ящики» и хочешь понимать, как всё работает внутри, то лучший способ — установить Home Assistant Core вручную через виртуальное окружение Python. Это не самый «лёгкий» путь, но самый прозрачный. Никакого Docker, никаких образов — только терминал, Python и systemd.

1. Обновляем систему

sudo apt update && sudo apt upgrade -y

2. Ставим зависимости

sudo apt install -y python3 python3-dev python3-venv python3-pip \
libffi-dev libssl-dev autoconf build-essential git

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

Это хорошая практика безопасности — запускать сервисы от отдельного пользователя без прав root.

sudo useradd -rm homeassistant -G dialout

Группа dialout даёт доступ к последовательным портам — это нужно для Zigbee-донглов вроде CC2652 или Sonoff.

4. Готовим папку и виртуальное окружение

sudo mkdir -p /srv/homeassistant
sudo chown homeassistant:homeassistant /srv/homeassistant

sudo -u homeassistant -H -s
cd /srv/homeassistant
python3 -m venv .
source bin/activate

5. Устанавливаем Home Assistant

python3 -m pip install --upgrade pip wheel
pip3 install homeassistant

6. Первый запуск (вручную)

hass

При первом запуске Home Assistant создаст папку конфигурации в /home/homeassistant/.homeassistant. Это может занять 5–10 минут — дождись сообщения вида Starting Home Assistant.

После этого открой в браузере: http://IP_СЕРВЕРА:8123 — должна появиться страница настройки.

Останови процесс: Ctrl+C, затем выйди из сессии пользователя:

exit

7. Автозапуск через systemd

Создаём файл сервиса:

sudo nano /etc/systemd/system/homeassistant.service

Вставляем содержимое:

[Unit]
Description=Home Assistant
After=network-online.target

[Service]
Type=simple
User=homeassistant
WorkingDirectory=/home/homeassistant
ExecStart=/srv/homeassistant/bin/hass -c "/home/homeassistant/.homeassistant"
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target

Загружаем и запускаем сервис:

sudo systemctl daemon-reload
sudo systemctl enable homeassistant.service
sudo systemctl start homeassistant.service

Проверяем статус:

sudo systemctl status homeassistant.service

8. Подключаем Zigbee

Вставляем Zigbee-адаптер в USB. Проверяем, что система его видит:

lsusb

Обычно он определяется как Texas Instruments или Sonoff. Устройство будет доступно как /dev/ttyACM0 или /dev/ttyUSB0.

В веб-интерфейсе Home Assistant:

  1. «Настройки» → «Устройства и службы» → «+ Добавить интеграцию»
  2. Ищем ZHA (Zigbee Home Automation)
  3. В поле «Serial device» указываем, например: /dev/ttyACM0
  4. Жмём «Отправить» — и готово!

9. Обновление

Когда выйдет новая версия — обновляешься вручную:

sudo -u homeassistant -H -s
source /srv/homeassistant/bin/activate
pip3 install --upgrade homeassistant
sudo systemctl restart homeassistant.service

Что ты получаешь?

А если захочешь MQTT, Samba или Zigbee2MQTT — ставишь их отдельно, как настоящий инженер 😉

Заключение

Вот и всё! Теперь у вас есть полноценный open-source хаб для умного дома, который не зависит от облаков, работает локально и поддерживает Zigbee «из коробки». А если вы, как я, любите писать свои IoT-решения на PHP — ничто не мешает интегрировать Home Assistant через его REST API или MQTT.

Если будут вопросы — пишите в комменты. А я, пожалуй, скоро напишу статью, как связать свой PHP-блог с Home Assistant для отображения данных с датчиков. Пока!

Комментарии

Пока нет комментариев. Будьте первым!

Оставить комментарий

← Назад к списку статей

Важно: Блог-эксперимент

Блог только запустил, все статьи генерирую через нейросеть т.к. лень, возможны ошибки. Просто чтобы вы знали и не запускали ядерный реактор по моим статьям ))
Если у вас есть вопросы, или Нашли неточность? пишите в коментах — вместе поправим и сделаем статью более качественной. Я лично объясню нюансы из практики.

Посетителей сегодня: 0


кто я | книга | контакты без контактов

© Digital Specialist | Не являемся сотрудниками Google, Яндекса и NASA