Как да свържете всяко смарт устройство към HomeKit (с Raspberry Pi)

Много интелигентни устройства пропускат поддръжката на Apple HomeKit и се интегрират само с Alexa, Google и други платформи. С този хак на Raspberry Pi обаче можете да добавите поддръжка за HomeKit към всяко смарт устройство със софтуера Homebridge с отворен код.

HomeKit за всяко смарт устройство

Ако сте ол-ин на HomeKit, един голям проблем е колко малко смарт устройства го поддържат. Например, единственото нещо, което задържа някои евтини интелигентни крушки, е липсата на поддръжка на HomeKit. Изборът на Amazon за „интелигентна крушка“ е a четири пакета от TECKIN, който към момента на писане струва около $40 – по-малко от една крушка LIFX.

Разбира се, те не са толкова първокласни като LIFX; цветовете не са толкова живи и излъчват звуково бръмчене в банята, но за 10 долара за поп, те са доста ненадмината стойност.

Основният проблем обаче е, че те нямат поддръжка на HomeKit. Те не са съвсем тъпи – работят с Google Home, Alexa, IFTTT и приложението на производителя. Подходящи са за някой, който има само интелигентни крушки TECKIN.

Въпреки това, тъй като нямате достъп до тях от HomeKit, не можете да ги контролирате от приложението Home, джаджа в Control Center или Siri. Също така не можете да ги включвате в сцени с крушки от други марки или да ги използвате в Automations. Ако вече сте инвестирали в HomeKit, това най-вероятно е нарушение на сделката.

Запознайте се с Homebridge

За щастие има хак, който прави тези конкретни крушки много по-полезни. HomeKit API позволява устройства, наречени мостове, напр този от Philips Hue, за свързване на детски устройства, които работят по други протоколи. Просто добавяте моста като устройство в HomeKit и той регистрира всяка свързана към него светлина в HomeKit. Всеки път, когато направите заявка за актуализиране на светлина, телефонът ви говори с моста, а мостът говори със светлината.

Така че мостът просто предава информация от един API към друг. Тъй като можете да управлявате крушките TECKIN през интернет, е напълно възможно да ги свържете към HomeKit само със софтуер – не се изисква собствен хардуер.

  Какво точно се случва, когато включите компютъра си?

Ако имате Raspberry Pi наоколо ($5 Пи нула е добре), можете да го настроите като мост с рамка наречена Хоумбридж. Това леко приложение NodeJS емулира HomeKit API и препраща заявки към вашите интелигентни устройства, различни от HomeKit.

По принцип го стартирате на Pi и той добавя всяко „тъпо“ устройство към приложението Home. Когато се опитате да управлявате крушката чрез приложението Home или Siri, Homebridge говори с устройствата вместо вас. След като го настроите, все едно устройството имаше поддръжка на HomeKit на първо място.

Това изисква устройството да работи с Homebridge по всяко време, така че това не е нещо, което бихте инсталирали на вашия лаптоп. Raspberry Pi е идеален, но ако имате старо устройство, което можете да пренастроите като сървър или десктоп, който винаги работи, можете да го инсталирате там.

Homebridge е рамка и можете да я разширите с плъгини. Той има доста голяма подкрепа от общността, така че има голям шанс всяко дадено смарт устройство вероятно да има добавка за 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 за информация как да го инсталирате за вашата конкретна ОС.

  Импортирайте своя речник на MS Office на различен компютър или нова инсталация

Ако сте на Linux, вие също трябва да инсталирате някои зависимости, както е показано по-долу:

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

След това можете да инсталирате Homebridge глобално чрез npm, както е показано по-долу:

sudo npm install -g --unsafe-perm homebridge

Вие също искате да инсталирате нужните приставки за марката, тъй като 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 с порт по подразбиране, име, ПИН и диапазон от портове, достъпни за разпределяне на други устройства.

Вътре в празния масив от платформи поставяте конфигурацията за всеки плъгин. Трябва да можете да намерите инструкции и примери за това на страницата на GitHub на всеки плъгин.

В примера по-долу приставката homebridge-tuya-web за крушките TECKIN иска да знае моето потребителско име и парола, за да се свърже с API за приложението на крушката и няколко други неща:

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

След като всичко това е конфигурирано, Homebridge трябва да е готов за работа. Стартирайте го отново и терминалът ви трябва да покаже огромен QR код, който може да ви принуди да намалите мащаба. Сканирайте това с приложението Home, за да го добавите и всички свързани устройства към HomeKit.

  Плъзнете наляво, надясно или отдолу, за да получите достъп до приложения и контакти Snype

Homebridge зарежда вашите плъгини и трябва да регистрира съобщение на екрана за всяко устройство, което намира. Трябва да ги видите всички в HomeKit, след като бъдат добавени, и те трябва да са напълно функционални.

Забелязах леко забавяне в сравнение с моите LIFX крушки. Това вероятно е така, защото крушките се контролират по-скоро чрез API, отколкото директно. Отначало крушките също не показваха правилно някои бели и топли бели, но след малко настройване успях да настроя правилните сцени.

Винаги можете да конфигурирате устройствата в техните собствени приложения, да изчакате приложението Home да се актуализира и след това да зададете сцената в HomeKit с предварително направената конфигурация.

Ако трябва да добавите отново Homebridge, ще искате да изтриете папката persist/ в директорията config и след това да премахнете моста от HomeKit от настройките на всяка свързана крушка в раздела „Мост“.

Добавяне на Homebridge като услуга

Ако искате Homebridge да работи през цялото време, вероятно ще искате да го конфигурирате да се рестартира, ако се срине или ако вашият Raspberry Pi се рестартира. Можете да направите това чрез Unix услуга. Настройте това, след като сте потвърдили, че Homebridge работи по предназначение.

Първо добавете нов потребител на услугата, наречен homebridge:

sudo useradd -M --system homebridge

Задайте парола:

sudo passwd homebridge

След това ще трябва да преместите конфигурацията на 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