Cum să conectați orice dispozitiv inteligent la HomeKit (cu un Raspberry Pi)

Multe dispozitive inteligente ignoră suportul Apple HomeKit și se integrează numai cu Alexa, Google și alte platforme. Cu acest hack Raspberry Pi, totuși, puteți adăuga suport HomeKit la orice dispozitiv inteligent cu software-ul open-source Homebridge.

HomeKit pentru orice dispozitiv inteligent

Dacă sunteți all-in pe HomeKit, o mare problemă este cât de puține dispozitive inteligente îl acceptă. De exemplu, singurul lucru care împiedică unele becuri inteligente ieftine este lipsa lor de suport HomeKit. Alegerea Amazon pentru un „bec inteligent” este a pachet de patru de la TECKIN, care, la această scriere, costă în jur de 40 USD — mai puțin decât un singur bec LIFX.

Sigur, nu sunt la fel de premium ca LIFX; culorile nu sunt la fel de vibrante și emit un bâzâit sonor în baie, dar pentru 10 USD un pop, au o valoare destul de imbatabilă.

Problema principală este însă că nu au suport pentru HomeKit. Nu sunt complet prosti – funcționează cu Google Home, Alexa, IFTTT și aplicația producătorului. Sunt bine pentru cineva care are doar becuri inteligente TECKIN.

Cu toate acestea, deoarece nu le puteți accesa din HomeKit, nu le puteți controla din aplicația Home, widget-ul din Centrul de control sau Siri. De asemenea, nu le puteți include în scene cu becuri de la alte mărci sau le puteți folosi în Automatizări. Dacă ați investit deja în HomeKit, acesta este cel mai probabil un dealbreaker.

Faceți cunoștință cu Homebridge

Din fericire, există un hack care face ca aceste becuri specifice să fie mult mai utile. API-ul HomeKit permite dispozitive numite bridge-uri, cum ar fi acesta de la Philips Hue, pentru a conecta dispozitive copii care funcționează pe alte protocoale. Pur și simplu adăugați puntea ca dispozitiv în HomeKit și înregistrează fiecare lumină conectată la acesta în HomeKit. Ori de câte ori solicitați actualizarea unei lumini, telefonul dvs. vorbește cu bridge-ul, iar bridge-ul vorbește cu lumina.

  12 cele mai bune programatoare de postări LinkedIn pentru postări perfect sincronizate

Deci, un bridge doar transmite informații de la un API la altul. Deoarece puteți controla becurile TECKIN prin internet, este complet posibil să le conectați la HomeKit doar cu software – nu este necesar niciun hardware proprietar.

Dacă aveți un Raspberry Pi în jur (un 5 USD Pi Zero este bine), îl puteți configura ca o punte cu un cadru numit Homebridge. Această aplicație ușoară, NodeJS, emulează API-ul HomeKit și trimite solicitările către dispozitivele dvs. inteligente care nu sunt HomeKit.

Practic, îl rulezi pe Pi și adaugă fiecare dispozitiv „prost” la aplicația Home. Când încercați să controlați becul prin aplicația Home sau Siri, Homebridge vorbește cu dispozitivele în locul dvs. După ce l-ați configurat, este ca și cum dispozitivul a avut suport HomeKit în primul rând.

Acest lucru necesită ca dispozitivul să ruleze Homebridge în orice moment, așa că nu este ceva pe care l-ați instala pe laptop. Un Raspberry Pi este ideal, dar dacă aveți un dispozitiv vechi pe care îl puteți reutiliza ca server sau desktop care rulează mereu, îl puteți instala acolo.

Homebridge este un cadru și îl puteți extinde cu plug-in-uri. Are o comunitate destul de mare, așa că există șanse mari ca orice dispozitiv inteligent să aibă probabil un plug-in Homebridge pentru a adăuga suport pentru el. Dacă dispozitivul dvs. nu are un plug-in, dar dispozitivul dvs. inteligent are un API și sunteți pasionat de tehnologie, puteți scrie unul singur.

Pentru majoritatea oamenilor, totuși, configurarea este doar instalarea Homebridge și plug-in-ul de marcă pentru dispozitiv, împreună cu puțină configurare. Dacă puteți folosi linia de comandă și aveți puțin timp, este destul de ușor.

Instalarea și configurarea Homebridge

Homebridge este o aplicație NodeJS, așa că trebuie să instalați node și npm pentru a o folosi. Dacă mașina dvs. rulează Linux, probabil că o puteți obține de la managerul de pachete.

Pe Ubuntu, trebuie să tastați următoarele pentru a configura manual repo-ul Node și apoi să instalați nodejs:

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

În caz contrar, vă puteți consulta Pagina de descărcare a lui Node pentru informații despre cum să îl instalați pentru sistemul dvs. de operare.

  Cum se configurează Quassel Core pe serverul Ubuntu

Dacă sunteți pe Linux, trebuie să instalați și unele dependențe, după cum se arată mai jos:

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

După aceea, puteți instala Homebridge la nivel global prin npm, după cum se arată mai jos:

sudo npm install -g --unsafe-perm homebridge

De asemenea, doriți să instalați pluginurile de marcă de care aveți nevoie, deoarece Homebridge este doar un cadru. Pentru becurile TECKIN, de exemplu, plug-in-ul este homebridge-tuya-web, care se instalează și la nivel global.

Ai tasta următoarele:

npm i homebridge-tuya-web -g

După ce totul este instalat, poți folosi efectiv lucrul! Tastați următoarele pentru a rula Homebridge o dată și inițializați totul:

homebridge

Se va plânge de o lipsă de configurare, pe care trebuie să o creați. Directorul implicit este ~/.homebridge/, dar puteți folosi parametrul -U dacă doriți să-l mutați.

Introduceți următoarele pentru a crea un nou fișier de configurare JSON în acest folder:

nano ~/.homebridge/config.json

Indiferent de pluginurile pe care le utilizați, aveți nevoie de următoarea configurație de bază:

{
  "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": [

  ]
}

Aceasta configurează Homebridge cu un port implicit, un nume, un PIN și un interval de porturi disponibile pentru alocare altor dispozitive.

În interiorul matricei de platforme goale, plasați configurația pentru fiecare plug-in. Ar trebui să puteți găsi instrucțiuni și exemple în acest sens pe pagina GitHub a fiecărui plug-in.

În exemplul de mai jos, plug-in-ul homebridge-tuya-web pentru becurile TECKIN vrea să-mi știe numele de utilizator și parola pentru a se conecta la API-ul pentru aplicația becului și alte câteva lucruri:

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

Odată ce totul este configurat, Homebridge ar trebui să fie gata de plecare. Rulați-l din nou, iar terminalul dvs. ar trebui să afișeze un cod QR gigant care vă poate obliga să micșorați. Scanați aceasta cu aplicația Home pentru a o adăuga și toate dispozitivele conectate la HomeKit.

  Cele mai bune 11 aplicații Apple Pencil pentru a vă elibera creativitatea pe iPad și Mac

Homebridge vă încarcă pluginurile și ar trebui să înregistreze un mesaj pe ecran pentru fiecare dispozitiv pe care îl găsește. Ar trebui să le vedeți pe toate în HomeKit după ce sunt adăugate și ar trebui să fie complet funcționale.

Am observat o ușoară întârziere în comparație cu becurile mele LIFX. Acest lucru se datorează probabil că becurile sunt controlate printr-un API, mai degrabă decât direct. La început, nici becurile nu afișau corect niște alb și alb cald, dar după câteva modificări, am reușit să configurez scenele potrivite.

Puteți configura oricând dispozitivele în propriile aplicații, așteptați actualizarea aplicației Home și apoi setați scena în HomeKit cu configurația prefabricată.

Dacă trebuie să adăugați din nou Homebridge, veți dori să ștergeți folderul persist/ din directorul de configurare, apoi să eliminați puntea din HomeKit din setările oricărui bec conectat din fila „Pont”.

Adăugarea Homebridge ca serviciu

Dacă doriți ca Homebridge să funcționeze tot timpul, probabil că veți dori să îl configurați să repornească dacă se blochează sau dacă Raspberry Pi repornește. Puteți face acest lucru printr-un serviciu Unix. Configurați acest lucru după ce ați verificat că Homebridge funcționează conform intenției.

Mai întâi, adăugați un nou utilizator de serviciu, numit homebridge:

sudo useradd -M --system homebridge

Setați o parolă:

sudo passwd homebridge

În continuare, va trebui să mutați configurația homebridge în afara directorului personal de acasă. /var/lib/homebridge/ ar trebui să fie bine:

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

Asigurați-vă că persoana care folosește homebridge deține acel director și toate subfolderele:

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

După ce ați terminat, puteți crea serviciul. Pentru a face acest lucru, creați un fișier nou numit homebridge.service în /etc/systemd/system/:

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

Și apoi lipiți următoarea configurație:

[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

Reîncărcați demonul de servicii pentru a-l actualiza cu modificările dvs.:

sudo systemctl daemon-reload

Acum, ar trebui să puteți activa serviciul (setarea acestuia să ruleze la pornire):

sudo systemctl enable homebridge

Și începe:

sudo systemctl start homebridge

Dacă trebuie să depanați erorile care apar din configurația serviciului, puteți vizualiza jurnalele pentru serviciu tastând:

journalctl -fn 50 -u homebridge