Июл 01, 2016
Умный дом на Яблоках, Siri and Z-Wave
Дано: центр управления системами Z-Wave - контроллер Vera, OS X El Capitan или macOS Sierra, iOS 8.1 и выше.
Задача: заставить Siri управлять умным домом.
Странно что Vera ничего не знает про HomeKit, хотя, казалось бы... потребуется некий проксирующий элемент, чтобы эмулировать API яблочного хозяйства.
В качестве моста возьмём NodeJS сервер HomeBridge с плагином VeraLink.
Ok...
Запускаем Терминал.app и начинаем городить огород:)
Сейчас будет гайд для «маленьких».
Cкачиваем текущую версию Node.js (на данный момент - 6.2.2),
$ cd ~
$ curl -o ~/Downloads/node-v6.2.2.pkg https://nodejs.org/dist/v6.2.2/node-v6.2.2.pkg
устанавливаем,
$ sudo installer -pkg ~/Downloads/node-v6.2.2.pkg -target /
проверяем,
$ node -v
если в ответ получили: «v6.2.2», - значит всё хорошо, двигаемся дальше.
Через нодовский менеджер пакетов ставим Homebridge,
$ sudo npm install -g homebridge
плагин VeraLink,
$ sudo npm install -g homebridge-vera
создаём конфигурационный файл для Homebridge
$ mkdir ~/.homebridge
$ touch ~/.homebridge/config.json
и добавляем в него
$ nano ~/.homebridge/config.json
примерно такое содержание:
{
"bridge": {
"name": "Homebridge",
"pin": "000-00-000",
"username": "CC:22:3D:E3:CE:30"
},
"platforms": [
{
"platform": "Vera",
"name": "Vera",
"veraIP": "192.168.1.2",
"includesensor": true,
"ignorerooms": [],
"securitypoll": 2000,
"dimmertest": true
}
]
}
проверяем...
$ homebridge
Если нет никаких ошибок, в ответ должны увидеть пин-код, список комнат и список девайсов, которые прописаны в контроллере.
Ок. Глушим сервер - CTRL+C.
Осталось добавить всё это дело в «автозагрузку».
Создаём плист
$ nano ~/Library/LaunchAgents/com.homebridge.server.plist
с примерно таким содержанием:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
<key>Label</key>
<string>com.homebridge.server</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/homebridge</string>
<string>-I</string>
</array>
<key>EnvironmentVariables</key>
<dict>
<key>PATH</key>
<string>/usr/local/bin/:$PATH</string>
</dict>
</dict>
</plist>
Теперь сервер будет подниматься автоматически, при условии, что текущий пользователь залогинится после ребута системы.
Back-end готов. Запускаем Homebridge...
$ launchctl load ~/Library/LaunchAgents/com.homebridge.server.plist
Чтобы Siri начала мониторить сеть на предмет умных девайсов, в iOS 10 достаточно добавить устройство Homebridge в приложении Home. После чего подтянется всё, что привязано к контроллеру Vera. Для iOS 8 и 9 нужно скачать из App Store любой HomeKit Hub, например, Insteon+ и добавить устройство Homebridge через него.
З.Ы.
Для русской Siri имена комнат, устройств, сцен должны быть прописаны кириллицей, иначе, не поймёт.