1 заметка с тегомHomeKit

Умный дом на Яблоках, Siri and Z-Wave

Умный дом на Яблоках: 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 имена комнат, устройств, сцен должны быть прописаны кириллицей, иначе, не поймёт.

Apple HomeKit