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

от автора

Тема интернета вещей сейчас как никогда наиболее популярна. Каждый день выходят новые интересные устройства способные общаться друг с другом через интернет. Пока различные производители договариваются о общем протоколе общения, Apple решила взять дела в свои руки и выпустила Framework HomeKit стандартизирующий способы управления устройствами различных производителей. В перспективе с помощью мобильного приложения HomeKit можно будет управлять различными лампочками, термостатами, розеточными модулями по wifi или bluetooth. Но это все в ближайшем будущем, хотя нет, постойте…
Вы уже сейчас можете работать более чем с 1000 HomeKit устройствами или создавать свои HomeKit совместимые устройства!!!

  1. О HomeKit шлюзе RaZberry
  2. Установка ПО автоматизации Z-Way
  3. Создание датчика температуры из данных OpenWeather и Реле из GPIO Raspberry
  4. Приложение HomeKit для iOS из примеров Apple

О HomeKit шлюзе RaZberry


На данный момент на мировом рынке присутствует более 1000 Z-Wave устройств и все они совместимы друг с другом. Устройства могут работать, как друг с другом напрямую так и через центральный контроллер, который выполняет роль шлюза Z-Wave <=> TCP/IP. Обычно такие шлюзы служат для управления Z-Wave устройствами из Web интерфейса или мобильного приложения. Одним из самых популярных шлюзов является Z-Wave контроллер RaZberry 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, но это не беда, компания Apple охотно делится примерами, поэтому мы сами можем скачать исходники и скомпилировать себе приложение на iOS устройство. Исходники примера HomeKit берем здесь:
https://developer.apple.com/library/ios/samplecode/HomeKitCatalog/HomeKitCatalog.zip
Для сборки приложения требуется аккаунт разработчика, без него приложение сообщало об ошибке, что не может подключиться.
После запуска приложения находим наш контроллер, добавляем его в наш дом, и видим список наших устройств, которыми можем управлять.

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

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

ссылка на оригинал статьи http://geektimes.ru/post/248516/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *