Подключаем HomeBridge в HomeKit
Продолжаем серию статей по настройке вашего умного дома и настройку его работы в 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 и вводим следующие команды
Обратите внимание, что на момент написания данной статьи мной использовалась ссылка на дистрибутив node-v8.9.4-linux-armv7l.tar.xz, соответственно в каждой последующей строке идет ссылка на этот дистрибутив. Объясню каждую строку:
- мы скачиваем архив по ссылке
- мы распаковываем данный архив
- мы заходим в папку с этим архивом
- мы копируем данные в папку /usr/local
Дальше нам необходимо установить дополнительные пакеты, которые будут необходимы для нашего «мостика»
И устанавливаем сам HomeBridge
После установки HomeBridge вы можете вбить соответствующую команду и убедиться в том, что он работает корректно.
После запуска этой команды в итоге вы должны будете увидеть QR-код и цифровой код для ручного заведения устройства в HomeKit
После этого вы уже можете открывать приложение «Дом» на своем iOs устройстве и сканировать данный код.
Для этого необходимо:
- Зайти в приложение «Дом»
- Нажать в верхнем углу на «+» и выбрать «Добавить аксессуар»
- Навести камеру на QR
- Выбрать появившийся HomeBridge в устройствах
И всё. На этом наш «умный мостик» добавлен в HomeKit и после чего все наши датчики, которые мы будем добавлять в последующих инструкциях в наш так называемый «мостик» будут автоматически попадать в HomeKit. Магия…
Автозапуск HomeBrdige
Напоследок я бы хотел уделить еще пару строк тому, что наш HomeBridge это сервер, который должен быть постоянно запущен. И если наша малинка на какой-то момент остановит этот сервер (выключится питание, потребуется перезагрузка, выключат свет), то этот сервер должен опять подняться. Для этого нам необходимо добавить его в автозагрузку.
Здесь многие идут разными путями. Я опишу ниже тот путь, по которому пошел я — сделать это с помощью pm2. Устанавливаем pm2.
Запускаем homebridge при помощи pm2
Команда для автозапуска
Дальше в консоли отобразится команда, которую необходимо выполнить, которая зависит от настроек вашей системы, например:
Выполняем её, сохраняем и перезапускаем Raspberry pi
Всё — теперь наш HomeBridge добавлен в автозапуск.
И с помощью простого набора команд мы теперь можем:
- pm2 start homebridge — запускать homebridge
- pm2 stop homebridge — останавливать
- pm2 restart homebridge — перезапускать
- pm2 logs homebridge — и смотреть логи
Ну и если у вас это единственный процесс, то можно везде заменить название сервиса на 0, соответственно команды будут иметь вид «pm2 start 0» и т.п.
Заключение
По итогам выполненных работ мы смогли поставить HomeBridge, смогли завести его в HomeKit, и настроили автозапуск. Дальше самое интересное и многообещающее — добавление наших устройств. В первую очередь все, как и я в том числе, начинают обычно играться с устройствами умного дома от Xiaomi. Про них и расскажем в следующих статьях.
Как подключить любые гаджеты в умный дом Apple HomeKit через Raspberry Pi
Продолжаем строить умный дом вместе.
После того, как мы создали специальный хаб HomeBridge на основе компьютера Raspberry Pi, пришло время подключать умные устройства с его помощью к HomeKit.
Для начала потребуется произвести еще несколько манипуляций с нашим мостом, чтобы потом можно было легко решать возникающие проблемы.
Как настроить SSH на Raspberry Pi
SSH — это сетевой протокол для удаленного управления системой. С его помощью больше не потребуется подключать наш хаб к монитору или телевизору для внесения изменений или конфигурации ПО.
Не пренебрегайте данным шагом, ведь в процессе дальнейшей настройки вы неоднократно столкнетесь с неработоспособностью плагинов, неверно составленным файлом конфигурации, другими сбоями и проблемами, которые удобнее решать удаленно.
1. На Raspberry Pi необходимо перейти в консоль и ввести команду:
sudo raspi-config
2. В открывшемся меню конфигурации следует перейти в раздел Advanced Options.
3. Находим пункт SSH и активируем его.
4. Проверить успешную активацию протокола можно следующей командой в терминале:
sudo service ssh status
5. Для доступа по SSH используются такие учетные данные:
логин: pi
пароль: raspberry
6. В настройках Raspberry можно изменить эти данные.
Самый простой способ включения SSH:
Можно вообще обойтись без клавиатуры и монитора для Raspberry, но к сети её нужно подключить через кабель, а не по Wi-Fi.
1. На карте памяти с записанным образом для Raspberry Pi находим раздел Boot.
2. Создаем в ней файл ssh без расширения.
3. Устанавливаем карту в Raspberri и после загрузки SSH будет подключен.
Как подключиться по SSH
После того, как SSH подключение настроено, к «малинке» можно подключаться с других устройств внутри локальной сети. Монитор и клавиатура для Rasperry больше не потребуется.
Нужно лишь узнать IP-адрес устройства в сети. Сделать это можно из графического интерфейса микрокомпьютера, через приложение своего роутера, его веб-интерфейс или любым другим доступным способом.
Для получения доступа по SSH на Windows делаем следующее:
1. Устанавливаем приложение PuTTY.
2. В приложении на вкладке Session указываем IP-адрес Raspberry и порт 22.
3. Подключаемся, используя установленный логин и пароль для авторизации.
Для получения доступа по SSH на macOS делаем следующее:
1. Запускаем приложение Терминал.
2. Вводим команду (используя IP-адрес своей «малинки»):
ssh [email protected]
3. Подтверждаем желание подключиться и вводим установленный пароль.
Для получения доступа по SSH на iOS делаем следующее:
1. Устанавливаем приложение Termius – SSH client из App Store.
2. Создаем новое подключение, указывая IP-адрес, порт, логин и пароль.
3. Подключаемся по настроенному соединению.
Теперь можно удаленно посылать команды «малинке», перезагружать её и менять файл конфигурации HomeBridge.
Запоминаем нужные команды:
sudo reboot – для перезагрузки Raspberry (SSH-соединение будет прервано)
sudo -n systemctl restart homebridge – для перезапуска сервера HomeBridge
nano
/.homebridge/config.json – для открытия файла конфигурации HomeBridge
Как подключить умные устройства
Для работы умного девайса с HomeKit через прослойку в виде HomeBridge требуется две вещи:
- установленный плагин
- данные об устройстве в файле конфигурации
Искать плагин можно самостоятельно. На просторах GitHub можно найти файлы практически для любого умного устройства.
Просто впишите в Google: mi air purifier 2 homebridge (для очистителя воздуха Xiaomi Mi Air Purifier 2) и по одной из первых ссылок найдете нужный плагин.
Альтернативным способом поиска плагинов является специальный раздел в веб-интерфейсе HomeBridge. Если устанавливали систему по нашей инструкции, веб-интерфейс уже должен работать. В противном случае ищите данные об установке веб-интерфейса в этой статье.
На специальной вкладке Плагины можно осуществить поиск нужного дополнения, аналогично поиску в Google. Вписываем название девайса (с китайскими гаджетами от всевозможных суб-брендов придется повозиться) и выбираем один из предложенных плагинов.
Установка нужного плагина
На GitHub странице плагина или на другом сайте, где было найдено дополнение, первым делом описывается процесс установки.
Для установки непосредственно на Raspberry Pi или через SSH используется приведенная в описании плагина команда такого вида:
sudo npm install -g homebridge-mi-acpartner
Для установки через веб-интерфейс достаточно нажать кнопку Install возле найденного в поиске дополнения.
Изменение файла конфигурации
Файл конфигурации тоже может быть изменен на самом устройстве с сервисом HomeBridge, через SSH или через веб-интерфейс. В первом случае редактируем файл config.json командой nano
/.homebridge/config.json, а во втором переходим в визуальный редактор на вкладке веб-интерфейс.
На странице с описанием плагина находим пример конфигурации:
«platforms»: [ <
«platform»: «XiaoMiAcPartner»,
«devices»: <
«192.168.31.120»:»your_token_here»
>]
Нужно интегрировать данный код в уже имеющуюся конфигурацию.
В большинстве случаев плагины интегрируются в разделы “platforms” или “accessories”. Особо сложные дополнения могут иметь части кода в обоих разделах.
Тем, кто сталкивался с программированием, не составит труда корректно внести нужные части кода, другим рекомендуем внимательно методом проб и ошибок научиться редактировать файл конфигурации. Без этого все равно ничего не получится.
Заполнение параметров устройства
Обратите внимание, что в большинстве случаев требуется указать два параметра подключаемого девайса: IP-адрес и токен. С поиском адреса в домашней сети проблем не возникнет (ищите через приложение роутера или его веб-интерфейс), а вот с токеном не так все просто.
Уникальный идентификатор умных устройств можно получить разными способами. Самый простой – воспользоваться модифицированным приложением Mi Home на Android. Если смартфона или планшета с нужной ОС на руках нет – устанавливаем эмулятор Android по инструкции.
1. Устанавливаем на Android модифицированное приложение Mi Home.
2. Авторизуемся в своей учетной записи с указанием правильного региона (в большинстве случаев это Материковый Китай).
3. Находим нужный девайс и в разделе Настройки – Общие параметры – Информация о сети видим поле с нужным нам токеном.
Здесь же можно найти IP-адрес.
Для устройств других производителей придется использовать другие способы добычи токенов.
Теперь можно заполнить данные девайса в конфигурации, сохранить файл и перезагрузить HomeBridge.
Если все было сделано верно, устройство появится в приложении Дом на iPhone и им можно будет управлять, как нативным девайсом с поддержкой HomeKit.
Проблемы и их решение
Если фай конфигурации был изменен с ошибками, то HomeBridge повторно не запустится. Об этом вы поймете по зависшему веб-интерфейсу или по «отвалившимся» устройствам в приложении Дом.
Не стоит паниковать! Порядок действий следующий:
1. Подключаемся к Raspberry Pi по SSH.
2. Открываем файл config.json для редактирования.
3. Пытаемся найти ошибку или просто удаляем последний внесенный блок кода.
4. Сохраняем файл (Comman+X при работе в терминале или по SSH).
5. Перезапускаем HomeBridge командой: sudo -n systemctl restart homebridge.
Вот так происходит добавление всех умных устройств в HomeKit через HomeBridge. Не забывайте периодически сохранять удачные версии конфигурации.