Come collegare qualsiasi dispositivo intelligente a HomeKit (con un Raspberry Pi)

Pubblicato: 2022-01-29
Raspberry Pi con logo Homekit
Raspberry Pi Foundation, Apple

Molti dispositivi intelligenti ignorano il supporto di Apple HomeKit e si integrano solo con Alexa, Google e altre piattaforme. Con questo hack Raspberry Pi, tuttavia, puoi aggiungere il supporto HomeKit a qualsiasi dispositivo intelligente con il software Homebridge open source.

HomeKit per qualsiasi dispositivo intelligente

Se sei all-in su HomeKit, un grosso problema è il numero di dispositivi intelligenti che lo supportano. Ad esempio, l'unica cosa che trattiene alcune lampadine intelligenti economiche è la loro mancanza di supporto HomeKit. Amazon's Choice per una "lampadina intelligente" è una confezione da quattro di TECKIN, che, al momento della stesura, costa circa $ 40, meno di una singola lampadina LIFX.

Tuya luci intelligenti

Certo, non sono premium come LIFX; i colori non sono così vivaci ed emettono un ronzio udibile in bagno, ma per $ 10 a pop, sono un valore piuttosto imbattibile.

Il problema principale, tuttavia, è che non hanno il supporto di HomeKit. Non sono del tutto stupidi: funzionano con Google Home, Alexa, IFTTT e l'app del produttore. Vanno bene per chi ha solo lampadine intelligenti TECKIN.

Tuttavia, poiché non puoi accedervi da HomeKit, non puoi controllarli dall'app Home, dal widget in Centro di controllo o da Siri. Inoltre, non puoi includerli in scene con lampadine di altre marche o usarli nelle automazioni. Se hai già investito in HomeKit, questo è molto probabilmente un rompicapo.

Incontra Homebridge

Fortunatamente, c'è un trucco che rende queste lampadine particolari molto più utili. L'API HomeKit consente ai dispositivi chiamati bridge, come questo di Philips Hue, di collegare dispositivi figlio che operano su altri protocolli. Aggiungi semplicemente il bridge come dispositivo in HomeKit e registra ogni luce ad esso collegata in HomeKit. Ogni volta che fai una richiesta per aggiornare una luce, il tuo telefono parla con il ponte e il ponte parla con la luce.

Annuncio pubblicitario

Quindi, un bridge trasmette semplicemente le informazioni da un'API all'altra. Poiché puoi controllare le lampadine TECKIN su Internet, è del tutto possibile collegarle a HomeKit solo con il software, non è necessario alcun hardware proprietario.

Se hai un Raspberry Pi in giro (un Pi Zero da $ 5 va bene), puoi configurarlo come un bridge con un framework chiamato Homebridge. Questa leggera applicazione NodeJS emula l'API HomeKit e inoltra le richieste ai tuoi dispositivi intelligenti non HomeKit.

Fondamentalmente, lo esegui sul Pi e aggiunge ogni dispositivo "stupido" all'app Home. Quando provi a controllare la lampadina tramite l'app Home o Siri, Homebridge parla con i dispositivi per te. Dopo averlo configurato, è proprio come se il dispositivo avesse il supporto HomeKit in primo luogo.

Ciò richiede che il dispositivo esegua Homebridge in ogni momento, quindi non è qualcosa che installeresti sul tuo laptop. Un Raspberry Pi è l'ideale, ma se hai un vecchio dispositivo puoi riutilizzarlo come server o desktop sempre in esecuzione, puoi installarlo lì.

Homebridge è un framework e puoi estenderlo con i plug-in. Ha un supporto abbastanza ampio da parte della comunità, quindi ci sono buone probabilità che un determinato dispositivo intelligente abbia probabilmente un plug-in Homebridge per aggiungere supporto. Se il tuo dispositivo non ha un plug-in, ma il tuo dispositivo smart ha un'API e sei esperto di tecnologia, puoi scriverne uno tu stesso.

Annuncio pubblicitario

Per la maggior parte delle persone, tuttavia, l'installazione consiste solo nell'installazione di Homebridge e del plug-in del marchio per il dispositivo, insieme a un po' di configurazione. Se puoi usare la riga di comando e hai un po' di tempo, è abbastanza facile.

Installazione e configurazione di Homebridge

Homebridge è un'app NodeJS, quindi devi installare node e npm per usarla. Se la tua macchina esegue Linux, probabilmente puoi ottenerlo dal tuo gestore di pacchetti.

Su Ubuntu, devi digitare quanto segue per configurare manualmente il repository Node, quindi installare nodejs :

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

Altrimenti, puoi consultare la pagina di download di Node per informazioni su come installarlo per il tuo particolare sistema operativo.

Se sei su Linux, devi anche installare alcune dipendenze, come mostrato di seguito:

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

Successivamente, puoi installare Homebridge a livello globale tramite npm , come mostrato di seguito:

 sudo npm install -g --unsafe-perm homebridge
Annuncio pubblicitario

Vuoi anche installare i plug-in del marchio di cui hai bisogno, poiché Homebridge è solo un framework. Per le lampadine TECKIN, ad esempio, il plug-in è homebridge-tuya-web , che si installa anche a livello globale.

Dovresti digitare quanto segue:

 npm i homebridge-tuya-web -g

Dopo aver installato tutto, puoi effettivamente usare la cosa! Digita quanto segue per eseguire Homebridge una volta e inizializzare tutto:

 ponte di casa

Si lamenterà della mancanza di configurazione, che devi creare. La directory predefinita è ~/.homebridge/ , ma puoi usare il parametro -U se vuoi spostarlo.

Digita quanto segue per creare un nuovo file di configurazione JSON in questa cartella:

 nano ~/.homebridge/config.json

Indipendentemente dai plug-in utilizzati, è necessaria la seguente configurazione di base:

 {
  "ponte": {
    "nome": "Homebridge",
    "nome utente": "CC:22:3D:E3:CE:30",
    "porto": 51826,
    "spillo": "031-45-154"
  },

  "description": "Server HomeBridge personalizzato",

  "porti": {
    "inizio": 52100,
    "fine": 52150,
  },

  "piattaforme": [

  ]
}

Questo configura Homebridge con una porta, un nome, un PIN e un intervallo di porte predefiniti disponibili per l'allocazione ad altri dispositivi.

Annuncio pubblicitario

All'interno dell'array delle platforms vuote, inserisci la configurazione per ogni plug-in. Dovresti essere in grado di trovare istruzioni ed esempi di questo nella pagina GitHub di ciascun plug-in.

Nell'esempio seguente, il plug-in homebridge-tuya-web per le lampadine TECKIN vuole conoscere il mio nome utente e password per connettersi all'API per l'app della lampadina e alcune altre cose:

 "piattaforme": [
     {
       "piattaforma": "TuyaWebPlatform",
       "nome": "TuyaWebPlatform",
       "opzioni":
         {
           "nome utente": "nome utente",
           "password": "password",
           "codice paese": "1",
           "piattaforma": "smart_life",
           "pollingInterval": 10
         }
     }
   ]

Una volta configurato tutto, Homebridge dovrebbe essere pronto per l'uso. Eseguilo di nuovo e il tuo terminale dovrebbe visualizzare un codice QR gigante che potrebbe costringerti a ridurre lo zoom. Scansiona questo con l'app Home per aggiungerlo e tutti i dispositivi collegati a HomeKit.

Codice QR nel terminale

Homebridge carica i tuoi plug-in e dovrebbe registrare un messaggio sullo schermo per ogni dispositivo che trova. Dovresti vederli tutti in HomeKit dopo che sono stati aggiunti e dovrebbero essere completamente funzionanti.

Ho notato un leggero ritardo rispetto alle mie lampadine LIFX. Ciò è probabilmente dovuto al fatto che le lampadine sono controllate tramite un'API anziché direttamente. All'inizio, anche le lampadine non mostravano correttamente alcuni bianchi e bianchi caldi, ma dopo un po' di modifiche, sono stato in grado di impostare scene adeguate.

Puoi sempre configurare i dispositivi nelle proprie app, attendere che l'app Home si aggiorni e quindi impostare la scena in HomeKit con la configurazione predefinita.

Annuncio pubblicitario

Se devi aggiungere nuovamente Homebridge, ti consigliamo di eliminare la cartella persist/ nella directory config, quindi rimuovere il bridge da HomeKit dalle impostazioni di qualsiasi lampadina collegata nella scheda "Bridge".

Aggiunta di Homebridge come servizio

Se vuoi che Homebridge funzioni sempre, probabilmente vorrai configurarlo per il riavvio in caso di arresto anomalo o se il tuo Raspberry Pi si riavvia. Puoi farlo tramite un servizio Unix. Configuralo dopo aver verificato che Homebridge funzioni come previsto.

Innanzitutto, aggiungi un nuovo utente del servizio, chiamato homebridge :

 sudo useradd -M --system homebridge

Imposta una password:

 sudo passwd homebridge

Successivamente, dovrai spostare la configurazione homebridge al di fuori della tua home directory personale. /var/lib/homebridge/ dovrebbe andare bene:

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

Assicurati che la persona che utilizza homebridge abbia la proprietà di quella directory e di tutte le sottocartelle:

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

Una volta fatto, puoi creare il servizio. Per fare ciò, crea un nuovo file chiamato homebridge.service in /etc/systemd/system/ :

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

E quindi incolla la seguente configurazione:

 [Unità]
Description=Servizio Homebridge
After=syslog.target network-online.target

[Servizio]
Tipo=semplice
Utente=homebridge
ExecStart=/usr/bin/homebridge -U /var/lib/homebridge
Riavvio=in caso di errore
RiavviaSec=10
KillMode=processo


[Installare]
WantedBy=multiutente.target

Ricarica il demone dei servizi per aggiornarlo con le tue modifiche:

 sudo systemctl daemon-reload
Annuncio pubblicitario

Ora dovresti essere in grado di abilitare il tuo servizio (impostandolo per essere eseguito all'avvio):

 sudo systemctl abilita homebridge

E avvialo:

 sudo systemctl start homebridge

Se è necessario eseguire il debug degli errori che derivano dalla configurazione del servizio, è possibile visualizzare i log del servizio digitando:

 journalctl -fn 50 -u homebridge