Наступило время собирать очередной сервер умного дома. Как я и писал в своем 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/ и придумываем пару логин/пароль, место установки - локально, радуемся ☺
Радуемся удобному веб интерфейсу и возможности управлять докером легкими нажатиями мышки
Посмотрим сколько места потратили:
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 нужно заменить на вашего пользователя, иначе в папка будет совсем не там, где ей нужно быть. Не то, чтобы это страшно, но при некоторой удаче работать ничего не будет.
11. Переходим на страничку http://IP_сервера:8123/ и просто проверяем, что все работает
Ну и под завершение проверим, сколько осталось памяти
~5Gb на минимальную конфигурацию, неплохая база. На этом все, ваш умный дом уже готов и работает, вам доступны все инструменты и возможности,
12. Теперь добавим поддержку Bluetooth. Установим USB стик, если в вашем компьютере его нет. В HA появится поддержка, но не заработает. Это нормально.
Если же Bluetooth не появился, то выполним команды:
sudo apt-get install bluetooth bluez bluez-tools
Должно заработать, если нет, то, возможно, помогут мои статьи и комментарии к ним:
Дальше нужно прописать volumes: /run/dbus:/run/dbus:ro тогда HA сможет работать с Bluetooth
13. Теперь добавим поддержку кастомных компонентов по желанию, поможет нам официальная инструкция:
Для этого выполним команды:
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
Посмотрим сколько заняла финальная конфигурация:
5.12Гб, неплохо. Итого, час времени и бюджет обеда и у нас быстрый бесшумный локальный сервер умного дома.
Также публикации можно найти на других площадках: Instagram, telegram (RU, EN, DE), Medium, LiveJournal, YouTube. Комментарии доступны только в telegram канале.