"Бомж" Умный дом, подбор и установка ПО для центрального хаба. Часть 2

24 апреля 2019, 20:22

Начнем с настройки самого главного - центра управления нашего умного дома. Для наших целей подойдет малинка апельсинка. Что внутри? Процессор H2 Quad-core Cortex-A7 H.265/HEVC 1080P, Mali400MP2 GPU @600MHz, этого для нас более чем достаточно. 

Установка Armbian

Итак, для начала нам нужно скачать образ операционной системы, мы будем использовать Armbian, я выбрал на базе Debian. Заливать ее будем с помощью утилиты Etcher. После заливки образа подключаем апельсинку к роутеру по LAN, открываем программу "терминал" и логинимся командой  ssh root@<ip апельсинки, который можно найти в настройках роутера> с паролем 1234, проходим первоначальную настройку: смену пароля root, создание нового пользователя, далее вводим команду

sudo armbian-config

Настраиваем точку доступа через меню - тут все просто, процесс до безобразия автоматизирован. Если не планируется использование нашего хаба как точки доступа Wi-Fi, этот шаг можно пропустить. 

Установка Domoticz

В качестве системы управления умным домом я выбрал Domoticz - простой и удобный инструмент для домашней автоматизации. Устанавливаем.

sudo apt update && sudo apt upgrade
sudo apt install libusb-dev libpython3-dev
sudo curl -L install.domoticz.com | sudo bash

Добавляем Domoticz как системную службу для автоматической загрузки при старте системы. Для этого создаем файл командой:

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

Вставляем текст, отредактировав пользователя, от имени которого будет запускаться domoticz сервер, путь к исполняемому файлу и рабочую папку. 

[Unit]
       Description=domoticz_service
[Service]
       User=smarthomeless
       Group=1000
       ExecStart=/home/smarthomeless/domoticz/domoticz -www 8080 -sslwww 2400
       WorkingDirectory=/home/smarthomeless/domoticz
       CapabilityBoundingSet=CAP_NET_BIND_SERVICE
       Restart=on-failure
       RestartSec=1m
       #StandardOutput=null
[Install]
       WantedBy=multi-user.target

Сохраняем файл, вводим в консоли следующие команды для включения нашей службы:

systemctl daemon-reload
systemctl enable domoticz.service
systemctl start domoticz.service

Если все прошло успешно, то из нашего браузера на нас с надеждой будет смотреть только что установленный domoticz сервер. Подробно расписывать первичную настройку рассмотрим при добавлении датчиков. 

Что нам еще понадобиться? Умные устройства должны перешептыватся между собой, для этого они используют MQTT брокер, установим его на нашу апельсинку.

Установка MQTT брокера Mosquitto

sudo wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key
sudo apt-key add mosquitto-repo.gpg.key
cd /etc/apt/sources.list.d/
wget http://repo.mosquitto.org/debian/mosquitto-stretch.list
sudo apt update
sudo apt install mosquitto mosquitto-clients
sudo /etc/init.d/mosquitto stop
sudo nano /etc/mosquitto/mosquitto.conf

Заменяем содержимое файла на:

# Place your local configuration in /etc/mosquitto/conf.d/
#
# A full description of the configuration file is at
# /usr/share/doc/mosquitto/examples/mosquitto.conf.example

pid_file /var/run/mosquitto.pid

persistence true
persistence_location /var/lib/mosquitto/

log_dest topic

log_type error
log_type warning
log_type notice
log_type information

connection_messages true
log_timestamp true

include_dir /etc/mosquitto/conf.d

сохраняем файл и снова запускаем москитов )

sudo /etc/init.d/mosquitto start

Что нам еще для счастья надо? Апельсинка будет выполнять роль умной колонки как части мультимедиа системы. И кончено же мы хотим использовать ее для потокового вещания музыки с нашего iPhone посредством протокола AirPlay. Для этого будем использовать наработки проекта shairpoint-sync. Приступим к установке. 

cd /home/smarthomeless
sudo apt install build-essential git xmltoman autoconf automake libtool libdaemon-dev libpopt-dev libconfig-dev libasound2-dev libpulse-dev avahi-daemon libavahi-client-dev libssl-dev libsoxr-dev
git clone https://github.com/mikebrady/shairport-sync.git
cd shairport-sync
autoreconf -i -f
./configure --sysconfdir=/etc --with-alsa --with-pa --with-pipe --with-avahi --with-ssl=openssl --with-metadata --with-soxr --with-systemd
make
sudo make install
sudo systemctl enable shairport-sync.service
sudo service shairport-sync start

Все! Теперь наша апельсинка стала представляться устройствам на базе iOS как беспроводная колонка с поддержкой AirPlay, неплохо, да? Файл конфигурации находится здесь -> /etc/shairport-sync.conf Он хороша задокументирован, при необходимости можно изменить отображаемое имя нашей колонки и другие параметры. Что еще нам понадобится? Засыпать и просыпаться под звуки океана? Чтобы наш умный дом встречал нас вечером мягким джазом? Легко! Устанавливаем MPD (music player daemon) - музыкальный проигрыватель с клиент-серверной архитектурой, воспроизводящий музыку. Принцип работы заключается в запуске собственно плеера на сервере и управлении им при помощи консольного клиента. С помощью этой технологии можно организовать дома мультрум, однако для этого понадобится больше, чем одна апельсинка :) 

sudo apt install mpd mpc

Редактируем файл настроек:

sudo nano /etc/mpd.conf

Здесь нужно заменить пути размещения плейлистов и паки музыки. Для загрузки файлов будем использовать FTP сервер:

sudo apt install vsftpd
sudo nano /etc/vsftpd.conf

Подправим его немного.

anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES

Для доступа к системе можно использовать утилиту cyberduck. На этом пока все, продолжение следует. 

One more thing...

Прикрепляю уже установленный и настроенный образ системы для Orange Pi Zero. Осторожно, спойлер! Система в образе настроена уже немного дальше, чем в данной статье, содержит материалы, который выйдут на этом ресурсе немного позже. 


Все новости мира умных домов - t.me/SprutAI_News

Остались вопросы? Мы в Telegram - t.me/soprut

Хочешь умный дом но нет времени разбираться?
Посмотри примеры работ и выбери себе интегратора.
  1. Дмитрий Батюшин (ReD)
    Дмитрий Батюшин (ReD) 5 месяцев назад

    отличное продолжение, жду конфигурирования конечных устройств.

  2. (meta11ist87)
    (meta11ist87) 5 месяцев назад

    Спасибо за инфу и за потраченное время, полезная инфа) Ещё бы всё это на ХА заводить, как на одной из самых развивающейся платформе - вообще было бы огонь)

    • Антон Киселёв (Whilser)
      Антон Киселёв (Whilser) 5 месяцев назад

      Присматриваюсь к ХА, останавливает пока только одно - необходимость переписывать кучу тонко настроенных под меня скриптов. 

  3. (Egorka64)
    (Egorka64) 5 месяцев назад

    Интересно, а почему был выбран именно Domoticz. Мне, как начинающему строить нечто похожее на умный дом, он как  то не приглянулся. Был снесен и установлен Home Assistant. с которым сейчас разбираюсь. В принципе мне всего то нужно мониторить температуру и влажность в двух этажном доме, погодозависимое управление  газовым котлом, и как бонус, график колебаний атмосферного давления. В качестве датчиков ESP и Sonoff со сторонней прошивкой. 

    • Антон Киселёв (Whilser)
      Антон Киселёв (Whilser) отредактировано 5 месяцев назад

      Domoticz выбран из-за его простого, но в тоже время гибкого языка скриптов DzVents, заточенного специально под систему управления умным домом. В принципе все изложенные идеи могут быть реализованы и на другой платформе управления УД. 

    • (Mach)
      (Mach) 11 дней назад

      Подскажите, а как реализовано у Вас погодозависимое управление?

  4. Александр Поспелов (@citizenofthewor1d)
    Александр Поспелов (@citizenofthewor1d) отредактировано 5 месяцев назад

    Хорошая статья.
    airplay2 интересно поддерживается?
    На малину такое можно накатить?

    • Антон Киселёв (Whilser)
      Антон Киселёв (Whilser) 5 месяцев назад

      На малину конечно можно, вышеописанная инструкция установки тоже подойдёт. Однако там аудио не очень, лучше поставить внешнюю звуковую usb карту. AirPlay2 к сожалению пока не завезли, видимо из-за шифрования протокола. 

  5. (Brain)
    (Brain) 5 месяцев назад

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

    HA наше все.

К списку статей

Похожие статьи

04 сентября 2018, 12:14
Интеграция RGB ленты на ESP8266 с прошивкой tasmota в систему HomeBridge (HomeKit)
02 ноября 2018, 12:14
Кнопка звонка с уведомлениями в HomeKit
15 октября 2018, 09:05
Прошивка для Sonoff c нативным HomeKit
15 ноября 2018, 09:42
Способы автоматизации механических ворот
27 октября 2018, 12:20
Нативный Термостат для котла на ESP8266 с поддержкой Apple HomeKit
01 октября 2018, 07:43
Нативный HomeKit на ESP8266
15 июня 2018, 12:13
Охранная система в гараж на ESP8266 с интеграцией в Apple HomeKit
02 октября 2018, 18:41
Установка SDK для компиляции прошивок под HomeKit
22 октября 2018, 19:00
Сборка DIY Лабораторного блока питания из китайских модулей
20 октября 2018, 22:57
Теоретические основы протокола MQTT и описание того, как он работает и для чего используется