Veel slimme apparaten slaan Apple HomeKit-ondersteuning over en integreren alleen met Alexa, Google en andere platforms. Met deze Raspberry Pi-hack kun je HomeKit-ondersteuning echter toevoegen aan elk slim apparaat met de open-source Homebridge-software.
HomeKit voor elk smartapparaat
Als je all-in bent op HomeKit, is een groot probleem hoe weinig slimme apparaten dit ondersteunen. Het enige dat sommige goedkope slimme gloeilampen bijvoorbeeld tegenhoudt, is hun gebrek aan HomeKit-ondersteuning. Amazons keuze voor een ‘slimme gloeilamp’ is een pakket van vier van TECKIN, dat op dit moment ongeveer $ 40 kost – minder dan een enkele LIFX-lamp.
Natuurlijk, ze zijn niet zo premium als LIFX; de kleuren zijn niet zo levendig en ze stralen een hoorbare zoem uit in de badkamer, maar voor $ 10 per pop zijn ze een vrij onverslaanbare waarde.
Het belangrijkste probleem is echter dat ze geen HomeKit-ondersteuning hebben. Ze zijn niet helemaal dom: ze werken met Google Home, Alexa, IFTTT en de app van de fabrikant. Ze zijn prima voor iemand die alleen slimme TECKIN-lampen heeft.
Omdat u er echter geen toegang toe hebt vanuit HomeKit, kunt u ze niet bedienen vanuit de Home-app, de widget in het Control Center of Siri. Je kunt ze ook niet opnemen in scènes met lampen van andere merken of ze gebruiken in automatiseringen. Als je al in HomeKit hebt geïnvesteerd, is dit waarschijnlijk een dealbreaker.
Maak kennis met Homebridge
Gelukkig is er een hack die deze specifieke lampen veel nuttiger maakt. Met de HomeKit API kunnen apparaten die bridges worden genoemd, zoals deze van Philips Hue, kindapparaten met andere protocollen verbinden. U voegt de bridge eenvoudig toe als een apparaat in HomeKit, en hij registreert elk aangesloten lampje in HomeKit. Telkens wanneer u een verzoek indient om een lamp bij te werken, praat uw telefoon met de bridge en praat de bridge met het licht.
Een bridge stuurt dus gewoon informatie van de ene API naar de andere. Omdat u de TECKIN-lampen via internet kunt bedienen, is het heel goed mogelijk om ze met alleen software op HomeKit aan te sluiten – er is geen eigen hardware vereist.
Als je een Raspberry Pi hebt liggen (een Pi Zero van $ 5 is prima), kun je hem instellen als een brug met een framework genaamd Homebridge. Deze lichtgewicht NodeJS-applicatie emuleert de HomeKit API en stuurt verzoeken door naar uw niet-HomeKit slimme apparaten.
Kortom, je voert het uit op de Pi en het voegt elk ‘dom’ apparaat toe aan de Home-app. Wanneer u de lamp probeert te bedienen via de Home-app of Siri, praat Homebridge voor u met de apparaten. Nadat je het hebt ingesteld, is het net alsof het apparaat in de eerste plaats HomeKit-ondersteuning had.
Dit vereist dat het apparaat te allen tijde Homebridge draait, dus dit is niet iets dat u op uw laptop zou installeren. Een Raspberry Pi is ideaal, maar als je een oud apparaat hebt dat je kunt hergebruiken als een server of desktop die altijd actief is, kun je het daar installeren.
Homebridge is een framework en je kunt het uitbreiden met plug-ins. Het heeft een vrij grote community-ondersteuning, dus de kans is groot dat een bepaald smartapparaat waarschijnlijk een Homebridge-plug-in heeft om er ondersteuning voor toe te voegen. Als uw apparaat geen plug-in heeft, maar uw smart-apparaat wel een API en u technisch onderlegd bent, kunt u er zelf een schrijven.
Voor de meeste mensen is de installatie echter gewoon Homebridge en de merkplug-in voor het apparaat te installeren, samen met een beetje configuratie. Als je de opdrachtregel kunt gebruiken en wat tijd hebt, is dat vrij eenvoudig.
Homebridge installeren en configureren
Homebridge is een NodeJS-app, dus je moet installeren node
en npm
om het te gebruiken. Als uw machine Linux draait, kunt u deze waarschijnlijk krijgen van uw pakketbeheerder.
Op Ubuntu moet u het volgende typen om de Node-opslagplaats handmatig in te stellen en vervolgens te installeren nodejs
:
curl -sL https://deb.nodesource.com/setup_13.x | sudo -E bash - sudo apt-get install -y nodejs
Anders kunt u de downloadpagina van Node raadplegen voor informatie over hoe u het voor uw specifieke besturingssysteem kunt installeren.
Als u Linux gebruikt, moet u ook enkele afhankelijkheden installeren, zoals hieronder wordt weergegeven:
sudo apt-get install libavahi-compat-libdnssd-dev
Daarna kunt u Homebridge wereldwijd installeren via npm
, zoals hieronder weergegeven:
sudo npm install -g --unsafe-perm homebridge
U wilt ook de merkplug-ins installeren die u nodig hebt, aangezien Homebridge slechts een raamwerk is. Voor de TECKIN-lampen is de plug-in bijvoorbeeld homebridge-tuya-web
, die ook wereldwijd wordt geïnstalleerd.
Je zou het volgende typen:
npm i homebridge-tuya-web -g
Nadat alles is geïnstalleerd, kunt u het ding echt gebruiken! Typ het volgende om Homebridge een keer uit te voeren en alles te initialiseren:
homebridge
Het zal klagen over een gebrek aan configuratie, die u moet maken. De standaardmap is ~/.homebridge/
, maar u kunt de -U
parameter als u deze wilt verplaatsen.
Typ het volgende om een nieuw JSON-configuratiebestand in deze map te maken:
nano ~/.homebridge/config.json
Ongeacht de plug-ins die u gebruikt, heeft u de volgende basisconfiguratie nodig:
{ "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": [ ] }
Dit configureert Homebridge met een standaardpoort, naam, pincode en poortbereik dat beschikbaar is om aan andere apparaten toe te wijzen.
Binnen de lege platforms
array plaatst u de configuratie voor elke plug-in. Instructies en voorbeelden hiervan zou je op de GitHub-pagina van elke plug-in moeten kunnen vinden.
In het onderstaande voorbeeld is de homebridge-tuya-web
plug-in voor de TECKIN-lampen wil mijn gebruikersnaam en wachtwoord weten om verbinding te maken met de API voor de lamp-app, en een paar andere dingen:
"platforms": [ { "platform": "TuyaWebPlatform", "name": "TuyaWebPlatform", "options": { "username": "username", "password": "password", "countryCode": "1", "platform": "smart_life", "pollingInterval": 10 } } ]
Als dat allemaal is geconfigureerd, zou Homebridge klaar moeten zijn voor gebruik. Voer het opnieuw uit en uw terminal zou een gigantische QR-code moeten weergeven die u zou kunnen dwingen uit te zoomen. Scan dit met de Home-app om het en alle aangesloten apparaten toe te voegen aan HomeKit.
Homebridge laadt uw plug-ins en zou een bericht op het scherm moeten loggen voor elk apparaat dat het vindt. Je zou ze allemaal in HomeKit moeten zien nadat ze zijn toegevoegd, en ze zouden volledig functioneel moeten zijn.
Ik merkte een kleine vertraging op in vergelijking met mijn LIFX-lampen. Dit komt waarschijnlijk doordat de bollen worden bestuurd via een API in plaats van rechtstreeks. In het begin gaven de bollen sommige blanken en warme blanken ook niet correct weer, maar na een beetje tweaken was ik in staat om de juiste scènes op te zetten.
U kunt de apparaten altijd in hun eigen apps configureren, wachten tot de Home-app is bijgewerkt en vervolgens de scène in HomeKit instellen met de vooraf ingestelde configuratie.
Als je Homebridge opnieuw moet toevoegen, wil je het persist/
map in de configuratiedirectory en verwijder vervolgens de bridge uit HomeKit uit de instellingen van een aangesloten lamp onder het tabblad “Bridge”.
Homebridge als een service toevoegen
Als je wilt dat Homebridge de hele tijd draait, wil je het waarschijnlijk configureren om opnieuw op te starten als het crasht of als je Raspberry Pi opnieuw opstart. U kunt dit doen via een Unix-service. Stel dit in nadat u heeft geverifieerd dat Homebridge werkt zoals bedoeld.
Voeg eerst een nieuwe servicegebruiker toe, genaamd homebridge
:
sudo useradd -M --system homebridge
Stel een wachtwoord in:
sudo passwd homebridge
Vervolgens moet u het homebridge
configuratie buiten uw persoonlijke homedirectory. /var/lib/homebridge/
zou goed moeten zijn:
sudo mv ~/.homebridge /var/lib/homebridge/
Zorg ervoor dat de persoon die gebruikt homebridge
heeft het eigendom van die map en alle submappen:
sudo chown -R homebridge /var/lib/homebridge/
Zodra dat is gebeurd, kunt u de service maken. Maak hiervoor een nieuw bestand aan met de naam homebridge.service
in /etc/systemd/system/
:
sudo nano /etc/systemd/system/homebridge.service
En plak vervolgens de volgende configuratie:
[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
Laad de services-daemon opnieuw om deze bij te werken met uw wijzigingen:
sudo systemctl daemon-reload
Nu zou u uw service moeten kunnen inschakelen (instellen dat deze tijdens het opstarten wordt uitgevoerd):
sudo systemctl enable homebridge
En start het:
sudo systemctl start homebridge
Als u fouten moet opsporen die voortvloeien uit de serviceconfiguratie, kunt u de logboeken voor de service bekijken door te typen:
journalctl -fn 50 -u homebridge