Componente Home Assistant “Device Tracker”

Produttore: Home Assistant Community
Disponibilità: incluso nell’HUB personale Home Assistant
Categoria: software
Tipologia: componente Home Assistant
Difficoltà di implementazione: legata al/ai tracker scelto/i

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 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 “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, il quale 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.

Un componente che, se implementato, offre anche una indiretta declinazione di “Device Tracker” è il componente “iOS” di Home Assistant, dedicato ai soli utenti Apple. Tale componente permette di controllare la domotica tramite l’app iOS “Home Assistant Companion” e rileva, tramite essa, anche la posizione GPS.

La lista completa delle piattaforme figlie del componente “Device Tracker” è disponibile a questo indirizzo (colonna sulla destra).

CONFIGURAZIONE

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

Il blocco, presso configuration.yaml, che definisce le piattaforme in uso per il tracking è:

device_tracker:

Un esempio relativo alla piattaforma “iCloud” dedicata al cloud Apple è il seguente

# Esempio relativo alla piattaforma iCloud di tipo Device Tracker
device_tracker:
  - platform: icloud
    username: USERNAME
    password: PASSWORD
    account_name: accountname

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 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 (usare Google Maps per definirle).
radiusIl raggio, in metri, relativi alla zona.

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”):

- 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:

- 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:

- 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

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


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.