Установка и настройка платформы «Умный дом».

Тема «Умного дома» всегда интересовала большое количество людей. На текущий момент, есть все средства для самостоятельного создания такой системы и индивидуальной настройки под себя. Во-первых, это доступные «умные» устройства, датчики, мини-компьютеры, во-вторых, наличие в открытом доступе платформ для объединения устройств, создания правил их взаимодействия.

Сервер.

Тут выбор за Raspberry PI 3В, как наиболее распространённого мини-компьютера, со значительно развитой экосистемой поддержки.

1.jpg

Процессор ARM11 [ARMv6] Broadcom BCM2837, Количество ядер – 4, Частота процессора - 1200 МГц
Оперативная память SDRAM 1Гб
Интерфейсы HDMI, GPIO, USB 2.0 x4
Модуль связи Wi-Fi 2.4Ггц, Ethernet (RJ-45) 100 Мбит/с, Bluetooth 4.1

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

Программное обеспечение.

OpenHAB 2 – open source проект, с развитым сообществом. Основан на Фреймворке Eclipse SmartHome.

2.jpg

Установка базового программного обеспечения.

В качестве постоянной памяти выступает micro SD 32Гб.

Далее скачивается дистрибутив raspbian, флешка форматируется и на нее записывается iso-образ. Для этих целей удобно использовать Win32 disk imager.

Некоторые базовые команды Debian.

ps -ef  list of process
kill -9 -pid  kill process
apt-get update Обновление индекса пакетов.
Индекс пакетов APT по существу база данных доступных пакетов из репозиториев, определенных в файле /etc/apt/sources.list и каталоге /etc/apt/sources.list.d
apt-get upgrade Обновление пакетов
apt-get install <utility> Установка пакета
service <service_name> restart перезапуск службы
dpkg –list | grep openhab2 – информация о версии 
Чтобы убрать скринсейвер:

В файле "/etc/lightdm/lightdm.conf" В секции [SeatDefaults] добавить

Xserver -comand=x -s 0 -dpms

Подключение wifi.

Самый простой способ подключить временно монитор и клавиатуру и ввести ssid и пароль.

VNC Server.

1. Через конфигурацию сервера.
2. По результатам практического использования наиболее стабильный вариант.

$sudo apt-get install tightvncserver
$vncserver

Надо постоянно запускать!!!

Samba.

Для удобного сетевого обмена файлами. Также использую для редактирования тестовых конфигов и просмотра логов из других операционных систем.

$sudo apt-get install samba samba-common-bin
$sudo apt-get update
Конфигурирование Samba.

Расположение файла конфигурации

/etc/samba/smb.conf

Для добавления сетевой папки, в конец файла конфигурации нужно добавить:

[share-openhab-server]
Comment = share
Path = /home/pi/Share
Browseable = yes
Writeable = Yes
only guest = no
create mask = 0777
directory mask = 0777
Public = yes
Guest ok = yes

Перезагрузка Samba:

sudo /etc/init.d/samba restart

Python

Устанавливаем требуемые библиотеки:

$ sudo apt-get update
$ sudo apt-get install build-essential tk-dev libncurses5-dev libncursesw5-dev libreadline6-dev libdb5.3-dev libgdbm-dev libsqlite3-dev libssl-dev libbz2-dev libexpat1-dev liblzma-dev zlib1g-dev

Скачиваем и устанавливаем Python:

$ wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tar.xz
$ tar xf Python-3.6.5.tar.xz
$ cd Python-3.6.5
$ ./configure
$ make
$ sudo make altinstall

Установка OpenHAB 2

Прежде всего необходимо установить виртуальную машину Java

$ sudo apt-get install oracle-java8-jdk 

Добавляем openHAB 2 Bintray ключ репозитория в менеджер пакетов и позволяем приложению Apt использовать HTTPS протокол и собственно установка.

$ wget -qO - 'https://bintray.com/user/downloadSubjectPublicKey?username=openhab'|sudo apt-key add -
$ sudo apt-get install apt-transport-https
$ echo 'deb https://dl.bintray.com/openhab/apt-repo2 stable main'| sudo tee /etc/apt/sources.list.d/openhab2.list
$ sudo apt-get update
$ sudo apt-get install openhab2
$ sudo apt-get install openhab2-addons

Если все прошло хорошо, то добавим openHAB в автозапуск:

$ sudo /etc/init.d/openhab2 start
$ sudo /etc/init.d/openhab2 status
$ sudo update-rc.d openhab2 defaults

Для открытия стартовой страницы openHAB 2

http://<openhab-device>:8080

Расположение конфигурационных файлов:

OpenHAB application /usr/share/openhab2
Additional add-on files /usr/share/openhab2/addons
Site configuration /etc/openhab2
Log files /var/log/openhab2
Service configuration /etc/default/openhab2

Установка Mosquitto

Протокол MQTT является наиболее популярным протоколом M2M взаимодействий. Работа протокола осуществляется по технологии издатель – подписчик. В качестве связующего звена выступает брокер сообщений, поэтому приступим к его установке.

$ sudo apt-get update
$ sudo apt-get upgrade

Добавляем ключ и обновляем репозиторий. Вводим эти строчки по очереди. Иногда надо будет вводить пароль от вашего пользователя и нажимать Y для согласия с установкой.

$ 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/
$ sudo wget http://repo.mosquitto.org/debian/mosquitto-jessie.list
$ sudo apt-get update

Устанавливаем MQTT брокер (сервер):

$ sudo apt-get install mosquitto

Устанавливаем MQTT клиент:

$ sudo apt-get install mosquitto mosquitto-clients

После установки mosquitto сервер будет автоматически запускаться при загрузке системы.

Проверяем работу MQTT брокера

Для проверки MQTT брокера нужен MQTT клиент. Это может быть смартфон с MQTT клиентом или локально установленные клиенты. Первый будет подписываться на топик hello/world, второй клиент отправит в этот топик сообщение и первый его получил.

Итак, на первом клиенте, подписываемся на канал «hello/world»:

$ mosquitto_sub -d -t hello/world

На втором, подключаемся к нашему серверу и отправляем сообщение в канал «hello/world»:

$ mosquitto_pub -d -t hello/world -m "Hello from test client!"

В результате в первом окне появится сообщение «Hello from test client!».

Добавляем Mosquitto в автозапуск

$ sudo update-rc.d mosquitto defaults
$ sudo /etc/init.d/mosquitto start