Подключаем HomeBridge в HomeKit

Продолжаем серию статей по настройке вашего умного дома и настройку его работы в HomeKit с помощью Raspberry Pi и HomeBridge.

Введение

Вернемся к тому, что было раскрыто в статье раньше и поймем зачем нам вообще нужен HomeBridge, Raspberry Pi и вся эта затея.

Я думаю, мы не будем останавливаться в подробностях зачем нам нужен HomeKit, просто вспомним, что это:

  1. Удобно
  2. Красиво
  3. Единственный в мире голосовой помощник, который понимает русский язык, Siri

Но почему же просто не купить устройство с поддержкой HomeKit и не маяться с настройкой HomeBridge.

И здесь нам помогут несколько скриншотов:

Первый скриншот нам показывает количество всех устройств, официально продающихся на территории РФ. 8 устройств!!!

А теперь давайте посмотрим на второе изображение

Немного поясню. Слева представлен датчик открывания двери с поддержкой HomeKit (и его цена), справа представлен точно такой же датчик от известной нам компании, но без поддержки HomeKit (и его ЦЕНА). Шокирующая картина, не правда ли?

Конечно же, я буду немного лукавить если скажу, что мы получаем тот же датчик в 14 раз дешевле. Ведь для того, чтобы датчик справа стал работать с HomeKit нам потребуется шлюз от Xiaomi, сама Raspberry Pi и немного времени, что обойдется нам и все равно дешевле на 500-1000 рублей.

И в данном случае мы уже говорим об единоразовых затратах. Т.е. покупая всё больше и больше датчиков (а я думаю вряд ли у вас есть желание создавать ваш умный дом из одного датчика) экономия приближается всё ближе к цифрам, указанным выше.

Итого, почему нам нужен HomeBridge:

  1. Выбор устройств с поддержкой HomeKit очень мало
  2. Стоимость устройств относительно его собратьев различается на порядок (10+ раз)

Установка HomeBridge

Вернемся к настройке. Данная статья основана на том, что у вас уже имеется настроенная и подключенная к сети Raspberry Pi по итогам первой статьи.

Сам HomeBridge написан на JavaScript и требует для работы развернутой платформы Node.js. Установим ее.

Для начала идем на официальный сайт и выбираем ссылку на наиболее актуальную версию дистрибутива — нам нужен Linux Binaries (ARM)-ARMv7.

Копируем ссылку, она нам понадобится дальше.

После этого заходим на наш Raspberry и вводим следующие команды

wget https://nodejs.org/dist/v8.9.4/node-v8.9.4-linux-armv7l.tar.xz
tar xJvf node-v8.9.4-linux-armv7l.tar.xz
cd node-v8.9.4-linux-armv7l
sudo cp -R * /usr/local/

Обратите внимание, что на момент написания данной статьи мной использовалась ссылка на дистрибутив node-v8.9.4-linux-armv7l.tar.xz, соответственно в каждой последующей строке идет ссылка на этот дистрибутив. Объясню каждую строку:

  • мы скачиваем архив по ссылке
  • мы распаковываем данный архив
  • мы заходим в папку с этим архивом
  • мы копируем данные в папку /usr/local

Дальше нам необходимо установить дополнительные пакеты, которые будут необходимы для нашего «мостика»

sudo apt-get install libavahi-compat-libdnssd-dev

И устанавливаем сам HomeBridge

sudo npm install -g --unsafe-perm homebridge

После установки HomeBridge вы можете вбить соответствующую команду и убедиться в том, что он работает корректно.

homebridge

После запуска этой команды в итоге вы должны будете увидеть QR-код и цифровой код для ручного заведения устройства в HomeKit


После этого вы уже можете открывать приложение «Дом» на своем iOs устройстве и сканировать данный код.

Для этого необходимо:

  1. Зайти в приложение «Дом»
  2. Нажать в верхнем углу на «+» и выбрать «Добавить аксессуар»
  3. Навести камеру на QR
  4. Выбрать появившийся HomeBridge в устройствах

И всё. На этом наш «умный мостик» добавлен в HomeKit и после чего все наши датчики, которые мы будем добавлять в последующих инструкциях в наш так называемый «мостик» будут автоматически попадать в HomeKit. Магия…

Автозапуск HomeBrdige

Напоследок я бы хотел уделить еще пару строк тому, что наш HomeBridge это сервер, который должен быть постоянно запущен. И если наша малинка на какой-то момент остановит этот сервер (выключится питание, потребуется перезагрузка, выключат свет), то этот сервер должен опять подняться. Для этого нам необходимо добавить его в автозагрузку.

Здесь многие идут разными путями. Я опишу ниже тот путь, по которому пошел я — сделать это с помощью pm2. Устанавливаем pm2.

sudo npm -g install pm2

Запускаем homebridge при помощи pm2

pm2 start homebridge

Команда для автозапуска

pm2 startup

Дальше в консоли отобразится команда, которую необходимо выполнить, которая зависит от настроек вашей системы, например:

You have to run this command as root. Execute the following command:
sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u pi --hp /home/pi

Выполняем её, сохраняем и перезапускаем Raspberry pi

sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u pi --hp /home/pi
pm2 save
sudo reboot

Всё — теперь наш HomeBridge добавлен в автозапуск.
И с помощью простого набора команд мы теперь можем:

  • pm2 start homebridge — запускать homebridge
  • pm2 stop homebridge — останавливать
  • pm2 restart homebridge — перезапускать
  • pm2 logs homebridge — и смотреть логи

Ну и если у вас это единственный процесс, то можно везде заменить название сервиса на 0, соответственно команды будут иметь вид «pm2 start 0» и т.п.

Заключение

По итогам выполненных работ мы смогли поставить HomeBridge, смогли завести его в HomeKit, и настроили автозапуск. Дальше самое интересное и многообещающее — добавление наших устройств. В первую очередь все, как и я в том числе, начинают обычно играться с устройствами умного дома от Xiaomi. Про них и расскажем в следующих статьях.

Подписывайтесь на канал InDaHomeKit в Telegram и Яндекс.Дзен, чтобы у вас всегда было что почитать: новости мира умного дома, обзоры новых устройств, инструкции по подключению.

Приходите в наш чат в Telegram

Так же у нас отличные паблики VK, Facebook, Instagram и Twitter.

Подключаем HomeBridge в HomeKit: 10 комментариев

  1. В конце статья указано что можно заменить название сервиса на 0, допишите пожалуйста как именно это сделать. А вообще блог очень интересныц и познавательный, почитал вас и сам начал потихоньку делать свою квартиру умнее.

    1. После команды пишется либо название сервиса либо его id. Соответственно, можно свободно писать pm2 start 0. Дополнительных действий не потребуется.
      Для того, чтобы убедиться, что сервису присвоен id = 0 можно воспользоваться командой pm2 show homebridge.
      После чего будет выдано сообщение, частью которого будет надпись «Describing process with id 0 — name homebridge», которая говорит о том, что процессу присвоен id 0

  2. Спасибо, наконец-то хоть кто-то разъяснил на пальцах.

Обсуждение закрыто.