Innescare la domotica tramite tag di prossimità NFC e Home Assistant

5 minuti di lettura
SCOPI DEL PROGETTO:
  • Utilizzare le pratiche tag NFC per attivare, tramite l’avvicinamento dello smartphone/tablet, azioni sulla propria domotica basata su Home Assistant
  • Livello di difficoltà: medio/basso
  • Costo: basso
CONCETTI AFFRONTATI:
  • Configurazione software
  • Uso di tag NFC
COMPONENTI SOFTWARE UTILIZZATE:
COMPONENTI FISICI UTILIZZATI:
PROGETTO MAGGIORMENTE INDICATO PER:
Android
Note e disclaimer
  • qualsiasi eventuale modifica agli impianti domestici dev'essere progettata ed realizzata SOLO da personale qualificato;
  • qualsiasi modifica attuata in proprio è a propria responsabilità personale nonché a proprio rischio e pericolo (i contenuti della presenta pagina hanno puro scopo didattico);
  • qualsiasi modifica attuata in proprio a un dispositivo ne fa decadere garanzia, omologazioni e certificazioni di qualità.
Revisione progetto: 1.0

Abstract

NFC logoNegli ultimi anni molti hanno preso dimestichezza – spesso senza saperlo – con la Near Field Communication (abbreviato NFC), una tecnologia che permette di “leggere” (tramite dispositivi dotati di un’antenna adeguata, per esempio gli smartphone di nuova generazione) delle informazioni direttamente da delle “tag”, degli elementi che si attivano con il solo avvicinamento, appunto, dell’antenna compatibile.

Il caso più lampante è quello delle carte di credito contactless: ogni carta di questo tipo contiene al suo interno una “tag” NFC la quale, avvicinata al POS di pagamento si “attiva” e comunica a quest’ultimo le coordinate bancarie del cliente. Un altro esempio comune è quello dei badge lavorativi: basta avvicinarli al lettore presente sul varco d’ingresso per ottenerne (se autorizzati) l’apertura. Anche quelli, tutti basati su tecnologia NFC.

L’idea di base di questo progetto sta nell’idea di utilizzare uno smartphone/tablet dotato di antenna NFC per leggere una tag NFC (posizionata dall’utente dove meglio si crede) al fine di eseguire specifiche funzioni della propria domotica basata su Home Assistant.

Immaginiamo a mo’ d’esempio di avere un attuatore applicato al sistema di apertura di una porta d’ingresso e integrato a Home Assistant: quello che potremmo fare con le tecniche descritte in questo progetto è posizionare una tag NFC adesiva (costo: qualche euro) nelle vicinanze al varco e, per aprirla, utilizzare il solo avvicinamento del cellulare ad essa, gesto il quale attivi il meccanismo di apertura. Il tutto, ovviamente, nella massima sicurezza (il perché lo vedremo a breve).

Assunti

Il progetto, per essere implementato, prevede:

  • la disponibilità di uno o più smartphone/tablet dotati di antenna NFC e almeno una tag NFC;
  • Home Assistant configurato per il controllo remoto tramite HTTPS.

Il secondo punto prevede che la propria istanza Home Assistant sia raggiungibile da remoto e tramite protocollo HTTPS: in caso si stia utilizzando Home Assistant installato su Raspberry la guida dettagliata al procedimento è questa, per gli utenti HASSIO invece è quest’altra.

Si parte

Logica di funzionamento

Per realizzare il presente progetto abbiamo scelto Automagic * Automation, un’app per Android (a pagamento, ma che si può installare con un unico acquisto su più device Android) che consente di definire dei flussi di automazione di vario genere; una delle frecce all’arco di tale app è, per l’appunto, l’antenna NFC (quando presente sullo smartphone/tablet).

Ogni tag NFC da par suo contiene al suo interno un codice identificativo (ID), il quale può essere arbitrariamente impostato dall’utente a un valore specifico.

Quello che andremo a fare è realizzare un flusso di automazione il quale, a fronte dell’avvenuta lettura di uno specifico tag NFC ID, inneschi la chiamata verso il proprio Home Assistant, autenticandosi e richiedendo l’esecuzione di un’azione specifica.

Home Assistant

Innanzitutto è necessario predisporre Home Assistant a questa nuova funzionalità. Per farlo è necessario che sia attivo il servizio API e che venga erogato un token long-life per l’accesso autenticato da parte di Automagic * Automator.

API

In primis, assicuriamoci che il componente API sia attivo. Per farlo, è semplicemente necessario che nel file di configurazione sia presente la riga:

api:

in caso manchi, aggiungerla e riavviare l’HUB.

TOKEN

A questo punto è necessario creare un “TOKEN a lunga vita“, ovvero una chiave d’accesso valida per 10 anni.
Per far ciò, da interfaccia Home Assistant cliccare sul circolo colorato contenente la prima lettera del vostro username posta in basso a sinistra nella colonna dell’interfaccia Home Assistant:

Nome utente su Lovelace UI Home Assistant

Una volta acceduto alla pagina, scollare sul fondo fino a trovare la seguente box:

Home Assistant - Token di accesso lunga vita

Cliccare ora su “CREA TOKEN” e, non appena creata, segnarsi la chiave da parte (non potrà più esser visualizzata successivamente, quindi segnarsela subito).

Automagic * Automator

Ora siamo pronti per definire il processo di automazione lato smartphone/tablet con l’ausilio dell’app Automagic *Automator.

Definizione variabili

In primis definiremo due variabili d’ambiente che utilizzeremo per il flusso che andremo a definire successivamente, le quali contengano il nostro indirizzo remoto di Home Assistant e il token lunga-vita definito precedentemente.
Dopo aver aperto Automagic * Automator sul proprio smartphone/tablet, recarsi presso “Automagic” / “Left panel” / “Global Variables” e cliccare su “add (+)“.

  • Aggiungere una prima variabile chiamata “global_ha_addr” contenente l’indirizzo del proprio Home Assistant (eg. “https://casamia.duckdns.org:8123“).
  • Aggiungere una seconda variabile chiamata “global_ha_k” contenente “Authorization:Bearer TOKEN“, dove ovviamente “TOKEN” va sostituito con il proprio token lunga-vita precedentemente ottenuto.

Automagic * Automator

Definizione flusso

Ciò che faremo ora è definire il flusso operativo necessario il quale si avvii con la lettura di una tag NFC e termini con l’invio di una richiesta verso Home Assistant.

Per farlo vi abbiamo messo a disposizione un flusso “tipo” direttamente installabile su Automafic * Automator.
Per farlo, cliccare qui direttamente dal dispositivo Android e, una volta scaricato il file, farlo aprire all’app.

Il flusso risulterà come segue:

Automagic * Automator - flusso da tag NFC a Home Assistant

Programmazione tag NFC

Nel primo blocco (quello di entrata) è impostato un ID relativo alla tag NFC arbitrario (“245678533589324“), il che sta a significare che quando lo smartphone/tablet, con la sua antenna NFC, dovesse leggere una tag NFC contenente quell’ID, il flusso si innescherà.

Tale ID, come detto, è arbitrario e può essere cambiato dall’utente: ciò che conta comunque è che tale ID (quale sia) venga scritto all’interno della nostra tag NFC la quale, quando appena acquistata, è vergine (o comunque contiene un altro ID).

Per scrivere l’ID scelto dentro la tag è necessario tappare sul primo blocco del fusso, nel quale prima preciseremo il nostro ID scelto, poi tapperemo su “Write”:

Automagic * Automator - tag NFC write

A questo punto avvicineremo lo smartphone/tablet alla tag NFC da programmare:

Automagic * Automator - tag NFC write - 2

Terminata la procedura, la nostra tag NFC “conterrà” l’ID da noi scelto.

Scelta azione

Non manca che indicare ad Automagic * Automator che fare nel momento il cui la nostra tag viene letta. Per farlo, tappare sul secondo blocco del flusso, quello immediatamente seguente quello relativo alla lettura della tag:

Automafic * Automator - Innesco servizio Home Assistant

In questa schermata indicheremo ad Automagic * Automator quale servizio di Home Assistant evocare e quale parametri passargli; nell’esempio abbiamo indicato il servizio light.toggle (servizio del componente “Light” utile a invertire lo stato di una luce) e l’entità light.rgbw_1, un’ipotetica luce presente in configurazione Home Assistant.

È proprio qui che ci si potrà sbizzarrire: noi abbiamo semplicemente proposto l’accesione/spegnimento di una luce, ma è chiaro che è possibile chiamare automazioni, script, scene e tutti gli altri servizi presenti sull’HUB.

N.b. Automagic * Automator saprà già come contattare il nostro Home Assistant e come autenticarsi: le variabili che abbiamo impostato precedentemente sono già cablate nel flusso che vi abbiamo proposto, quindi non c’è bisogno di fare altro.

TEST

Non ci resta che effettuare un test. In primis, proviamo ad innescare il flusso direttamente da Automagic * Automator cliccando “Execute” nelle impostazioni del flusso. Se funziona, la luce dovrebbe cambiare stato (o comunque il servizio indicato dovrebbe venire evocato).

Una volta che il flusso è appurato come funzionante, provare avvicinando lo smartphone/tablet alla tag NFC: il flusso dovrebbe venire eseguito nuovamente.

In caso di esito negativo, verificare tutti i passi precedenti.

Precisazioni

Perché il trigger d’innesco NFC funzioni è necessario che lo smartphone/tablet siano sbloccati (ma non, necessariamente, che l’app sia aperta – essa lavora in background senza particolare assorbimento di risorse).

La tag NFC in via teorica potrebbe essere anche superflua: un risultato analogo si potrebbe ottenere mettendo una icona sulla home del telefono, la quale se cliccata invia il comando di esecuzione previsto. Dov’è quindi l’utilità della tag NFC?

Innanzitutto, usando la tag NFC si evita di premere accidentalmente l’cona (la quale funziona anche da remoto lontano da casa!); comunque Automagic * Automator su tutti gli smartphone/tablet Android di famiglia (si acquista una volta sola) e quindi la funzionalità è garantita a tutti.

Ringraziamenti

Si ringrazia Giovanni per l’ottima realizzazione fattiva del progetto, ispirato a questo suo altro articolo (in inglese) che spiega anche altre tecniche sempre basate sull’applicazione di Automagic * Automator con Home Assistant.