HomeKit для Z-Wave, Raspberry GPIO и устройств с HTTP API с помощью контроллера RaZberry

6 апреля 2015
На Geektimes о HomeKit для RaZberry



Тема интернета вещей сейчас как никогда наиболее популярна. Каждый день выходят новые интересные устройства способные общаться друг с другом через интернет. Пока различные производители договариваются о общем протоколе общения, Apple решила взять дела в свои руки и выпустила Framework HomeKit стандартизирующий способы управления устройствами различных производителей. В перспективе с помощью мобильного приложения HomeKit можно будет управлять различными лампочками, термостатами, розеточными модулями по wifi или bluetooth. Но это все в ближайшем будущем, хотя нет, постойте…
Вы уже сейчас можете работать более чем с 1000 HomeKit устройствами или создавать свои HomeKit совместимые устройства!!!
http://razberry.z-wave.me/.
RaZberry — это программно-аппаратный комплекс поддерживающий протоколы Z-Wave, HTTP, TCP и возможность запуска системных команд, например Bash. ПО автоматизации RaZberry называется Z-Way и благодаря поддержке HTTP API можно создать, датчик температуры, взяв данные с OpenWeather, который можно использовать в различных правилах автоматизации. Z-Way распространяется бесплатно и доступен для многих платформ, более того проект является OpenSource, за исключением части работы с Z-Wave, т.к. подписан NDA с Sigma Designs, владелицей протокола Z-Wave. В состав Z-Way входит модуль для работы с HomeKit, который и позволяет транслировать Z-Wave и HTTP устройства из RaZberry в HomeKit приложение на iOS.

Установка ПО автоматизации Z-Way


Скачайте Z-Way http://razberry.z-wave.me/z-way-server/ на ваш компьютер, есть различные сборки под Linux x86, Raspberry и Windows. Для Raspberry можно воспользоваться инсталлятором, который ко всему прочему установит еще и сервис удаленного доступа, позволяющий попасть в панель управления умным домом через сервис find.z-wave.me, используя RaZberry ID и пароль:
wget -q -O - razberry.z-wave.me/install/v2.0.1-rc24 | sudo bash 

Для различных версий Linux скаченный архив нужно просто распаковать и запустить z-way-server:
LD_LIBRARY_PATH=./libs ./z-way-server & 

Создание датчика температуры из данных OpenWeather и Реле из GPIO Raspberry


После запуска нужно перейти в Web интерфейс настройки автоматизации IP_ADDRESS:8083.


Выберите интерфейс Z-Way Home Automation UI.


Теперь нужно создать устройства, которыми будем управлять. Если используется плата RaZberry или USB Z-Wave Stick, то у вас уже есть устройства, иначе давайте создадим датчик температуры и подключим реле к GPIO выходам Raspberry.

Для создания датчика температуры перейдите на вкладку Preferences-->Modules-->Environment и выберите модуль OpenWeather.


Проводим не сложную настройку.


И получаем датчик температуры.


Далее добавляем реле. Управлять GPIO будем командой echo, поэтому системе автоматизации нужно разрешить использовать внешнюю программу. В папке где находится z-way-server создаем скрытый файл.syscommands и прописываем в него команду echo:
echo "echo" >> .syscommands 

Возвращаемся в интерфейс автоматизации и переходим на вкладку Preferences-->Modules-->Devices, здесь нужно выбрать модуль CodeDevice.


Указываем тип: SwitchBinary
Команда включить:
system('echo "1" > /sys/class/gpio/gpio24/value'); 

Команда выключить:
system('echo "0" > /sys/class/gpio/gpio24/value'); 



При старте системы автоматизации нужно настроить GPIO порт на выход, для этого переходим на вкладкуPreferences-->Modules-->Scripting и выбираем модуль CustomUserCode, в текстовое поле пишем код:
system('echo "24" > /sys/class/gpio/export'); system('echo "out" > /sys/class/gpio/gpio24/direction'); 



Теперь у нас есть 2 работающих устройства.


Далее нужно активировать модуль HomeKit. Для сопряжения устройства с приложением HomeKit требуется ввести код, в Z-Way этот код можно посмотреть в логе, запускаем просмотр лога в консоле:
tail -f /var/log/z-way-server.log 



И теперь запускаем модуль HomeKitGate на вкладке Preferences-->Modules-->Peripherals.


Из настроек, только имя которое будет отображаться при поиске на iOS устройстве.


После запуска модуля смотрим в лог и видим код сопряжения HomeKit PIN:249-01-266.

Приложение HomeKit для iOS из примеров Apple


В AppStore есть одно работающее приложение HomeKit — MyTouchHome (на момент написания статьи), стоит 1.99$.


Для iOS разработчиков компания Apple охотно делится примерами, поэтому мы сами можем скачать исходники и скомпилировать себе приложение на iOS устройство. Исходники примера HomeKit берем здесь:
https://developer.apple.com/library/ios/samplecode/HomeKitCatalog/HomeKitCatalog.zip
Для сборки приложения требуется аккаунт разработчика, без него приложение сообщало об ошибке, что не может подключиться.
После запуска приложения находим наш контроллер, добавляем его в наш дом, и видим список наших устройств, которыми можем управлять.


Состояния устройств полностью синхронизированы, управлять можно и из Web панели и из приложения HomeKit.


Надеюсь в скором времени появится много функциональных приложений с поддержкой HomeKit, ну а мы уже готовы!