Componente Home Assistant “Device Tracker”

5 minuti di lettura
Produttore: Home Assistant Community
Disponibilità: incluso nell’HUB personale Home Assistant
Categoria: software
Tipologia: componente Home Assistant
Difficoltà di implementazione: legata alla/e piattaforma/e di integrazione scelta/e
Revisione scheda: 1.3

Il componente “Device Tracker” di Home Assistant è utile per far conoscere alla propria domotica la presenza/assenza degli inquilini dell’ambiente domotico, intesi sia come singole individualità sia come gruppo.

N.b. La domotica personale basata su Home Assistant non viola la privacy dei suoi utenti: tutte le informazioni relative agli stati (ivi inclusa quello del componente “Device Tracker”) sono collezionate LOCALMENTE e non vengono trasmesse a nessuna realtà esterna. Per i più scettici: Home Assistant è un progetto Open Source, il che significa che il codice sorgente è aperto, ergo il suo comportamento – comprovato – è verificabile da chiunque. Ovviamente gli eventuali servizi esterni utilizzati per collezionare la posizione sono responsabili della gestione di quell’informazione specifica.

Per “taggare” la presenza di un inquilino si utilizza l’assunzione per la quale ognuno di essi possieda un dispositivo personale (solitamente uno smartphone) sempre connesso e che porti sempre con sé.

GPS PinLe piattaforme connesse al componente “Device Tracker” sono moltissime, offrendo all’utenza molteplici possibilità di tracciamento. Alcune piattaforme permettono “solo” di identificare lo stato “in casa” o “fuori casa” (eg. Nmap, piattaforma di integrazione Device Tracker utilizza la connessione di dispositivi smartphone/tablet alla stessa Wi-Fi/LAN di Home Assistant per dedurne la presenza fisica – tradotto: sei collegato alla Wi-Fi di casa, quindi sei a casa), mentre altre utilizzano le coordinate GPS per identificare la posizione puntuale del device stesso.

Alcune integrazioni di Home Assistant offrono la funzionalità di tracking quale funzionalità accessoria.
Ad esempio, l’integrazione della linea prodotti tado° (per la gestione di sistemi di riscaldamento/raffreddamento), la quale abilita alla creazione di entità di tipo Climate, fornisce anche un’indiretta funzionalità di tracking. L’applicazione mobile tado° (per Apple iOS e Android) chiede infatti all’utente l’abilitazione del tracking GPS, dati che vengono girati in modo sicuro e autenticato al cloud tado° (per le funzionalità proprietarie dei prodotti, per esempio lo smart heating), cloud il quale può essere interpellato da Home Assistant (tramite il componente tracker tado°) per conoscere la posizione near real-time degli utenti legati a quel servizio.

In assoluto, però, la piattaforma che offre anche la migliore e più sicura declinazione di “Device Tracker” è la piattaforma “Mobile App” di Home Assistant. Tale componente permette di controllare la domotica tramite l’app iOS e Android “Home Assistant Companion” e rileva, tramite essa, anche la posizione GPS.

La lista completa delle piattaforme figlie del componente “Device Tracker” alternative a “Mobile App” è disponibile a questo indirizzo.

CONFIGURAZIONE

Non faremo riferimento a specifiche configurazioni in quanto, in base alla piattaforma utilizzata, variano molto.

Un esempio presso configuration.yaml relativo alla piattaforma “Fortigate” è il seguente:

fortigate:
  host: HOST_IP
  username: YOUR_USERNAME
  api_key: YOUR_API_KEY

A fronte dell’avvenuto censimento di un device, un’entry viene automaticamente aggiunta al file known_devices.yaml.
Un esempio:

devicename:
  name: Marco
  mac: EA:AA:55:E7:C6:94
  picture: https://www.home-assistant.io/images/favicon-192x192.png
  track: yes
  hide_if_away: no

Le variabili incluse in ogni entry del file known_devices.yaml sono/possono essere:

ParametroDefaultDescrizione
namehostname o “Unnamed Device”Il nome del device (eg. “Marco”)
macnessunoL’indirizzo MAC del device, in caso si utilizzino piattaforme che ne fanno uso (tipo Nmap, o SNMP)
picturenessunaUn’immagine per identificare la persona che possiede il device. È possibile aggiungere una o più immagini nel folder “www” posto allo stesso livello del file configuration.yaml e utilizzare picture: /local/favicon-192×192.png
iconmdi:accountUn’icona, in alternativa all’immagine, scelta su materialdesignicons.com.
gravatarnessunaUn’immagine (in override a “picture“) presa da un account Gravatar. Indicare l’email.
trackusa il default della piattaformaSe impostato a “true”, “yes” od “on”, traccia il device, altrimenti lo ignora.
hide_if_awayfalseSe impostato a “true”, “yes” od “on”, nasconde il device sul frontend quando lo stato è “not_home”.
consider_homeusa il default della piattaformaQuanti secondi attendere prima di impostare “non a casa” un device dopo averne perso le tracce.

STATI

Gli stati di base possibilmente associati a un tracker sono “home” (a casa) o “not_home” (fuori casa).

Ulteriori stati possono essere associati in caso la piattaforma preveda l’uso della posizione GPS (per esempio tramite l’app Home Assistant Companion gestita dalla piattaforma “Mobile App”) e vengono predeterminati su configuration.yaml nella sezione “zone“:

zone:
  - name: Home
    latitude: 42.5335
    longitude: 11.5555
    radius: 300
  - name: Lavoro
    latitude: 42.9935
    longitude: 12.5122
    radius: 200

Dove:

nameDefinisce la zona.
latitude/longitudeDefiniscono le coordinate spaziali.
radiusIl raggio, in metri, relativi alla zona.

Maggiori dettagli sulle “zone” di Home Assistant sono disponibili qui.

Raggruppamento

I tracker possono essere raggruppati in uno o più gruppi. Tali gruppi assumono lo stato “in casa” quando almeno un tracker viene rilevato in casa, mentre lo stato “fuori casa” viene attivato quando tutti i tracker sono fuori casa.

I raggruppamenti sono comodi per l’uso in automazione, ovvero per attivare determinate scene,  script, automazioni o altro a fronte del cambio di stato o come condizione specifica.

I raggruppamenti si effettuano presso la voce “group” del file di configurazione di Home Assistant configuration.yaml:

group:
  famiglia:
    name: Famiglia
    entities:
      - device_tracker.marco
      - device_tracker.giovanna
      - device_tracker.simone

I nomi indicati (“marco”, “giovanna” ecc.) corrispondono ai “name” indicati nel file known_devices.yaml (vedi sopra).

Uso in automazione

I device tracker e i gruppi di tracker possono essere tipicamente usati in automazione come “trigger” e come “condition”.

TRIGGER

L’uso “trigger” permette all’utente di definire un’azione a fronte di un cambiamento di stato di un tracker e/o di un gruppo di tracker.

Ad esempio, se volessi attuare delle azione a fronte del ritorno a casa di un qualsiasi componente della famiglia sopra definita tramite il gruppo “Famiglia”, potrei utilizzare un’automazione di questo tipo (le sezioni “condition” e “action” sono volutamente lasciate non valorizzare per evidenziare il blocco d’interesse, ovvero “trigger”):

automation:
- alias: "Ritorno a casa"
  trigger:
    platform: state
    entity_id: group.famiglia
    from: 'not_home'
    to: 'home'
  condition: []
  action: []

Se volessi invece attuare un’azione a fronte dell’uscita di casa di “Marco”, scriverei qualcosa del tipo:

automation:
- alias: "Uscita di Marco"
  trigger:
    platform: state
    entity_id: device_tracker.marco
    from: 'home'
    to: 'not_home'
  condition: []
  action: []
CONDITION

Lo stato dei tracker e/o dei gruppi di tracker può essere utilizzato anche come condizione da verificare a fronte del trigger di un’automazione.

Nell’esempio che segue, accendiamo una luce alle 7 del mattino, solo in caso di presenza di qualcuno in casa:

automation:
- alias: "Risveglio"
  trigger:
    - platform: time
      at: '07:00:00'
  condition:
    - condition: state
      entity_id: group.famiglia
      state: 'home'
  action:
    - service: light.turn_on
      entity_id: light.sala

N.b. Su inDomus abbiamo dedicato una guida ad hoc al tema delle automazioni dentro-fuori casa (o altre zone).

Visualizzazione sul frontend

A fronte dell’attivazione del tracking dei device, Home Assistant offre presso il frontend la voce “Mappa”, la quale visualizza sia la posizione di ogni device (ultima rilevata) sia le zone eventualmente definite:

Home Assistant Map - Device Tracker

Implementazioni

In merito all’uso dei “Device Tracker”, consigliamo la lettura dei seguenti articoli di approfondimento:


Home Assistant Official LogoATTENZIONE: ricorda che sul nostro community FORUM c'è una sezione ad hoc dedica a Home Assistant, per qualsiasi dubbio, domanda, informazione nel merito specifico di queste componenti.


Please comment below