Hvordan koble en hvilken som helst smart enhet til HomeKit (med en Raspberry Pi)

Mange smartenheter hopper over Apple HomeKit-støtte og integreres kun med Alexa, Google og andre plattformer. Med dette Raspberry Pi-hacket kan du imidlertid legge til HomeKit-støtte til enhver smartenhet med åpen kildekode Homebridge-programvaren.

HomeKit for enhver smartenhet

Hvis du er all-in på HomeKit, er et stort problem hvor få smarte enheter som støtter det. For eksempel, det eneste som holder tilbake noen rimelige smarte lyspærer er mangelen på HomeKit-støtte. Amazons valg for en «smart lyspære» er en firepakning fra TECKINsom i skrivende stund koster rundt $40—mindre enn en enkelt LIFX-pære.

Jada, de er ikke like premium som LIFX; fargene er ikke like levende, og de avgir en hørbar summing på badet, men for $10 per pop er de en ganske uslåelig verdi.

Hovedproblemet er imidlertid at de ikke har HomeKit-støtte. De er ikke helt dumme – de fungerer med Google Home, Alexa, IFTTT og produsentens app. De er fine for noen som bare har TECKIN smarte pærer.

Men fordi du ikke har tilgang til dem fra HomeKit, kan du ikke kontrollere dem fra Home-appen, widgeten i kontrollsenteret eller Siri. Du kan heller ikke inkludere dem i scener med pærer fra andre merker eller bruke dem i automatiseringer. Hvis du allerede har investert i HomeKit, er dette mest sannsynlig en dealbreaker.

Møt Homebridge

Heldigvis er det et hack som gjør disse pærene mye mer nyttige. HomeKit API tillater enheter kalt broer, som denne fra Philips Hue, for å koble til underordnede enheter som opererer på andre protokoller. Du legger ganske enkelt til broen som en enhet i HomeKit, og den registrerer hvert lys som er koblet til den i HomeKit. Hver gang du ber om å oppdatere et lys, snakker telefonen med broen, og broen snakker med lyset.

Så, en bro videresender bare informasjon fra ett API til et annet. Fordi du kan kontrollere TECKIN-lyspærene over internett, er det fullt mulig å koble dem til HomeKit med bare programvare – ingen proprietær maskinvare er nødvendig.

  Hvordan fikse kalender som mangler i Microsoft Teams

Hvis du har en Raspberry Pi liggende ($5 Pi Zero er greit), kan du sette den opp som en bro med et rammeverk kalt Hjemmebro. Denne lette, NodeJS-applikasjonen emulerer HomeKit API og videresender forespørsler til ikke-HomeKit-smartenhetene dine.

I utgangspunktet kjører du den på Pi, og den legger til hver «dum» enhet til Home-appen. Når du prøver å kontrollere pæren gjennom Home-appen eller Siri, snakker Homebridge med enhetene for deg. Etter at du har satt den opp, er det akkurat som om enheten hadde HomeKit-støtte i utgangspunktet.

Dette krever at enheten kjører Homebridge til enhver tid, så dette er ikke noe du vil installere på den bærbare datamaskinen. En Raspberry Pi er ideell, men hvis du har en gammel enhet du kan bruke som en server eller skrivebord som alltid kjører, kan du installere den der.

Homebridge er et rammeverk, og du kan utvide det med plug-ins. Den har en ganske stor fellesskapsstøtte, så det er en god sjanse for at en gitt smartenhet sannsynligvis har en Homebridge-plugin for å legge til støtte for den. Hvis enheten din ikke har en plug-in, men smartenheten din har et API, og du er teknisk kunnskapsrik, kan du skrive en selv.

For de fleste er oppsettet imidlertid bare å installere Homebridge og merkeplugin-modulen for enheten, sammen med litt konfigurasjon. Hvis du kan bruke kommandolinjen og har litt tid, er det ganske enkelt.

Installere og konfigurere Homebridge

Homebridge er en NodeJS-app, så du må installere node og npm for å bruke den. Hvis maskinen din kjører Linux, kan du sannsynligvis få det fra pakkebehandleren.

På Ubuntu må du skrive inn følgende for å sette opp Node-repoen manuelt, og deretter installere nodejs:

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

Ellers kan du rådføre deg Nodes nedlastingsside for informasjon om hvordan du installerer det for ditt spesielle operativsystem.

  Del filer, mapper og skjermbilder med et klikk

Hvis du bruker Linux, må du også installere noen avhengigheter, som vist nedenfor:

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

Etterpå kan du installere Homebridge globalt gjennom npm, som vist nedenfor:

sudo npm install -g --unsafe-perm homebridge

Du vil også installere merkevareplugin-modulene du trenger, siden Homebridge bare er et rammeverk. For TECKIN-pærene er for eksempel plug-in homebridge-tuya-websom også installeres globalt.

Du skriver følgende:

npm i homebridge-tuya-web -g

Etter at alt er installert, kan du faktisk bruke tingen! Skriv inn følgende for å kjøre Homebridge én gang og initialisere alt:

homebridge

Det vil klage på mangel på konfigurasjon, som du må opprette. Standardkatalogen er ~/.homebridge/, men du kan bruke parameteren -U hvis du vil flytte den.

Skriv inn følgende for å opprette en ny JSON-konfigurasjonsfil i denne mappen:

nano ~/.homebridge/config.json

Uavhengig av plugin-modulene du bruker, trenger du følgende grunnleggende konfigurasjon:

{
  "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 konfigurerer Homebridge med en standardport, navn, PIN-kode og portområde tilgjengelig for tildeling til andre enheter.

Inne i den tomme plattformen plasserer du konfigurasjonen for hver plug-in. Du bør kunne finne instruksjoner og eksempler på dette på hver plug-ins GitHub-side.

I eksemplet nedenfor vil homebridge-tuya-web-plugin-modulen for TECKIN-pærene vite brukernavnet og passordet mitt for å koble til API-en for pærens app, og noen andre ting:

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

Når alt er konfigurert, skal Homebridge være klar til bruk. Kjør den igjen, og terminalen din skal vise en gigantisk QR-kode som kan tvinge deg til å zoome ut. Skann denne med Home-appen for å legge den og alle tilkoblede enheter til HomeKit.

Homebridge laster inn plugin-modulene dine og skal logge en melding til skjermen for hver enhet den finner. Du bør se dem alle i HomeKit etter at de er lagt til, og de skal være fullt funksjonelle.

  Slik kontakter du støtte for Microsoft Office 365

Jeg la merke til en liten forsinkelse sammenlignet med LIFX-pærene mine. Dette er sannsynligvis fordi pærene styres over et API i stedet for direkte. Til å begynne med viste pærene heller ikke noen hvite og varme hvite riktig, men etter litt finjustering klarte jeg å sette opp skikkelige scener.

Du kan alltid konfigurere enhetene i deres egne apper, vente på at Home-appen oppdateres, og deretter sette scenen i HomeKit med den forhåndslagde konfigurasjonen.

Hvis du trenger å legge til Homebridge på nytt, vil du slette mappen persist/ i konfigurasjonskatalogen, og deretter fjerne broen fra HomeKit fra innstillingene til en tilkoblet pære under «Bridge»-fanen.

Legger til Homebridge som en tjeneste

Hvis du vil at Homebridge skal kjøre hele tiden, vil du sannsynligvis konfigurere den til å starte på nytt hvis den krasjer eller hvis Raspberry Pi starter på nytt. Du kan gjøre dette via en Unix-tjeneste. Konfigurer dette etter at du har bekreftet at Homebridge fungerer etter hensikten.

Først legger du til en ny tjenestebruker, kalt homebridge:

sudo useradd -M --system homebridge

Angi et passord:

sudo passwd homebridge

Deretter må du flytte homebridge-konfigurasjonen utenfor din personlige hjemmekatalog. /var/lib/homebridge/ skal være i orden:

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

Sørg for at personen som bruker homebridge har eierskap til den katalogen og alle undermapper:

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

Når det er gjort, kan du opprette tjenesten. For å gjøre det, lag en ny fil kalt homebridge.service i /etc/systemd/system/:

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

Og lim deretter 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

Nå skal du kunne aktivere tjenesten din (sett den til å kjøre ved oppstart):

sudo systemctl enable homebridge

Og start det:

sudo systemctl start homebridge

Hvis du trenger å feilsøke feil som oppstår fra tjenestekonfigurasjonen, kan du se loggene for tjenesten ved å skrive:

journalctl -fn 50 -u homebridge