Найти тему
Smart home Russia

Сервер умного дома 2024.3

Наступило время собирать очередной сервер умного дома. Как я и писал в своем telegram канале, связано это, прежде всего, с необходимостью обеспечить локальное стабильное управление устройствами, а также сбор статистики еще в одной квартире.

Все публикации (рассуждения и инструкции) актуальны на день ее выхода и с течением времени могут перестать работать, помните это.

Ранее я уже описывал все тут:

Сейчас же просто проверим как оно все работает спустя годы.

1. Берем компьютер по вкусу. Я использовал Futro s720, о котором напишу позже, когда будет больше опыта и данных. В качестве ОС я использовал Debian 12, при установке выбрал только SSH server. Чем больше галок мы поставим, тем больше ресурсов будет задействовано и не факт, что мы ими будем пользоваться. Доставим позже, по необходимости. Но если ресурсов полно, то можно поставить и набор утилит, и рабочий стол и даже web сервер. Пользователя я создал с именем sh, дальше это будет в других командах, это важно.

После установки появляется командная строка, значит все ОК. Отключаем монитор и мышку, подключаемся по SSH.

2. Дальше выполняем команду под суперпользователем:
su
nano /etc/apt/sources.list

Нужно убрать первую строчку, иначе у нас будут постоянно просить вставить установочный носитель. Можно ее также закомментировать.

3. Дальше, если вы, как и я выбрали минимальную установку, то нужно для удобства установить Sudo, и добавить в него пользователя smarthome. Если делали полную установку, то вторую команду пропускаем или выполняем, но читаем сообщение что пакет и так уже в системе.
Выполним команды:
su
apt-get install sudo
/sbin/adduser smarthome sudo

Теперь перезагрузим терминал или перезагрузим компьютер (systemctl reboot) или просто разлогинемся, затем залогинемся. Введем команду:
sudo echo 'Hello, world!'
Если нас поприветствовали в ответ, то все хорошо, все работает.
Теперь проверим обновления, если ставили Linux с включенным интернетом, то можно сразу перейти к следующему пункту:
sudo apt-get update
sudo apt-get upgrade -y

4. Устанавливаю нужные пакеты:
sudo
apt-get install -y apt-transport-https ca-certificates curl gnupg2 software-properties-common python3 python3-pip

5. Добавляю официальный ключ GPG Docker:
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add

6. Добавляю официальный репозиторий Docker:
sudo
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"

7. Обновим индексы репозиториев:
sudo
apt-get update

8. Установим Docker
sudo
apt-get install -y docker-ce

9. Настоятельно рекомендую выполнить установку portainer:
sudo
docker run --restart always --name portainer -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer

Как получили сообщение что все ОК, то переходим на страничку http://IP_сервера:9000/ и придумываем пару логин/пароль, место установки - локально, радуемся ☺

-3

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

-4

Посмотрим сколько места потратили:

-5

2.8 из 14.3, неплохо.

10. Вводим команду:
sudo
docker run -d --name="home-assistant" -v /home/smarthome/HomeAssistant:/config -v /etc/localtime:/etc/localtime:ro -v /run/dbus:/run/dbus:ro --net=host --restart always homeassistant/home-assistant:stable

Обратите внимание, что smarthome нужно заменить на вашего пользователя, иначе в папка будет совсем не там, где ей нужно быть. Не то, чтобы это страшно, но при некоторой удаче работать ничего не будет.

-6
-7

11. Переходим на страничку http://IP_сервера:8123/ и просто проверяем, что все работает

-8

Ну и под завершение проверим, сколько осталось памяти

-9

~5Gb на минимальную конфигурацию, неплохая база. На этом все, ваш умный дом уже готов и работает, вам доступны все инструменты и возможности,

12. Теперь добавим поддержку Bluetooth. Установим USB стик, если в вашем компьютере его нет. В HA появится поддержка, но не заработает. Это нормально.

-10

Если же Bluetooth не появился, то выполним команды:
sudo apt-get install bluetooth bluez bluez-tools
Должно заработать, если нет, то, возможно, помогут мои статьи и комментарии к ним:

Дальше нужно прописать volumes: /run/dbus:/run/dbus:ro тогда HA сможет работать с Bluetooth

13. Теперь добавим поддержку кастомных компонентов по желанию, поможет нам официальная инструкция:

Download | HACS

Для этого выполним команды:
sudo docker exec -it home-assistant bash
wget -O -
https://get.hacs.xyz | bash -

Теперь перейдем в HA и установим все:

14. Начнем сканировать ближайшие bluetooth устройства и датчики:

Обычно для этого нужно лишь скачать расширение в магазине HACS с названием Passive BLE Monitor integration, но если после установки расширение не появилось в интеграциях, до допишем HA интеграцию вручную, файл configuration.yaml:

ble_monitor:
bt_interface: '04:B1:38:2C:84:2B'
bt_auto_restart: False
active_scan: False
discovery: True
period: 60
use_median: False
log_spikes: False
restore_state: False
report_unknown: False

Посмотрим сколько заняла финальная конфигурация:

-14

5.12Гб, неплохо. Итого, час времени и бюджет обеда и у нас быстрый бесшумный локальный сервер умного дома.

Также публикации можно найти на других площадках: Instagram, telegram (RU, EN, DE), Medium, LiveJournal, YouTube. Комментарии доступны только в telegram канале.