Få HomeKit-støtte på alle smarte enheter med Raspberry Pi!

Tilpass smarthjemmet ditt: Aktiver HomeKit for alle enheter med Raspberry Pi

Mange smarte enheter velger bort Apple HomeKit, og fokuserer i stedet på integrasjon med plattformer som Alexa og Google. Men med en Raspberry Pi og programvaren Homebridge, kan du overvinne denne begrensningen og legge til HomeKit-støtte til praktisk talt hvilken som helst smarte enhet.

HomeKit-kompatibilitet: En utfordring

For de som har investert i HomeKit-økosystemet, er en stor frustrasjon det begrensede utvalget av smarte enheter som faktisk er kompatible. For eksempel, mange rimelige smarte lyspærer mangler HomeKit-støtte. Et eksempel er en firepakning fra TECKIN som koster betydelig mindre enn én enkelt LIFX-pære.

Selv om disse pærene kanskje ikke er like premium som LIFX, med litt mindre livlige farger og en svak summing i enkelte miljøer, gir de en uslåelig verdi per stykk. Problemet er at disse pærene ikke er kompatible med HomeKit. De støtter Google Home, Alexa, IFTTT og produsentens app, men ikke HomeKit. Dette betyr at du ikke kan kontrollere dem direkte via Hjem-appen, kontrollsenter-widgeten eller Siri, og de kan heller ikke inkluderes i scener med enheter fra andre merker. Dette kan være en showstopper for de som har investert i Apple sin smarthjemløsning.

Introduksjon til Homebridge

Heldigvis finnes det en løsning: Homebridge. HomeKit API tillater såkalte «broer», som Philips Hue Bridge, som kobler til underordnede enheter som bruker andre protokoller. Du legger til broen i HomeKit som en enhet, og den legger til alle lys som er koblet til den. Når du ber om å oppdatere et lys, kommuniserer telefonen din med broen, som igjen kommuniserer med lyset.

En bro fungerer som en oversetter mellom API-er. Siden det er mulig å kontrollere TECKIN-pærene over internett, er det mulig å koble dem til HomeKit ved hjelp av programvare, uten behov for proprietær maskinvare.

Hvis du har en Raspberry Pi liggende (en Pi Zero til rundt 5 dollar er tilstrekkelig), kan du bruke den som en bro med Homebridge-programvaren. Denne lette NodeJS-applikasjonen emulerer HomeKit API og videresender forespørsler til dine ikke-HomeKit-enheter.

Kort sagt, du installerer Homebridge på din Raspberry Pi, og den legger hver «dumme» enhet til i Hjem-appen din. Når du prøver å styre pæren gjennom appen eller Siri, kommuniserer Homebridge med enhetene dine. Det føles som om enhetene hadde HomeKit-støtte fra begynnelsen.

Denne løsningen krever at Homebridge kjører hele tiden, så det er ikke noe du vil installere på en bærbar datamaskin som du slår av ofte. En Raspberry Pi er ideell, men en hvilken som helst datamaskin som fungerer som server kan brukes.

Homebridge er et rammeverk som kan utvides med plug-ins. Det finnes en stor brukerbase, og det er stor sannsynlighet for at det finnes en plugin for din smarte enhet. Hvis det ikke finnes en plugin, men enheten din har en API, kan du selv lage en hvis du har teknisk kompetanse. For de fleste er det likevel ganske enkelt å installere Homebridge og de nødvendige plug-ins, med litt konfigurasjon. Hvis du er komfortabel med kommandolinjen, er det en overkommelig oppgave.

Installasjon og konfigurasjon av Homebridge

Homebridge er en NodeJS-applikasjon, så Node og npm må installeres for å bruke den. Hvis du har Linux, kan du sannsynligvis installere dette fra pakkebehandleren.

For Ubuntu, bruk følgende kommandoer for å konfigurere Node-repoen og installere nodejs:

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

For andre operativsystemer, se Node’s nedlastningsside for detaljer.

For Linux må du installere noen flere avhengigheter:

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

Etter dette kan du installere Homebridge globalt via npm:

sudo npm install -g --unsafe-perm homebridge

Du må også installere pluginene for dine smarte enheter. For TECKIN-pærene, bruk for eksempel homebridge-tuya-web:

npm i homebridge-tuya-web -g

Nå kan du starte Homebridge for første gang:

homebridge

Du vil få en feilmelding om manglende konfigurasjonsfil, som du må opprette. Standardplasseringen er ~/.homebridge/, men du kan endre dette med -U-parameteren.

Lag en ny JSON-fil med følgende kommando:

nano ~/.homebridge/config.json

Uansett hvilke plugins du bruker, trenger du denne grunnleggende konfigurasjonen:

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

  ]
}

Dette setter opp Homebridge med en standardport, navn, PIN-kode og portområde for tildeling til andre enheter. Inne i den tomme «platforms»-listen, plasserer du konfigurasjonen for hver plugin. Du finner instruksjoner og eksempler på hver plugins GitHub-side.

Eksemplet nedenfor viser konfigurasjonen for homebridge-tuya-web plugin for TECKIN-pærene:

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

Når alt er konfigurert, er Homebridge klar. Kjør den på nytt, og du får en gigantisk QR-kode i terminalen. Skann denne med Hjem-appen for å legge til Homebridge og tilkoblede enheter til HomeKit.

Homebridge vil laste inn pluginene og logge en melding for hver enhet den finner. Etter tilkobling, vil du se alle enhetene i HomeKit, og de vil fungere som forventet.

Du kan oppleve en liten forsinkelse i responsen sammenlignet med for eksempel LIFX-pærer, da kommandoene sendes via API-et i stedet for direkte. Det kan hende du må finjustere innstillingene for å få riktig fargegjengivelse, spesielt for hvitt og varmt hvitt. Du kan konfigurere enhetene i deres egne apper, vente på at Hjem-appen oppdateres, og deretter sette opp scener i HomeKit med de forhåndskonfigurerte innstillingene.

Hvis du trenger å legge til Homebridge på nytt, slett mappen `persist/` i konfigurasjonskatalogen og fjern broen fra HomeKit i innstillingene for en tilkoblet pære under «Bridge»-fanen.

Legge til Homebridge som en tjeneste

For å sørge for at Homebridge alltid kjører, er det lurt å konfigurere den som en Unix-tjeneste. Dette sørger for at den starter igjen hvis den krasjer eller hvis Raspberry Pi starter på nytt. Du bør gjøre dette etter at du har verifisert at Homebridge fungerer som den skal.

Først legger du til en ny tjenestebruker med navnet homebridge:

sudo useradd -M --system homebridge

Angi deretter et passord:

sudo passwd homebridge

Flytt Homebridge-konfigurasjonen ut av din hjemmekatalog, for eksempel til /var/lib/homebridge/:

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

Sørg for at brukeren homebridge har eierskap over katalogen og underkatalogene:

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

Nå kan du opprette tjenesten. Lag en ny fil kalt `homebridge.service` i `/etc/systemd/system/`:

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

Lim inn følgende konfigurasjon:

[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

Last inn tjenestedemonen på nytt for å oppdatere den med endringene dine:

sudo systemctl daemon-reload

Aktiver tjenesten for å starte den automatisk ved oppstart:

sudo systemctl enable homebridge

Og start den:

sudo systemctl start homebridge

For å feilsøke eventuelle problemer, kan du se loggene for tjenesten med denne kommandoen:

journalctl -fn 50 -u homebridge