Chernobrovkin
6017 просмотров8 комментариев

Установка и настройка Home Assistant Core на Repka Pi 3 (в Docker контейнерах)

Содержание


Использованное в проекте оборудование:

Repka Pi 3 1.2 GHz 1 Gb ОЗУ (в настоящее время рекомендуем аналог)

Sonoff Zigbee 3.0 USB Dongle Plus-E V2


Загрузка образа операционной системы.

Загрузим образ Armbian для Repka Pi (рекомендуем операционную систему Repka OS, скачать которую можно здесь): и записываем его на USB Flash Drive, используя любую удобную для нас программу, например, balenaEtcher

Фанаты контроля могут собрать образ сами, взяв исходники и инструкции тут, а DTS тут.


Настройка Armbian

Для первоначальной настройки нам потребуются монитор (порт HDMI на плате имеется) и клавиатура. В дальнейшем доступ к устройству можно получать посредством доступа по протоколу ssh. После загрузки ОС необходимо пройти несколько простых шагов (пароль суперпользователя, создание пользователя, конфигурирование сети, задание часового пояса, времени и пр.), через которые вас заботливо проведет автоматически запускаемый сценарий.

Обновим дистрибутив.

sudo apt update && sudo apt upgrade

В силу ряда причин остановим свой выбор на Home Assistant в версии core. Во-первых, данная реализация самая минималистическая (не забываем, что установка будет производиться на платформу с 1 Gb ОЗУ). Во-вторых, и выбора у нас на данном этапе особого нет. В итоге для данного проекта был выбран вариант с установкой HA из докер-образа. Остальные сервисы (mqtt, zigbee2mqtt и опциональный zigbee2mqttassistant) также устанавливались из докер-образов.


Установка Docker

Проверим наличие зависимостей:

На данном этапе пакеты ca-certificates, curl, gnupg, lsb_release уже установлены в системе, однако, можем, на всяких случай, запустить:

sudo apt-get install ca-certificates curl gnupg lsb-release

Добавим ключи:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

Добавим репозиторий Docker:

echo   "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list 

Установим сам Docker и компоненты:

sudo apt update & sudo apt install docker-ce docker-ce-cli containerd.io

Проверим работоспособность установленного:

sudo docker run hello-world

В случае, если все прошло штатно, наблюдаем строки об успешном запуске приложения:

Hello from Docker!
This message shows that your installation appears to be working correctly.

Добавим текущего пользователя в группу "docker":

sudo usermod -aG docker user

Приступаем к загрузке образов и запуску контейнеров.

Home Assistant

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

mkdir -p ~/homeassistant/config

Запустим создание и запуск контейнера:
docker run -d --name homeassistant --privileged --restart=unless-stopped -p 8123:8123 \ 8123:8123 \
-e TZ="Europe/Moscow" -v ~/homeassistant/config:/config --network=host ghcr.io/home-assistant/home-assistant:stable

После старта контейнера (веб-интерфейс программы доступен по адресу: http://<адрес устройства>:8123/) необходимо произвести начальную настройку Home Assistant. Мастер настройки поможет справиться с этой нехитрой задачей в несколько кликов.

MQTT

Создадим необходимые директории для доступа к содержимому контейнера из локальной файловой системы:

mkdir -p ~/mosquitto/{config,data,log}

Добавим файл конфигурации:

nano ~/mosquitto/config/mosquitto.conf

со следующим содержимым:

allow_anonymous true
listener 1883
persistence true
persistence_location /mosquitto/data/
log_dest file /mosquitto/log/mosquitto.log

Запустим создание и запуск контейнера:

docker run -d --name mosquitto -p 1883:1883 --restart=unless-stopped -v \
~/mosquitto/config:/mosquitto/config \
-v ~/mosquitto/data:/mosquitto/data -v ~/mosquitto/log:/mosquitto/log
eclipse-mosquitto

Zigbee2mqtt

Создадим необходимые директории для доступа к содержимому контейнера из локальной файловой системы:

mkdir -p ~/zigbee2mqtt/data

Создадим начальную конфигурацию:

wget https://raw.githubusercontent.com/Koenkk/zigbee2mqtt/master/data/configuration.yaml -P ~/zigbee2mqtt/data

Изменим некоторые параметры конфигурации:

homeassistant: true
server: mqtt://172.17.0.1

Подключим модуль Sonoff Zigbee 3.0 USB Dongle Plus V2 к usb-порту устройства и проверяем его наличие и именование в системе:

ls /dev/serial/by-id

Полученное имя укажем в параметре "device"; создадим и запустим контейнер:

docker run --name zigbee2mqtt --restart=unless-stopped \
--device=/dev/serial/by-id/usb-ITEAD_SONOFF_Zigbee_3.0_USB_Dongle_Plus_V2_20221202185000-if00:/dev/ttyACM0 \
-p 8080:8080 -v ~/zigbee2mqtt/data:/app/data -v /run/udev:/run/udev:ro -e TZ=Europe/Moscow koenkk/zigbee2mqtt

Подключение устройств

Теперь можно подключать устройства, предварительно переведя их в режим сопряжения.

Результат добавления устройства.

Добавим остальные имеющиеся у нас устройства

Создадим карточки для наших устройств

Результат добавления карточек в Home Assistant.


Установка zigbee2mqttassistant

Опционально. Установим и запустим zigbee2mqttassistant:

docker run -d -p 8880:80 --name zigbee2mqttassistant \
-e "Z2MA_SETTINGS__MQTTSERVER=172.17.0.1" --restart unless-stopped  carldebilly/zigbee2mqttassistant

Насладимся красотой по адресу http://<адрес вашего устройства>:8880/

Дополнительно.

Вывод информации по установленным контейнерам (docker ps)

Вывод информации о системе после установки четырех контейнеров и подключения восьми устройств.


Примеры подключаемых датчиков и исполнительных устройств

Фото с тыльной стороны в основном. Пара с коробками. Модели должно быть видно хорошо. Думаю, найти их в интернете не составит никакого труда.

Про то, как и кем подготовлен данный материал и несколько слов о проекте Repka Pi

Надеемся, что эта статья поможет Вам установить и настроить Home Assistant Core на Repka Pi 3.

Эта статья целиком написана по материалам, подготовленным  Рафаэлем (@vergeon) из Саратова из группы сообщества Repka Pi. Рафаэль является автором материалов, мы лишь незначительно выполнили редактуру материала. Рафаэль является одним из самых активных участников сообщества Repka Pi.

Установка была на версии Репка пай с 1 Гб ОЗУ и частотой на 1,2 ГГц под управлением Armbian (ссылки на сайте Repka Pi в разделе "Прошивки").

Как стало понятно из результатов - всё прекрасно работает, при этом когда нужно подключить прям вот много-много датчиков, то лучше сразу ставить на версию Репки с 2 Гб ОЗУ.

Проект Repka Pi очень признателен Рафаэлю за проработку актуальных вопросов и подготовку полезных для многих статей, включая эту.

Также приводим ссылки на ресурсы проекта Repka Pi:

  • Официальный сайт проекта Repka Pi и там же куча дополнительной информации, прошивки, чертежи, исходники бинарники DT, блог и что важно - интернет магазин с ценами на все комплектации Репки ощутимо ниже, чем на плэйс-маркетах.

  • Официальный Телеграм канал проекта Repka Pi.

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

  • Официальное сообщество в ВК компании разработчика, где периодически появляются новости проектов разработчика проекта, в том числе и Репки.

  • Предыдущая статья о проекте, где было подробнее рассказано о подключении Debug UART на Repka Pi 3 для отладки прошивок, загрузчиков и для контроля процессов работы самого одноплатника.

Раз Вы читаете эти строки, значит статья Вас заинтересовала и Вы дочитали её до конца. Спасибо Вам!

Ставьте Ваши оценки и пишите в комментариях о чём бы Вы хотели ещё прочитать в этом цикле статей о применении и работе с одноплатным компьютером Repka Pi Российской разработки и производства, о применении с ним разных видов датчиков, исполнительных устройств и устройств ввода и вывода информации, а может и о чём то ещё.


Комментарии (8)

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

Добрый день!
По причине отсутствия у меня должных знаний, я из статьи не понял, чем Вы руководствовались при выборе варианта установки. Скажите, пожалуйста, чем плох вариант устаноки home assistant operation system?

bblrlo
bblrlo  

не удобно обновлять и управлять. в случае с контейнером достаточно вытянуть новый образ и перезапустить контейнер. ну и если что-то сломал, то это никак не отразится на основной ОС.

anatoly_ryabov
anatoly_ryabov  

Можно поставить и home assistant operation system и Вы можете смело его попробовать. Но лучше брать в этом случае Репку не с 1 Гб ОЗУ, а с 2 Гб, данный материал был написан на основании установки на 1 Гб версию.

Виктор Николаевич  

Если ставить home assistant operation system, то все те действия, которые вы описывали, будут не нужны?

bblrlo
bblrlo  

Спасибо за подробную инструкции. сэкономило много времени

bblrlo
bblrlo  

кстати, последние версии HA автоматом определяют донгл.
достаточно простого композника
version: '3.8'
services:
home-assistant:
image: ghcr.io/home-assistant/home-assistant:stable
restart: always
volumes:
- ./config:/config
ports:
- "8123:8123"
environment:
TZ: Europe/Moscow
devices:
- "/dev/serial/by-id/usb-ITEAD_SONOFF_Zigbee_3.0_USB_Dongle_Plus_V2_20231101153038-if00:/dev/ttyACM0"

k_s_corp
k_s_corp  

А как в самом контейнере подключить zigbee2mqtt? не полный пример, все основное не описано... на самом деле все не так просто...

HUNTER43
HUNTER43  

Не доступен образ Armbian для Repka Pi:
https://github.com/Imptovskii/armbian-repkapi/releases/download/23.02-repka/Armbian_23.02.2_Repkapi3_jammy_current_5.15.93.img.xz
Можете поделиться образом?

UPD: https://repka-pi.ru/forum/threads/13/

Темы

Навигация

ВойтиРегистрация