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

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 è quanti pochi dispositivi intelligenti lo supportano. Ad esempio, l’unica cosa che trattiene alcune lampadine intelligenti poco costose è la loro mancanza di supporto HomeKit. La scelta di Amazon per una “lampadina intelligente” è una confezione da quattro da TECKIN, che, al momento in cui scrivo, costa circa $ 40, meno di una singola lampadina LIFX.

Tuya Smart Lights

Certo, non sono premium come LIFX; i colori non sono così vibranti 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 HomeKit. Non sono del tutto stupidi: funzionano con Google Home, Alexa, IFTTT e l’app del produttore. Vanno bene per qualcuno che ha solo lampadine intelligenti TECKIN.

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

Incontra Homebridge

Fortunatamente, c’è un trucco che rende queste particolari lampadine molto più utili. L’API di HomeKit consente dispositivi chiamati bridge, come questo da Philips Hue, per connettere dispositivi figlio che funzionano con 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 al ponte e il ponte parla alla luce.

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

Se hai un Raspberry Pi in giro (a $ 5 Pi Zero va bene), puoi configurarlo come 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 ai dispositivi per te. Dopo averlo configurato, è proprio come se il dispositivo avesse il supporto HomeKit in primo luogo.

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

Homebridge è un framework e puoi estenderlo con plug-in. Ha un supporto di comunità abbastanza ampio, quindi ci sono buone probabilità che un determinato dispositivo intelligente abbia probabilmente un plug-in Homebridge per aggiungerne il 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.

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 -E bash -
sudo apt-get install -y nodejs

Altrimenti, puoi consultare 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

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:

homebridge

Si lamenterà di una 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:

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

  ]
}

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

All’interno dell’array delle piattaforme vuoto, 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 la mia password per connettersi all’API per l’app della lampadina e alcune altre cose:

  "platforms": [
     {
       "platform": "TuyaWebPlatform",
       "name": "TuyaWebPlatform",
       "options":
         {
           "username": "username",
           "password": "password",
           "countryCode": "1",
           "platform": "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 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 piuttosto che direttamente. All’inizio, anche le lampadine non mostravano correttamente alcuni bianchi e bianchi caldi, ma dopo un po ‘di ritocchi, sono stato in grado di impostare le scene adeguate.

Puoi sempre configurare i dispositivi nelle loro app, attendere l’aggiornamento dell’app Home e quindi impostare la scena in HomeKit con la configurazione predefinita.

Se è necessario aggiungere nuovamente Homebridge, 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 riavviare se si blocca 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 homebridgeconfiguration fuori dalla 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/

Fatto ciò, 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 poi incolla la seguente configurazione:

[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

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

sudo systemctl daemon-reload

Ora dovresti essere in grado di abilitare il tuo servizio (impostandolo per l’esecuzione all’avvio):

sudo systemctl enable homebridge

E avvialo:

sudo systemctl start homebridge

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

journalctl -fn 50 -u homebridge