lunedì, dicembre 17

HomeBridge, come rendere compatibili tanti dispositivi con Homekit usando un Raspberry & IFTTT

4

Nonostante l’industria IoT (internet of things: dispositivi smart controllabili tramite internet) stia crescendo molto rapidamente, nel mercato continuano a mancare degli standard comuni. Con due ecosistemi che faticano a collaborare (Apple & Google), gli utenti devono spesso utilizzare diversi software e app per gestire le diverse tecnologie domestiche e non solo: basti pensare che apparati come Nest richiedono un abbonamento aggiuntivo. Questa industria deve ancora crescere molto prima di essere realmente a favore dell’utente finale, nel frattempo, smanettiamo!

Oggi vediamo come rendere compatibili tanti dispositivi con iOS grazie a HomeBridge. Faremo uso di un Raspberry come gateway e di HomeBridge. L’obiettivo è di rendere più semplice l’integrazione di alcuni dispositivi IoT nell’ecosistema iOS grazie a tecnologie open-source gratuite.

Installiamo Raspbian

Per installare Raspbian (il sistema operativo creato ad HOC per il Raspberry) dovremo dotarci di:

  • Raspberry
  • tastiera
  • mouse
  • microSD (personalmente ne ho usata una da 32GB ma dovrebbe andar bene anche una da 8)
  • cavo microUSB e presa da muro USB
  • PC

Per quanto riguarda il software bisognerà collegarsi alla pagina di download di Raspbian e scegliere la versione. Personalmente vi consiglio di scaricare quella NOOBS, anche senza interfaccia grafica. Per le operazioni che interesseranno noi verrà tutto eseguito da terminale e non avremo necessità di utilizzarlo una volta  configurato.

Scaricato il SO non dovremo fare altro che estrarre il file RAR e copiarne il contenuto direttamente nella microSD che andremo ad inserire nel Raspberry.

Copiato il contenuto bisogna estrarre la microSD dal computer ed inserirla nel Raspberry. Colleghiamo il Raspberry ad un monitor, colleghiamoci mouse e tastiera ed il cavo ethernet (non necessario se il Raspberry è il Pi3).

Nella schermata d’installazione verranno mostrati diversi sistemi operativi disponibili, come già  detto vi consiglio Raspbian Lite (cioè la versione minimale senza interfaccia grafica). Cambiamo la lingua in basso e quella della tastiera. Attendiamo l’installazione termini e che su schermo ci venga mostrato il terminale.

Ci troveremo di fronte ad una schermata simile. Quello  che vediamo è  il terminale del nostro Raspberry, iniziamo dando la possibilità di collegarci al nostro dispositivo tramite SSH. Come fare? Dobbiamo dare il comando di accesso alle impostazioni.

sudo raspi-config

Scriviamo il comando in alto e diamo invio. Attraverso questo comando accediamo alle impostazioni del sistema, abilitando l’accesso al Raspberry con SSH potremo anche utilizzare in futuro il dispositivo senza dover utilizzare un monitor.

Queste saranno le impostazioni che potremo modificare, eventualmente diamo pure uno sguardo e se ci sentiamo abbastanza sicuri modifichiamo pure le impostazioni che più ci interessano. In questa fase il percorso da seguire sarà: Interfacing Options – SSH

Abilitiamo l’SSH ed usciamo dal menu. Siamo quindi pronti a poter installare HomeBridge sul nostro Raspberry.

Installiamo HomeBridge su Raspberry

Fortunatamente l’installazione di HomeBridge non richiede particolari doti, bisognerà solo incollare uno  alla volta i comandi per il terminale.

Prima di installare HomeBridge però dovremo fare due operazioni, aggiornare Raspbian e installare Node.js, noi installeremo la versione 8 anche se ci sono versioni più  recenti. Questo perché al momento risulta la versione più stabile da usare. I comandi da dare saranno quindi:

sudo apt-get update
sudo apt-get upgrade

I primi due serviranno per aggiornare Raspbian e questo sotto per installare Node.js

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -

Finalmente potremo installare HomeBridge, diamo il comando:

sudo npm install -g homebridge --unsafe-perm

Una volta terminato diamo il comando

Homebridge

Non badate all’eventuale errore, è del tutto normale. Questo tipo di operazione al momento ci servirà per creare la cartella.

Terminato ciò bisognerà creare un file di configurazione per HomeBridge. Per farlo diamo il comando:

sudo nano /home/pi/.homebridge/config.json

Si aprirà una schermata di inserimento testo, per facilità d’utilizzo fate copia incolla del nostro qui sotto:

{
	"bridge": {
		"name": "Techboom",
		"username": "CC:22:3D:E3:CE:30",
		"port": 51935,
		"pin": "023-45-168"
	},
	"description": "",
	"accessories": [],
	"platforms": [
		{
			"platform": "IFTTT",
			"name": "IFTTT",
			"makerkey": "Inserire MakerKey",
			"accessories": [{
				"name": "Nome dispositivo",
				"buttons": [{
					"caption": "Nome dispositivo",
					"triggerOn": "comando accensione",
					"triggerOff": "comando spegnimento"
				},
			{
					"caption": "Nome dispositivo",
					"triggerOn": "comando accensione",
					"triggerOff": "comando spegnimento"
				},
			{
					"caption": "Nome dispositivo",
					"triggerOn": "comando accensione",
					"triggerOff": "comando spegnimento"
				}]
			}]
		}
	]
}

Bisognerà incollare il file testo qui sopra e successivamente premere Ctrl+X per uscire e poi premere il tasto Y per confermare il salvataggio.

Per la nostra configurazione e per l’eseguire i comandi ci avvarremo del noto servizio IFTTT. Questo perché  da modo di collegarsi ad un’infinità di servizi in maniera semplice e veloce. Installiamo quindi il plugin di IFTTT con il comando:

sudo npm install -g homebridge-ifttt

Una volta installato il plugin richiamiamo il servizio di Homebridge e ridiamo il comando dato precedentemente:

Homebridge

Questa volta non dovremmo ricevere alcun errore. Dovreste trovarvi sotto una schermata simile alla mia, per  il momento mettiamo da parte il QR Code, ci servirà tra poco.

Ora però bisognerà fare in modo che il nostro Raspberry comunichi con IFTTT per inviare il comando ai nostri dispositivi.

Collegare IFTTT ad Homebridge

Su internet ci sono centinaia di plugin che si interfacciano con HomeBridge, personalmente dopo aver perso la testa per giorni a trovare configurarli e provarli ho capito che forse il metodo più semplice e pulito è utilizzare IFTTT. Utilizzo questo tipo di approccio anche per comandare dispositivi che hanno un proprio plugin. Le conosciutissime lampadine Yeelight, ad esempio, hanno il proprio plugin ma una volta installato ho notato crea errori e non fa funzionare più correttamente HomeBridge ed i plugin installati.

Per collegare IFTTT con HomeBridge bisognerà utilizzare Webhooks. Apriamo quindi IFTTT su smartphone o su browser, andiamo su servizi e cerchiamo Webhooks.

Colleghiamo il servizio, in questo modo ci verrà creato un indirizzo personale (da non condividere).

Entrando nelle  impostazioni del servizio sarà possibile prendere il link al nostro profilo  IFTTT per collegare ulteriori servizi.

Quella che vedrete sopra è la schermata del servizio Webhooks. Sarà qualcosa del tipo:

https://maker.ifttt.com/use/VostroMakerKey

Dove io ho scritto VostroMakerKey ci sarà appunto un codice che dovrete copiare, andrà poi incollato nel file config.json che abbiamo creato prima.

Quindi teniamo sotto mano il MakerKey di IFTTT e su raspberry diamo il comando:

sudo nano /home/pi/.homebridge/config.json

Si aprirà quindi nuovamente la schermata di configurazione del servizio HomeBridge, dovremo inserire alcuni dettagli che prima non avevamo:

{
	"bridge": {
		"name": "Techboom",
		"username": "CC:22:3D:E3:CE:30",
		"port": 51935,
		"pin": "023-45-168"
	},
	"description": "",
	"accessories": [],
	"platforms": [
		{
			"platform": "IFTTT",
			"name": "IFTTT",
			"makerkey": "Inserire MakerKey",
			"accessories": [{
				"name": "Nome dispositivo",
				"buttons": [{
					"caption": "Nome dispositivo",
					"triggerOn": "comando accensione",
					"triggerOff": "comando spegnimento"
				},
			{
					"caption": "Nome dispositivo",
					"triggerOn": "comando accensione",
					"triggerOff": "comando spegnimento"
				},
			{
					"caption": "Nome dispositivo",
					"triggerOn": "comando accensione",
					"triggerOff": "comando spegnimento"
				}]
			}]
		}
	]
}

Prestiamo quindi attenzione, in “Inserire MakerKey” incolliamo il nostro ccodice di IFTTT preso nel passaggio precedente (inserirlo tra parentesi senza cancellarle). In nome dispositivo e caption diamo il nome che vogliamo dare al nostro dispositivo, in triggerOn e trigger Off invece scegliamo una parola  da associare all’accensione e allo spegnimento del dispositivo.

Se dovessimo decidere di accendere una luce della cucina potremo ad esempio fare questa configurazione:

{
	"bridge": {
		"name": "Techboom",
		"username": "CC:22:3D:E3:CE:30",
		"port": 51935,
		"pin": "023-45-168"
	},
	"description": "",
	"accessories": [],
	"platforms": [
		{
			"platform": "IFTTT",
			"name": "IFTTT",
			"makerkey": "Fate attenzione a maiuscole del MakerKey",
			"accessories": [{
				"name": "Luci Cucina",
				"buttons": [{
					"caption": "Luci Cucina",
					"triggerOn": "cucinaON",
					"triggerOff": "cucinaOFF"
				},

Nel mio caso come triggerOn e triggerOFF ho scelto “cucinaON” e “cucinaOFF”, badate bene a come io abbia messo le maiuscole a ON e a OFF, questi andranno impostati uguali su Webhooks.

Una volta terminata la configurazione su Homebridge ci spostiamo su IFTTT per configurare i servizi. Apriamo nuovamente IFTTT e creiamo un nuovo applet.

Premiamo su + per la creazione dell’applet, ovviamente come trigger di entrata dovremo selezionare Webhooks.

Selezioniamo “Recive a web request” poichè questo è l’unico modo perché si attivi il servizio.

In Event Name dovremo inserire il Trigger che abbiamo inventato prima, nel nostro caso di esempio abbiamo dato “cucinaON”, badate bene a maiuscole e minuscole perché devono essere uguali a quelle del file config.Json che abbiamo creato prima. Premiamo su Create trigger e andiamo al passaggio successivo.

Ora dovremo scegliere l’evento che viene scatenato da Webhooks, nel mio caso come “That” ho deciso di accendere le luci del Sonoff, scelgo quindi il servizio eWeLink Smart Home.

Se avete seguito la guida dell’installazione del Sonoff ed avete quindi un Sonoff Basics, dovete scegliere il servizio indicato dalla freccia, “Turn 1 Channel Switch on or off”.

Scegliamo il nostro Sonoff (ovviamente a patto di aver già configurato il servizio con IFTTT, se non lo avessimo fatto basterà inserire le credenziale create alla creazione dell’account di Sonoff) e selezioniamo che dovrà accendersi (o spegnersi se vogliamo che si spenga). Premiamo su “Create action”.

Salviamo il tutto e premiamo su Finish. Il servizio sarà correttamente configurato e in funzione. Dovremo ripetere lo stesso tipo di passaggio per fare in modo che si spenga e così anche per ulteriori accessori che vorremo aggiungere.

Aggiungere HomeBridge ad HomeKit su iPhone

Abbiamo ormai quasi terminato e non ci resta che aggiungere il servizio su iPhone. Ricordate il QR Code di prima? Ora ci servirà. Nel caso non abbiamo più davanti il QR su raspberry diamo il comando:

Homebridge

Comparirà nuovamente il QR code, e verranno caricato i servizi che abbiamo inserito nel nostro file di config.Json.

Su iPhone apriamo l’app “Casa”

Selezioniamo “Aggiungi accessorio” e inquadriamo il QR code.

Ci verrà comunicato che l’accessorio non è certificato, non vi preoccupate non c’è nulla di strano in questo messaggio. Scegliamo “aggiungi comunque”.

A questo punto oltre farci configurare il bridge ci farà configurare anche tutti i dispositivi che abbiamo inserito con il metodo del passaggio precedente. Potremo inserirli nelle stanze già disponibili o crearne di nuove e selezionare un eventuale icona identificativa diversa.

Al termine dovreste avere una schermata simile a questa sotto.

La cosa che potrebbe sembrarvi inizialmente un po’ strana e che se doveste accendere manualmente (quindi premendo sull’interruttore o attraverso altre app) le luci che avete inserito nella app casa, le troverete spente in app Casa. Questo perché il sistema non verrà aggiornato dell’azione manuale. Bisognerà semplicemente premere sul tasto per inviare il segnale di accensione e poi di nuovo per spegnerlo (quindi premete due volte sullo stesso dispositivo). Piccola nota, se invece dovessimo chiedere a Siri di spegnere la luce o accendere la luce il comando verrà  eseguito senza dover fare altri passaggi.

La cosa veramente interessante, infatti, è la possibilità di utilizzare Siri per accendere e spegnere le luci ed i dispositivi collegati. Sia se premiamo il tasto del dispositivo nella app casa sia se chiediamo a Siri di accendere o spegnere la luce attendiamo che il comando venga completato. Ho notato che in alcuni casi il comando viene eseguito nel giro di pochi secondi in altri possono passarne anche 10. Questo purtroppo avviene per la velocità di IFTTT di collegarsi al servizio e dare il comando.

Abbiamo quindi configurato il nostro Raspberry, installato il servizio Homebridge e configurato il plugin IFTTT. Abbiamo collegato il nostro Raspberry quindi a Webhooks e ad un Sonoff per l’esecuzione del comando. Spero sia andato tutto liscio e che non ci siano stati intoppi, per domande o informazioni utilizzate pure il box dei commenti in basso. Sotto invece potete trovare la lista dei prodotti che potreste acquistare per seguire i nostri passaggi.

Ultimo aggiornamento il dicembre 17, 2018 5:23 pm
45,77€
disponibile
Ebay.it
Share.

4 commenti

  1. Ciao, grazie per l’ottima guida, sono riuscito a far funzionare tutto.

    Ho solo un piccolo problema e, se usi anche tu accessori Broadlink, ti chiedo se hai provato a collegare tramite IFTTT il tuo account Broadlink, a me da errore con account inesistente.
    Ho paura che l’account creato con IHC for EU non “chiacchieri” con IFTTT di Broadlink che, forse, vuole un account creato con l’APP americana..
    Puoi verificare?
    Grazie in anticipo

  2. Ciao, ti scrivo per dirti che, da oggi, IHC for EU (broadlink) è disponibile con IFTTT.
    Vole anche chiederti una cosa su IFTTT per HomeBridge:
    Se metto un solo “name” sotto “accessories”, tutto funziona, ma non posso spostare singoli accessori in stanze diverse su app Casa in quanto mi sposta tutti gli accessori assieme.
    Se metto più voci “name” sotto “accessories” (ovviamente nel platform IFTTT), nell’app Casa mi vede solo gli accessori compresi nell’ultima voce “name”, quelli nelle precedenti vengono ignorati.
    Non riesco a risolvere questo problema…. su GitHub ho visto che si possono mettere più voci “name” ma non spiega nulla.
    Sai aiutarmi?
    Grazie mille in anticipo

Rispondi

15585

Un'ultima cosa 😏 

Mi Sconti di Oggi

Macchine del 😴

Ultimi Gadget

Migliori Cloni