Cum să conectați orice dispozitiv inteligent la HomeKit (cu un Raspberry Pi)
Publicat: 2022-01-29Multe 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 un pachet de patru de la TECKIN, care, la momentul scrierii, 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 audibil î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 dispozitivelor numite punți, precum acesta de la Philips Hue, să conecteze 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.
Deci, un bridge doar transmite informații de la un API la altul. Deoarece puteți controla becurile TECKIN prin internet, este posibil să le conectați la HomeKit doar cu ajutorul software-ului - nu este necesar niciun hardware proprietar.
Dacă aveți un Raspberry Pi în jur (un Pi Zero de 5 USD 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 Node, apoi instalați nodejs
:
curl -sL https://deb.nodesource.com/setup_13.x | sudo -E bash - sudo apt-get install -y nodejs
În caz contrar, puteți consulta pagina de descărcare a Node pentru informații despre cum să o instalați pentru sistemul dvs. de operare.
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", „nume utilizator”: „CC:22:3D:E3:CE:30”, „port”: 51826, "pin": "031-45-154" }, "description": "Server HomeBridge personalizat", „porturi”: { „pornire”: 52100, „sfârșit”: 52150, }, „platforme”: [ ] }
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 platforms
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 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:
„platforme”: [ { "platform": "TuyaWebPlatform", "name": "TuyaWebPlatform", "Opțiuni": { "nume utilizator": "nume utilizator", "parolă": "parolă", "countryCode": "1", "platform": "smart_life", „interval de sondaj”: 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.
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 așteptărilor.
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:
[Unitate] Descriere=Serviciul Homebridge După=syslog.target network-online.target [Serviciu] Tip=simplu Utilizator=homebridge ExecStart=/usr/bin/homebridge -U /var/lib/homebridge Restart=la eșec RestartSec=10 KillMode=proces [Instalare] 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