Lås upp HomeKit-kompatibilitet för alla dina smarta enheter
En stor del av marknaden för smarta hemmalösningar integrerar endast med plattformar som Alexa och Google Assistant, vilket lämnar Apple HomeKit-användare i sticket. Men tack vare ett smart Raspberry Pi-hack, kan du nu ge HomeKit-stöd till i princip vilken smart enhet som helst genom att använda den öppna källkods-mjukvaran Homebridge.
HomeKit-integration för diverse smarta prylar
För de som är fullt investerade i Apple HomeKit-ekosystemet, utgör bristen på enheter med inbyggt HomeKit-stöd en stor utmaning. Ta till exempel prisvärda smarta glödlampor; deras enda begränsning är oftast just avsaknaden av HomeKit-kompatibilitet. Ett exempel är ett fyrpack från TECKIN som, i skrivande stund, kostar runt 40 dollar – vilket är betydligt billigare än en enstaka LIFX-lampa.
Visst, de kanske inte når upp till samma kvalitetsnivå som LIFX – färgerna kan vara mindre intensiva och ett svagt surrande kan höras i tysta miljöer. Men för det priset per glödlampa, erbjuder de oslagbar valuta.
Det stora problemet är att dessa glödlampor saknar direkt stöd för HomeKit. De är inte helt ”dumma”; de fungerar med Google Home, Alexa, IFTTT och tillverkarens egen app. Detta kan vara tillräckligt om du bara använder TECKIN-lampor.
Men eftersom du inte kan styra dem via HomeKit, saknas möjligheten att hantera dem med Apples Home-app, widgeten i Kontrollcenter eller via Siri. Du kan inte heller integrera dem i scenarier med lampor från andra tillverkare eller använda dem i automatiseringar. För den som har investerat i HomeKit, är detta ofta ett oöverkomligt problem.
Lär känna Homebridge
Lyckligtvis finns en lösning som ökar användbarheten för dessa lampor avsevärt. HomeKit API tillåter användning av så kallade ”bryggor”, som Philips Hue-bryggan, för att ansluta underordnade enheter som använder andra protokoll. Du lägger till bryggan som en enhet i HomeKit och den registrerar sedan alla anslutna lampor i systemet. När du ger ett kommando för att justera en lampa, kommunicerar din telefon med bryggan som i sin tur instruerar ljuskällan.
Bryggan fungerar alltså som en översättare mellan olika API:er. Eftersom TECKIN-lamporna kan styras via internet, är det fullt möjligt att koppla dem till HomeKit med enbart mjukvara, utan behov av extra hårdvara.
Om du har en Raspberry Pi liggandes (en Pi Zero för cirka 5 dollar fungerar utmärkt), kan du konfigurera den som en brygga med hjälp av ramverket Homebridge. Denna lätta NodeJS-applikation emulerar HomeKit API och vidarebefordrar instruktioner till dina smarta enheter som saknar HomeKit-stöd.
Du installerar Homebridge på din Pi och den lägger till varje icke-HomeKit-enhet till Home-appen. När du sedan styr en lampa via Home-appen eller Siri, pratar Homebridge med enheten åt dig. Efter installationen fungerar det som om enheten hade inbyggt HomeKit-stöd.
Eftersom Homebridge måste köras hela tiden, är det inget du installerar på din bärbara dator. En Raspberry Pi är idealisk, men en gammal dator som du kan använda som server är också ett alternativ.
Homebridge är ett ramverk som kan utökas med hjälp av plugin-program. Eftersom det har en stor community, finns det sannolikt redan ett plugin för just din smarta enhet. Om inget plugin finns, men din enhet har ett API och du är tekniskt kunnig, kan du skriva ett själv.
För de flesta innebär installationen att installera Homebridge och ett varumärkesspecifikt plugin samt lite konfiguration. Med lite tid och vana vid kommandoraden är det relativt enkelt.
Installation och konfiguration av Homebridge
Homebridge är en NodeJS-applikation, vilket innebär att du måste ha Node och npm installerat. Om du använder Linux, kan du förmodligen installera det med din pakethanterare.
På Ubuntu behöver du köra följande kommandon för att lägga till Node-repo och installera nodejs:
curl -sL https://deb.nodesource.com/setup_13.x | sudo -E bash - sudo apt-get install -y nodejs
Annars kan du hitta installationsinstruktioner för just ditt operativsystem på Nodens nedladdningssida.
Om du använder Linux behöver du också installera följande beroenden:
sudo apt-get install libavahi-compat-libdnssd-dev
Därefter kan du installera Homebridge globalt via npm:
sudo npm install -g --unsafe-perm homebridge
Du behöver även installera de varumärkesspecifika plugin som du behöver, eftersom Homebridge enbart är ett ramverk. För TECKIN-lamporna, till exempel, används pluginet homebridge-tuya-web som också installeras globalt.
Det gör du med kommandot:
npm i homebridge-tuya-web -g
Nu är det dags att testa. Skriv följande för att köra Homebridge för första gången och initiera allt:
homebridge
Programmet kommer att klaga på att det saknas en konfigurationsfil som du behöver skapa. Standardkatalogen är ~/.homebridge/, men du kan ange en annan med parametern -U.
Skapa en ny JSON-konfigurationsfil i den angivna mappen genom att köra:
nano ~/.homebridge/config.json
Oavsett vilka plugin du använder, behöver du följande grundkonfiguration:
{ "bridge": { "name": "Homebridge", "username": "CC:22:3D:E3:CE:30", "port": 51826, "pin": "031-45-154" }, "description": "Egen HomeBridge Server", "ports": { "start": 52100, "end": 52150 }, "platforms": [ ] }
Detta ställer in Homebridge med en standardport, namn, PIN-kod och portintervall som kan användas för att koppla enheter.
I den tomma ”platforms”-arrayen lägger du in konfigurationen för varje plugin. Instruktioner och exempel hittar du på varje plugins Github-sida.
I följande exempel visas hur du konfigurerar pluginet homebridge-tuya-web för TECKIN-lampor. Det kräver ditt användarnamn och lösenord för appen samt lite annan information:
"platforms": [ { "platform": "TuyaWebPlatform", "name": "TuyaWebPlatform", "options": { "username": "username", "password": "password", "countryCode": "1", "platform": "smart_life", "pollingInterval": 10 } } ]
När all konfiguration är klar, ska Homebridge vara redo att köras. Starta det igen så visas en QR-kod som du behöver scanna med Home-appen för att lägga till Homebridge och anslutna enheter i HomeKit.
Homebridge laddar dina plugin och loggar en notis för varje enhet som upptäcks. Efter att du lagt till Homebridge, ska du se alla enheter i HomeKit och de ska fungera som de ska.
Jag upplevde en viss fördröjning jämfört med mina LIFX-lampor. Detta beror troligen på att lamporna styrs via ett API istället för direkt. Till en början visades inte heller vitt och varmvitt korrekt, men efter justeringar kunde jag skapa ordentliga scenarier.
Du kan konfigurera enheterna i deras egna applikationer, vänta på att Home-appen uppdateras och sedan skapa scenarier i HomeKit.
Om du behöver lägga till Homebridge igen, behöver du ta bort mappen persist/ i config-katalogen samt ta bort bryggan från HomeKit via inställningarna för en ansluten lampa under fliken ”Brygga”.
Konfigurera Homebridge som en tjänst
För att Homebridge ska vara tillgängligt konstant, bör du konfigurera det så att det startar om vid krascher eller om din Raspberry Pi startar om. Detta gör du genom en Unix-tjänst. Konfigurera detta först efter att du verifierat att Homebridge fungerar som förväntat.
Lägg först till en ny tjänsteanvändare som heter homebridge:
sudo useradd -M --system homebridge
Ange ett lösenord för användaren:
sudo passwd homebridge
Flytta sedan konfigurationsmappen till en plats utanför din personliga hemkatalog, till exempel /var/lib/homebridge/:
sudo mv ~/.homebridge /var/lib/homebridge/
Se till att användaren homebridge äger mappen och dess innehåll:
sudo chown -R homebridge /var/lib/homebridge/
Nu kan du skapa en ny tjänst. Skapa en fil som heter homebridge.service i /etc/systemd/system/:
sudo nano /etc/systemd/system/homebridge.service
Klistra in följande konfiguration:
[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
Ladda om tjänstedemonen för att uppdatera ändringarna:
sudo systemctl daemon-reload
Nu kan du aktivera tjänsten, så att den startar vid uppstart:
sudo systemctl enable homebridge
Och starta den:
sudo systemctl start homebridge
Om du behöver felsöka tjänsten kan du visa loggarna genom att köra:
journalctl -fn 50 -u homebridge