Тема интернета вещей сейчас как никогда наиболее популярна. Каждый день выходят новые интересные устройства способные общаться друг с другом через интернет. Пока различные производители договариваются о общем протоколе общения, Apple решила взять дела в свои руки и выпустила Framework HomeKit стандартизирующий способы управления устройствами различных производителей. В перспективе с помощью мобильного приложения HomeKit можно будет управлять различными лампочками, термостатами, розеточными модулями по wifi или bluetooth. Но это все в ближайшем будущем, хотя нет, постойте…
Вы уже сейчас можете работать более чем с 1000 HomeKit устройствами или создавать свои HomeKit совместимые устройства!!!
- О HomeKit шлюзе RaZberry
- Установка ПО автоматизации Z-Way
- Создание датчика температуры из данных OpenWeather и Реле из GPIO Raspberry
- Приложение 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 — MyTouchHome (на момент написания статьи), стоит 1.99$.
Для iOS разработчиков компания Apple охотно делится примерами, поэтому мы сами можем скачать исходники и скомпилировать себе приложение на iOS устройство. Исходники примера HomeKit берем здесь:
https://developer.apple.com/library/ios/samplecode/HomeKitCatalog/HomeKitCatalog.zip
Для сборки приложения требуется аккаунт разработчика, без него приложение сообщало об ошибке, что не может подключиться.
После запуска приложения находим наш контроллер, добавляем его в наш дом, и видим список наших устройств, которыми можем управлять.
Состояния устройств полностью синхронизированы, управлять можно и из Web панели и из приложения HomeKit.
Надеюсь в скором времени появится много функциональных приложений с поддержкой HomeKit, ну а мы уже готовы!
Автор: aivs