Продолжаем серию статей по настройке вашего умного дома и настройку его работы в HomeKit с помощью Raspberry Pi и HomeBridge.
Введение
Вернемся к тому, что было раскрыто в статье раньше и поймем зачем нам вообще нужен HomeBridge, Raspberry Pi и вся эта затея.
Я думаю, мы не будем останавливаться в подробностях зачем нам нужен HomeKit, просто вспомним, что это:
- Удобно
- Красиво
- Единственный в мире голосовой помощник, который понимает русский язык, Siri
Но почему же просто не купить устройство с поддержкой HomeKit и не маяться с настройкой HomeBridge.
И здесь нам помогут несколько скриншотов:
Первый скриншот нам показывает количество всех устройств, официально продающихся на территории РФ. 8 устройств!!!
А теперь давайте посмотрим на второе изображение
Немного поясню. Слева представлен датчик открывания двери с поддержкой HomeKit (и его цена), справа представлен точно такой же датчик от известной нам компании, но без поддержки HomeKit (и его ЦЕНА). Шокирующая картина, не правда ли?
Конечно же, я буду немного лукавить если скажу, что мы получаем тот же датчик в 14 раз дешевле. Ведь для того, чтобы датчик справа стал работать с HomeKit нам потребуется шлюз от Xiaomi, сама Raspberry Pi и немного времени, что обойдется нам и все равно дешевле на 500-1000 рублей.
И в данном случае мы уже говорим об единоразовых затратах. Т.е. покупая всё больше и больше датчиков (а я думаю вряд ли у вас есть желание создавать ваш умный дом из одного датчика) экономия приближается всё ближе к цифрам, указанным выше.
Итого, почему нам нужен HomeBridge:
- Выбор устройств с поддержкой HomeKit очень мало
- Стоимость устройств относительно его собратьев различается на порядок (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 устройстве и сканировать данный код.
Для этого необходимо:
- Зайти в приложение «Дом»
- Нажать в верхнем углу на «+» и выбрать «Добавить аксессуар»
- Навести камеру на QR
- Выбрать появившийся 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. Про них и расскажем в следующих статьях.