Як підключити будь-який розумний пристрій до HomeKit (за допомогою Raspberry Pi)

Багато сучасних смарт-пристроїв обмежуються інтеграцією з платформами, такими як Alexa та Google, не підтримуючи Apple HomeKit. Проте, завдяки хитромудрому рішенню з використанням Raspberry Pi, ви можете розширити можливості своїх пристроїв, додавши підтримку HomeKit за допомогою відкритого програмного забезпечення Homebridge.

HomeKit для будь-якого пристрою

Одним із головних викликів для прихильників екосистеми HomeKit є обмежена кількість сумісних пристроїв. Наприклад, відсутність підтримки HomeKit часто є єдиним бар’єром для використання деяких доступних смарт-лампочок. Наприклад, набір з чотирьох лампочок від TECKIN коштує значно менше, ніж одна лампочка преміум-класу, така як LIFX.

Хоча лампочки TECKIN не можуть зрівнятися з преміальними аналогами за якістю кольорів та можуть видавати невеликий шум, їх ціна в 10 доларів за штуку робить їх досить привабливими. Основною проблемою є відсутність підтримки HomeKit. Ці лампи працюють з Google Home, Alexa, IFTTT та фірмовим додатком, але не сумісні з HomeKit, що обмежує можливості їх інтеграції. Ви не зможете керувати ними через додаток Home, віджет в Центрі керування чи Siri, а також не зможете використовувати їх у сценах та автоматизаціях разом з іншими пристроями HomeKit.

Що таке Homebridge?

На щастя, існує рішення, яке дозволяє зробити ці лампочки набагато кориснішими. API HomeKit дозволяє використовувати так звані “мости”, такі як міст від Philips Hue, для підключення пристроїв, які працюють на інших протоколах. Ви додаєте міст до HomeKit, і він реєструє всі підключені до нього пристрої. Коли ви хочете змінити освітлення, ваш телефон спілкується з мостом, а міст – з лампочками.

По суті, міст просто передає дані між різними API. Оскільки лампочками TECKIN можна керувати через Інтернет, їх можна підключити до HomeKit за допомогою спеціального програмного забезпечення, без необхідності у фізичному обладнанні.

Якщо у вас є Raspberry Pi (навіть Pi Zero за 5 доларів підійде), ви можете перетворити його на міст, використовуючи фреймворк Homebridge. Ця програма на NodeJS емулює API HomeKit і пересилає команди на ваші пристрої, які не підтримують HomeKit. Ви запускаєте її на Pi, і вона додає ваші “нерозумні” пристрої в додаток Home. Коли ви хочете керувати лампочкою, Homebridge робить це за вас. Після налаштування пристрій наче має вбудовану підтримку HomeKit.

Для цього пристрій з Homebridge повинен постійно працювати, тому не встановлюйте його на ноутбук. Raspberry Pi – ідеальний вибір, але можна також використовувати старий комп’ютер, який працює постійно.

Homebridge є фреймворком, можливості якого можна розширити за допомогою плагінів. Завдяки великій спільноті, ймовірно, вже існує плагін для вашого смарт-пристрою. Якщо плагіна немає, але ваш пристрій має API, ви можете написати його самостійно. Але для більшості користувачів достатньо встановити Homebridge, плагін для пристрою і виконати невелике налаштування. Якщо ви вмієте працювати з командним рядком, це нескладно.

Встановлення та налаштування Homebridge

Homebridge – це програма NodeJS, тому спочатку потрібно встановити Node та npm. Якщо у вас Linux, ви можете встановити їх через менеджер пакетів.

Для Ubuntu потрібно спочатку налаштувати репозиторій Node, а потім встановити nodejs:

curl -sL https://deb.nodesource.com/setup_13.x | sudo -E bash -
sudo apt-get install -y nodejs

Інструкції з встановлення для інших ОС можна знайти на сторінці завантаження Node.

Якщо ви використовуєте Linux, вам також потрібно встановити залежності:

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

Після цього встановіть Homebridge глобально через npm:

sudo npm install -g --unsafe-perm homebridge

Також потрібно встановити плагіни для потрібних вам пристроїв. Наприклад, для ламп TECKIN є плагін homebridge-tuya-web:

npm i homebridge-tuya-web -g

Після встановлення, запустіть Homebridge для ініціалізації:

homebridge

Система повідомить про відсутність конфігурації, яку потрібно створити. За замовчуванням конфігурація зберігається у ~/.homebridge/, але можна змінити шлях, використовуючи параметр -U.

Створіть файл конфігурації JSON:

nano ~/.homebridge/config.json

Незалежно від плагінів, вам потрібна базова конфігурація:

{
  "bridge": {
    "name": "Homebridge",
    "username": "CC:22:3D:E3:CE:30",
    "port": 51826,
    "pin": "031-45-154"
  },

  "description": "Custom HomeBridge Server",

  "ports": {
    "start": 52100,
    "end": 52150,
  },

  "platforms": [

  ]
}

Тут налаштовується Homebridge з портами, назвою, PIN-кодом та діапазоном портів для інших пристроїв.

Всередині порожнього масиву “platforms” потрібно розмістити конфігурації для плагінів. Інструкції та приклади можна знайти на сторінці GitHub кожного плагіна.

Наприклад, плагін homebridge-tuya-web для лампочок TECKIN потребує вашого логіну та пароля від програми, а також інші дані:

  "platforms": [
     {
       "platform": "TuyaWebPlatform",
       "name": "TuyaWebPlatform",
       "options":
         {
           "username": "username",
           "password": "password",
           "countryCode": "1",
           "platform": "smart_life",
           "pollingInterval": 10
         }
     }
   ]

Після цього Homebridge має бути готовий до роботи. Знову запустіть його, і в терміналі з’явиться QR-код. Скануйте його через додаток Home для підключення Homebridge та всіх пристроїв до HomeKit.

Homebridge завантажить плагіни та відобразить повідомлення про знайдені пристрої. Ви повинні побачити їх у HomeKit, і вони мають повністю працювати.

Можлива невелика затримка у порівнянні з пристроями LIFX, оскільки керування відбувається через API, а не безпосередньо. Також може знадобитися налаштування кольорів для правильного відображення.

Ви можете налаштувати пристрої у їхніх власних додатках, а потім налаштувати сцени в HomeKit.

Якщо вам потрібно перевстановити Homebridge, видаліть папку persist/ у каталозі конфігурації та видаліть міст з HomeKit.

Запуск Homebridge як служби

Щоб Homebridge постійно працював, налаштуйте його як службу, яка автоматично запускається після збою або перезавантаження Raspberry Pi. Зробіть це після того, як переконаєтесь у правильній роботі Homebridge.

Спочатку додайте нового користувача для служби:

sudo useradd -M --system homebridge

Встановіть пароль:

sudo passwd homebridge

Перемістіть конфігурацію з вашого домашнього каталогу, наприклад, у /var/lib/homebridge/:

sudo mv ~/.homebridge /var/lib/homebridge/

Переконайтеся, що користувач Homebridge має права на цей каталог:

sudo chown -R homebridge /var/lib/homebridge/

Створіть файл homebridge.service в /etc/systemd/system/:

sudo nano /etc/systemd/system/homebridge.service

Вставте конфігурацію:

[Unit]
Description=Homebridge service
After=syslog.target network-online.target

[Service]
Type=simple
User=homebridge
ExecStart=/usr/bin/homebridge -U /var/lib/homebridge
Restart=on-failure
RestartSec=10
KillMode=process

[Install]
WantedBy=multi-user.target

Оновіть демон служб:

sudo systemctl daemon-reload

Увімкніть службу для автоматичного запуску:

sudo systemctl enable homebridge

Запустіть службу:

sudo systemctl start homebridge

Для перегляду логів використовуйте:

journalctl -fn 50 -u homebridge