Изучив установленные пакеты здесь приступим к проекту домашней автоматизации Умный дом — популярного направления развития Интернета вещей. Домашняя автоматизация в современных условиях — это гибкая система, которую пользователь конструирует и настраивает самостоятельно в зависимости от собственных потребностей. За время развития системы появилось множество «умных» устройств: умные лампы/розетки, термостаты, разнообразные датчики, которые выпускаются огромным количеством компаний. Так как все эти устройства работают на разных протоколах необходима система, система Умный дом позволяет объединить управление всем многообразием приборов в едином интерфейсе.
Существует множество проектов таким систем, например: Majordomo, Openhab, Openremote, Node-RED.
Подробно остановимся на сервере OpenHab, который может работать на любом компьютере под управлением любой ОС в том числе и на RaspberryPi.
OpenHab является гибким конструктором функциональность которого расширяется за счет использования плагинов.
Каждое «умное» устройство добавляется в конфигурацию OpenHAB в виде item. Для связи item с конкретным устройством используется binding. Ну и с помощью файла описания sitemap задается пользовательский интерфейс для управления устройствами, добавленных в item. Для работы сервера OpenHab необходимо наличие java.

Установка OpenHAB на Raspberry PI

Устанавливаем Java

apt-get install oracle-java8-jdk

Создаем папку openhab и загружаем версию OpenHAB 1.8.3

mkdir /opt/openhab
cd /opt/openhab
wget https://bintray.com/artifact/download/openhab/bin/distribution-1.8.3-runtime.zip
unzip distribution-1.8.3-runtime.zip
rm distribution-1.8.3-runtime.zip

Создаем папку addons_repo, загружаем и распаковываем архив аддонов для версии 1.8.3

mkdir addons_repo
cd addons_repo
wget https://bintray.com/artifact/download/openhab/bin/distribution-1.8.3-addons.zip
unzip distribution-1.8.3-addons.zip
rm distribution-1.8.3-addons.zip

Создаем папку addons и перемещаем в нее нужные нам аддоны из папки addons_repo. Для перемещения лучше всего использовать файловый менеджер, например mc

Запуск OpenHAB осуществляется по команде

sudo /opt/openhab/start.sh

Открываем в браузере адрес http://X.X.X.X:8080/openhab.app, где X.X.X.X — IP-адрес вашей Raspberry PI. Если все настроено правильно, то мы увидим главный экран OpenHAB.

Добавление OpenHAB в автозагрузку

Открываем файл /etc/init.d/openhab и вставляем следующий код:

#!/bin/sh
### BEGIN INIT INFO
# Provides:          openhab
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: OpenHAB Daemon
# Description: Build your smart home in no time!
### END INIT INFO

ROOT_DIR=/opt/openhab

# set path to eclipse folder. If local folder, use '.'; otherwise, use /path/to/eclipse/
eclipsehome="$ROOT_DIR/server";

# set ports for HTTP(S) server
HTTP_PORT=8080
HTTPS_PORT=8443

# get path to equinox jar inside $eclipsehome folder
cp=$(find $eclipsehome -name "org.eclipse.equinox.launcher_*.jar" | sort | tail -1);

# This next line determines what user the script runs as.
# Root generally not recommended but necessary if you are using the Raspberry Pi GPIO from Python.
#USER=root
DAEMON_USER=root
DAEMON_NAME=openhab

DAEMON=/usr/bin/java
DAEMON_ARGS="-Djna.boot.library.path=/usr/lib/jni -Dgnu.io.rxtx.SerialPorts=/dev/ttyAMA0 -Dosgi.clean=true -Declipse.ignoreApp=true -Dosgi.noShutdown=true -Djetty.port=$HTTP_PORT -Djetty.port.ssl=$HTTPS_PORT -Djetty.home=. -Dlogback.configurationFile=configurations/logback.xml -Dfelix.fileinstall.dir=addons -Djava.library.path=lib -Djava.security.auth.login.config=./etc/login.conf -Dorg.quartz.properties=./etc/quartz.properties -Dequinox.ds.block_timeout=240000 -Dequinox.scr.waitTimeOnBlock=60000 -Dfelix.fileinstall.active.level=4 -Djava.awt.headless=true -jar $cp $* -console "
PIDFILE=/var/run/$DAEMON_NAME.pid

. /lib/lsb/init-functions

do_start() {      
  log_daemon_msg "Starting system $DAEMON_NAME daemon"
  start-stop-daemon --start --background --pidfile $PIDFILE --make-pidfile --user $DAEMON_USER --chuid $DAEMON_USER --chdir $ROOT_DIR --exec $DAEMON -- $DAEMON_ARGS
  log_end_msg $?
}
do_stop() {
  log_daemon_msg "Stopping system $DAEMON_NAME daemon"
  start-stop-daemon --stop --pidfile $PIDFILE --retry 10
  log_end_msg $?
}

case "$1" in

    start|stop)
        do_${1}
        ;;

    restart|reload|force-reload)
        do_stop
        do_start
        ;;

    status)
        status_of_proc "$DAEMON_NAME" "$DAEMON" && exit 0 || exit $?
        ;;
    *)
        echo "Usage: /etc/init.d/$DAEMON_NAME {start|stop|restart|status}"
        exit 1
        ;;

esac
exit 0

Для исключения ошибок запуска скрипта необходимо вставить код в текстовый редактор, например notepad++ и затем в окно терминала.

Устанавливаем права доступа

chmod 777 /etc/init.d/openhab 

прописываем запуск скрипта по умолчанию

sudo update-rc.d openhab defaults

Теперь Openhab будет запускаться автоматически при загрузке системы.

Управление OpenHAB
/etc/init.d/openhab status
/etc/init.d/openhab restart
/etc/init.d/openhab start
/etc/init.d/openhab stop

Установка HABmin

HABmin необходим для управления конфигурационными файлами через web-интерфейс. Это графическое приложение позволяет наглядно создавать необходимые конфигурации. Для установки необходимо:

Остановить работу OpenHAB

/etc/init.d/openhab stop

Загрузить и распаковать архив программы в папку, где находится openhab

cd /opt/openhab
wget https://github.com/cdjackson/HABmin/releases/download/0.1.3-snapshot/habmin.zip
unzip habmin.zip

Поле чего заново запустить OpenHAB

/etc/init.d/openhab start

Интерфейс приложения доступен по адресу http://localhost:8080/habmin/index.html

Установка Mosquitto

Mosquitto — это сервер (брокер MQTT), который постоянно поддерживает соединение с клиентами и сообщает им о всех данных, переданных другими клиентами. Для настройки взаимодействия OpenHAB с Mosquitto необходимо установить Mosquitto.

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
apt-get update
apt-get install mosquitto

После установки прописываем в файл конфигурации следующие настройки

nano /opt/openhab/configurations/openhab.cfg
mqtt:mosquitto.url=tcp://localhost:1883
mqtt:mosquitto.clientId=MyOpenHab