in

Homebridge: il ponte tra i dispositivi intelligenti ed HomeKit

Homekit è il sistema di demotica intelligente creato e sviluppato da Apple, funziona con i dispositivi compatibili con il relativo marchio o, da qualche settimana, con i dispositivi “Built With Matter”. Come sempre è richiesto un iPad Domestico, un HomePod / HomePod Mini o una Apple TV HD o 4K. Finché l’utente rimane all’interno di queste mura (virtuali) di problemi non ce ne sono, nascono invece quando – ad esempio – la nerdaggine prende il comando: cosa si fa a collegare dei dispositivi non compatibili? (Forse) come Homebridge.

Una piccola introduzione ad Homekit

Partiamo dall’inizio cercando di evitare la dispersione dei lettori, ma anche dell’autore, per strada riga dopo riga. Homekit è un framework che esiste dal 2014, da quando Apple presentò al mondo l’ormai completamente abbandonato iOS 8. Tramite dei dispositivi ponte tra l’iPhone e gli accessori intelligenti, chiamati Bridge, è possibile dare vita ad un sistema demotico in grado di rivoluzionare le nostre routine quotidiane.

Ai giorni nostri Homekit è vivo e in fase di espansione, sconta un discreto ritardo verso la concorrenza dominata da standard che attualmente Apple non supporta, un esempio è Zigbee. Negli ultimi anni la società californiana ha puntato molto a rendere sempre più facile accedere nell’ecosistema Homekit abilitando Apple TV, HomePod e HomePod Mini, e iPad compatibili come bridge.

Più accessori ma con altri bridge

La poca disponibilità di prodotti compatibili con Homekit rende ancora difficile creare un sistema casalingo con pochi spicci. Attualmente infatti per espandere gli accessori è possibile comprare dei bridge alternativi come TRÅDFRI di Ikea o l’hub intelligente di Aqara che estendono la compatibilità ai dispositivi connessi del gruppo svedese e di Ikea.

Chi vuole rendere compatibili anche i dispositivi di altre marche che si connettono perlomeno alla rete locale non devono disperare. La soluzione può sembrare complessa ma funziona, si chiama Homebridge. Si tratta di un piccolo software di rete da installare sul proprio computer (Windows o MacOS o Linux), è gratis e lo può installare (praticamente) chiunque.

La magia di Homebridge

Homebridge rende il computer dove è installato un bridge di terze parti, al pari dei prodotti già citati qualche paragrafo più in alto. Tramite dei plugin disponibili nell’area riservata è possibile rendere Homekit-Ready molti dispositivi ed accessori di terze parti. Ho personalmente testato la compatibilità con i Sky Q Platinum e Mini distribuiti in Italia, così come le televisioni Samsung con TizenOS 9 e le televisioni LG con WebOS 5.

Quasi dimenticavo: non preoccupatevi per la garanzia dei vostri prodotti, Homebridge si interfaccia al dispositivo usando funzioni rese pubbliche o comunque a disposizione dal dispositivo stesso.

Non aspettatevi di riuscire a creare l’impossibile, sopratutto se non siete molto bravi a smanettare con il pc. Principalmente sarà possibile accedere o spegnere il dispositivo dall’app Casa o con Siri; per cambiare sorgente, volume o canale nel caso delle televisioni sarà necessario comprendere e sperare di far funzionare le configurazioni dei vari plugin disponibili (che sono resi disponibili dalla comunità che sta dietro Homebridge).

Per gli appassionati: qui trovate tutte le repository pubbliche che trattano funzionalità legate ad Homebridge mantenute sia da terze parti che dal team di sviluppo ufficiale.

Come si installa Homebridge?

Premetto che Homebridge ha un sito ufficiale con dei tastoni in evidenza che rimandano alle guide d’installazione del servizio per Rasberry, Linux, MacOS, Docker e Windows; qui sotto troverete un riassunto di setup per i computer domestici tradizionali, quindi Windows e Mac.

In linea di massima, è richiesto l’accesso al terminale del computer, la disponibilità di NodeJS con NPM e per gli utenti WinPro di Hyper-V.

Su Windows Home

É necessario scaricare NodeJS nella versione LTS (attualmente 16.13.1) per l’architettura di riferimento del vostro computer (32bit o 64b bit).

É possibile procedere al download dal portale di NodeJS, cliccando poi a scelta sulla versione più opportuna tra Installer MSI ed archivio compresso .zip. L’installazione è semplice, basta cliccare sull’icona di installazione dai file scaricati e seguire le istruzioni a schermo.

Per procedere poi è necessario verificare che effettivamente NodeJS sia in esecuzione che NPM sia disponibile qualora richiesto. Per procedere alle verifiche dovremo avviare una sessione del terminale dei comandi con i permessi di amministrazione per poi lanciare i seguenti comandi:

# verifica il funzionamento di note.js
node -v

# verifica il funzionamento di NPM
num -v

Ora potremo installare i pacchetti necessari per usare Homebridge: il software stesso e l’interfaccia grafica

# installiamo tramite NPM i pacchetti Homebridge e Homebridge UI
npm install -g --unsafe-perm homebridge homebridge-config-ui-x

Adesso dobbiamo fare in modo che Homebridge possa partire all’accensione del computer dovremo avviarlo e gestirlo come “servizio”. Il pacchetto Homebridge-UI include questa funzionalità tramite il comando hb-service.

# installiamo homebridge come servizio
hb-service install

Windows Firewall potrebbe chiederci di permettere l’accesso alla rete privata. Se l’avviso appare è necessario fornire il consenso.

Finito. Ora potremo gestire Homebridge dal browser connettendoci alla porta 8581 del computer, in locale o tramite l’ip assegnato dal modem.

su MacOS

Per installare Homebridge su macOS dovremo usare una versione recente di macOS e avere accesso all’app Terminale. I computer che montano un chip Apple Silicon, ovvero un processore M1 o successivo devono usare NodeJS tramite traduzione con Rosetta 2.

Per evitare confusione, l’ideale sarebbe installare NodeJS tramite Homebrew, così da semplificare anche le operazioni di rimozione qualora fosse necessario in futuro.

# verifica che Homebrew sia installato
brew -v

# installa il pacchetto Nome.js per installare la versione TLS (16.13.1)
brew install node@16

Per procedere poi è necessario verificare che effettivamente NodeJS sia in esecuzione che NPM sia disponibile qualora richiesto. Per procedere alle verifiche dovremo avviare una sessione del terminale dei comandi con i permessi di amministrazione per poi lanciare i seguenti comandi:

# verifica il funzionamento di note.js
node -v

# verifica il funzionamento di NPM
num -v

Ora potremo installare i pacchetti necessari per usare Homebridge: il software stesso e l’interfaccia grafica

# installiamo tramite NPM i pacchetti Homebridge e Homebridge UI
npm install -g --unsafe-perm homebridge homebridge-config-ui-x

Adesso dobbiamo fare in modo che Homebridge possa partire all’accensione del computer dovremo avviarlo e gestirlo come “servizio”. Il pacchetto Homebridge-UI include questa funzionalità tramite il comando hb-service.

# installiamo homebridge come servizio
hb-service install

Windows Firewall potrebbe chiederci di permettere l’accesso alla rete privata. Se l’avviso appare è necessario fornire il consenso.

Finito. Ora potremo gestire Homebridge dal browser connettendoci alla porta 8581 del computer, in locale o tramite l’ip assegnato dal modem.

Come disinstallare Homebridge

Per rimuovere Homebridge dal computer sarà necessario lanciare i seguenti comandi:

# rimuovere Homebridge come servizio
sudo hb-service uninstall

# rimuovere Homebridge e Homebridge UI come pacchetti di NodeJS ed NPM
sudo npm uninstall -g homebridge homebridge-config-ui-x

opzionalmente è possibile rimuovere NodeJS disinstallando il pacchetto dal Pannello di Controllo (Windows), se è disponibile Homebrew (su sistema MacOS) è possibile lanciare il comando “brew remove node@16”.

Come accedere e configurare Homebridge

In questa parte assumiamo che si voglia accedere ad homebrige dal computer che ha il servizio installato, l’indirizzo ip sarà “localhost”. Se i computer di accesso e gestione non coincidono dovremo sostituire localhost con qualcosa simile a 192.168.1.100 ovvero l’indirizzo assegnato al computer dal modem.

Le credenziali di accesso di default sono admin / admin ed è possibile procedere al login dall’indirizzo web http://localhost:8581. Con un proxy Nginx o Apache potremo decidere di rendere disponibile il servizio anche al di fuori della rete domestica con magari un certificato SSL per proteggere la connessione, ma questa sarebbe tutta un’altra guida (fatemi sapere se vorreste leggere un articolo anche su questo).

La homepage di Homebridge, a login effettuato sarà simile a questa:

71886653 b16d3f80 3190 11ea 9ff8 49dc4ae4fff0

Il QR in alto a sinistra servirà da password quando vorremo aggiungere i nuovi dispositivi all’app Casa. Da sinistra a destra dall’alto verso il basso troviamo poi lo stato dei servizi, della cup e della memoria, il timer che ci dice da quando tempo è online il servizio, gli accessori, il meteo ed i log. Sotto il qr troviamo le informazioni di sistema.

La scheda plugin permette di gestire i plugin già disponibili e di installarne di nuovi, config serve a modificare la configurazione dell’intero sistema e Accessories a gestire gli accessori individualmente o a gruppi.

Per aggiungere Homebridge come Bridge agli accessori di casa dovremo aprire l’app “Casa”:

‎Casa
‎Casa
Developer: Apple
Price: Free
  • ‎Casa Screenshot
  • ‎Casa Screenshot
  • ‎Casa Screenshot
  • ‎Casa Screenshot
  • ‎Casa Screenshot
  • ‎Casa Screenshot
  • ‎Casa Screenshot
  • ‎Casa Screenshot
  • ‎Casa Screenshot
  • ‎Casa Screenshot
  • ‎Casa Screenshot
  • ‎Casa Screenshot
  • ‎Casa Screenshot

per poi cliccare sul tasto “+” in alto a sinistra, premere su “Aggiungi Accessorio”.

Quando apparirà la schermata che ci chiede di scansione il codice o di inserirlo a mano, noi dovremo solo puntare la fotocamera dell’iPhone verso il QR presente nella dashboard di Homebridge.

Aggiungere plugin

I plugin di Homebridge sono disponibili come pacchetti aggiuntivi di NPM, senza scaricarli o cercarli nella dashboard del software, puoi vederli elencati tutti qui.

Per installarli a mano, senza passare per la dashboard, puoi semplicemente digitare questo comando nel computer che ospita Homebridge.

sudo npm install -g homebridge-pacchetto-esempio

Però è veramente più comodo procedere tramite la dashboard dato che sarà sufficiente cliccare sulla scheda Plugin per avere a disposizione una barra di ricerca e l’elenco dei plugin attualmente installati.

Per esempio, facciamo finta di voler installare un plugin che renda compatibile con Homekit le TV Samsung che montano il sistema Tizen. Sarà sufficiente cercare TIzen nella barra di ricerca e scaricare “homebridge-samsung-tizen” l’unico plugin verificato dal team di HB facendo semplicemente click su “Installa”.

Configurare i plugin

Ora la parte difficile. I plugin vanno configurati. Solitamente i plugin vogliono sapere da noi due cose: l’indirizzo IP e l’indirizzo MAC del dispositivo da aggiungere. Queste due informazioni sono necessarie per permettere ad Homebridge di usare WakeOnLan per attivare il dispositivo da spento e per interfacciassi con le API sviluppate dal produttore del dispositivo stesso.

Su una rete domestica tradizionale, gli indirizzi IP cambiano ad ogni accensione del dispositivo stesso. Pertanto è preferibile impostare degli IP statici ai dispositivi connessi.

# un indirizzo ip è qualcosa del tipo
# 192.168.x.x dove le x sono dei numeri che vanno da 0 a 256 per l'ipV4
# un indirizzo ip è molto simile al numero civico di una via,
# è necessario per trovare in ogni momento un specifico dispositivo
# in questo caso parliamo di rete locale, ma si usa anche per il web in generale

# un indirizzo MAC è assegnato univocamente al dispositivo
# anche se alcuni sistemi recenti permettono di aggiornarlo casualmente
# per quello che serve a noi, su Homekit, il MAC Address è fisso e non cambia.

# É un qualcosa del tipo: 00-08-74-4C-7F-1D
# si tratta quindi di sei serie di lettere e numeri separate da trattini

Gli indirizzi IP / MAC sono disponibili nella pagina delle impostazioni del Modem o del dispositivo che sta fornendo la funzionalità di server DHCP. Sarà sufficiente annotarsi le informazioni in bloc-notes per avere a disposizione nella successiva configurazione.

I plugin una volta installati mostrano i seguenti comandi: impostazioni, installa versione precedente, impostazioni del bridge, configurazione JSON, disattiva, disinstalla, visita il sito del plugin e dona. Alcuni plugin, come già citato, possono essere verificati, in questo caso apparirà la scritta in verde “verified”.

Ad eccezione di Impostazioni che è un pulsante a se stante, tutte le altre voci sono disponibili cliccando sull’icona a forma di strumento del relativo plugin. “Dona” è una icona disponibile accanto a “verified” qualora ci fosse (o mal che vada la sostituisce), il link al sito invece è disponibile vicino all’icona dello strumento, come pulsantino separato.

Per configurare un plugin solitamente è sufficiente cliccare su “Impostazioni” per specificare poi le informazioni richieste a schermo. Se volessimo modificare in modo avanzato il plugin potremmo anche scegliere la configurazione JSON.

In questo caso vedremo qualcosa del genere (l’esempio viene dalla configurazione del plugin che uso per usare i miei decoder Sky Q e Sky Q Mini ad Homekit):

{
    "devices": [
        {
            "name": "SKYQ Platinum",
            "ipAddress": "192.168.1.x"
        },
        {
            "name": "SKYQ Mini",
            "ipAddress": "192.168.1.x"
        }
    ],
    "platform": "skyq-tvremote"
}

Non preoccupatevi, non è nulla di estremamente traumatico, in questo caso per il plugin “skyq-tvremote” richiede solo di dare un nome ai due decoder e di assegnare ad ogni dispositivo il proprio indirizzo IP. Questo è sufficiente per visualizzare su Homekit i due decoder con un gigantesco pulsante per procedere alla loro accensione o al loro spegnimento.

Una volta configurato il tutto dovrete riavviare Homebridge premendo sul pulsante d’accensione situato in alto a destra, vicino ai tre puntini verticali (che danno accesso al menu di Homebridge: Impostazioni Homebridge, Backup / Ripristina, Impostazioni UI, Account utente, Scollegati) e al tasto che mostra delle onde stilizzate (questo se cliccato mostra quello che viene visualizzato sul terminale di NodeJS)

Se Homebridge risulterà troppo lento, o si dovesse riavviare con errori non preoccupatevi, probabilmente avete sbagliato qualcosa nella configurazione o il plugin che avete scelto va in conflitto con altri plugin o con Homebridge stesso. Dovrete sperimentare e provare un bel po’ di volte per avere tutta la casa connessa in questo modo, ma sempre meglio di niente no?

La mia configurazione attuale

Io per adesso sono riuscito a connettere la mia televisione LG in cucina, quella Samsung in soggiorno, l’HomePod, i due decoder Sky Q e ovviamente l’HomePod.

I plugin che per ora sto usando sono:

  • homebridge-skyq-tvremote per Sky Q e Sky Q Mini
  • homebridge-samsung-tizen per la TV Samsung con TizenOS
  • homebridge-webos-tv per la TV LG con WebOS

Plugin che (potrebbero) tornare utili

Ho visto che esistono una miriade di plugin che configurare (sono tutti plugin con il badge verificato), ho cercato quelli che mi sembravano più utili e li ho elencati qui di seguito.

  • Alexa (non la demotica di Alexa): homebridge-alexa
  • Arlo: homebridge-arlo
  • Fritzbox: homebridge-fritz-platform
  • Google Nest: homebridge-nest
  • Google Nest Cam: homebridge-nest-cam
  • Videocamere Ezviz: homebridge-ezviz
  • Sonos (espone Zone Player): homebridge-zp
  • Switchbot (ecosistema OpenAPI): @switchbot/homebridge-switchbot
  • Tesla (autovetture Tesla): homebridge-tesla
  • UniFi Protect: homebridge-unifi-protect
  • UniFi Protect Camera Motion: homebridge-unifi-protect-camera-motion
  • Xiaomi
    • Mi Humidifier: homebridge-mi-humidifier 
    • Mi Air Purifier: homebridge-xiaomi-mi-air-purifier
    • Roborock Vacuum: homebridge-xiaomi-roborock-vacuum
    • Smart Mi e Mija Fan: homebridge-xiaomi-fan
    • Mi Bluetooth Temperature and Humidity: Sensorhomebridge-mi-hygrothermograph

Se vuoi installare ad esempio il pacchetto per far funzionare Alexa, sarà sufficiente lanciare questo comando, esattamente come abbiamo già visto prima:

# sudo npm install -g homebridge-pacchetto-esempio
sudo npm install -g homebridge-alexa

o in alternativa cercare Alexa tra i plugin nella dashboard di Homebridge.

Buon smanettamento!

Segnala

Scritto da Massimiliano Formentin

Sono sempre stato un appassionato di tecnologia, il mio scopo con PcGenius è condividere questa mia curiosità con il mondo intero. Nella vita faccio anche altro: suono il pianoforte e mi occupo di web.