Al momento stai visualizzando Posizione affidabile con app Home Assistant

Posizione affidabile con app Home Assistant

Ottenere una posizione affidabile con l’app Home Assistant è tutt’altro che difficile. Con i piccoli accorgimenti di questo articolo otterrai un’aggiornamento della posizione del tuo smartphone puntuale, veloce, preciso e che non scarica la batteria, utilizzando soltanto l’app ufficiale di Home Assistant.

Alcuni utilizzano app di terze parti come Life360 o altro ancora ma questo approccio, oltre a mettere a rischio la privacy condividendo la posizione col cloud di aziende terze, ci costringe ad avere più app che leggono la posizione in background nel nostro telefono.

Abbiamo già tutto quel che serve: l’app di Home Assistant! Eppure spesso si leggono post su forum e gruppi Facebook del tipo “La posizione dell’app Home Assistant non funziona” oppure, “quando esco fuori casa non si aggiorna più la posizione“, oppure ancora “la posizione mi si aggiorna solo quando l’app è aperta“.

Vediamo insieme i piccoli accorgimenti per evitare che anche tu debba scrivere un post di quel tipo! 🙂

Perchè è importante avere una posizione affidabile del tuo smartphone?

Tramite la posizione degli smartphone dei componenti familiari di casa nostra possiamo tracciare la loro presenza dentro o fuori le zone configurate (casa, lavoro, parenti, amici, ecc).

Per i figli minorenni conoscere la posizione del loro smartphone può anche essere un’utile funzione di sicurezza

In particolare l’arrivo e la partenza dalla zona home che identifica la nostra abitazione può risultare davvero utile per gestire tante automazioni di casa tra cui:

  • Spegnere tutte le luci quando nessuno è più a casa
  • Chiudere le tapparelle quando l’ultimo esce di casa e alzarle quando il primo vi rientra
  • Attivare / disattivare automaticamente l’antifurto
  • Accendere automaticamente delle luci esterne quando rientriamo a casa
  • Rilevare il nostro rientro a casa prima che apriamo la porta d’ingresso così che Alexa possa riconoscerci e salutarci per nome all’ingresso (si lo so, questa non è importante ma mi sta tanto simpatica…)

Ecco quindi che avere una posizione affidabile e tempestiva con l’app Home Assistant diventa importante, soprattutto in relazione con certe zone configurate, per permettere lo svolgimento delle automazioni con la giusta tempistica.

Ad esempio se accendessimo le luci al ritorno a casa ma la posizione si aggiornasse in modo irregolare anche la luce non si accenderebbe sempre quando ce l’aspettiamo in modo puntuale…

Per avere la massima affidabilità della posizione “a casa” sconsiglio di utilizzare soltanto il GPS del telefono. Meglio integrare nell’oggetto person diversi sensori, soprattutto (se il tuo router lo prevede) la presenza del tuo dispositivo nella rete locale che è un indicatore piuttosto affidabile.
Ti consiglio la lettura di questo articolo per approfondire l’argomento.

E la privacy?

Tieni in considerazione che la posizione che l’app cattura viene inviata alla tua istanza di Home Assistant, senza che venga processata da nessun’altra entità esterna. Il trattamento della riservatezza dei tuoi spostamenti, quindi, è tanto sicuro quanto è sicuro l’accesso alla tua istanza di Home Assistant. La tua privacy è uno dei capisaldi per cui Home Assistant esiste.

Laddove usassi servizi esterni, come Life360, la posizione verrebbe invece inviata e memorizzata sui server aziendali. Sta poi tutto nella serietà e competenza di chi tratta questi dati proteggerli al meglio e questo non è sotto il nostro controllo (come per qualunque servizio cloud).
Purtroppo l’app in questione ha subito uno scandalo in tal proposito nel 2021 dove si è scoperto che vendeva i dati degli spostamenti precisi dei suoi utenti. La società ha poi dichiarato di aver smesso ma, indipendentemente della situazione odierna, questo dovrebbe farci pensare e ottenere tutta la nostra attenzione verso dove inviamo i nostri dati.

Soprattutto quando abbiamo a disposizione l’app ufficiale di Home Assistant che funziona davvero bene… perchè usare app di terze parti che processano i nostri dati più intimi?

E i familiari?

Qualcuno potrebbe storcere il naso “ma così spio mia moglie“, “ma io non voglio che i dati dei miei spostamenti siano accessibili a mia moglie“, ecc.
Ma diamine, cosa avete da nascondere…? Oddio, un’idea ce l’avrei anche eh… 😀
Scherzi a parte è fondamentale che avvisiate correttamente le persone della famiglia a cui installate l’app e che traccerete, informandoli di tutto quel che comporta e dando la possibilità concreta di dire liberamente di no.
Mia moglie è stata ben felice di accettare in cambio di tante comodità nella gestione di casa nostra.

Mai tracciare la posizione senza il consenso esplicito del partner, sarebbe un’azione illegale. Ma prima ancora immorale. Devono volerlo tutti consapevolmente, altrimenti diventa coercizione.

Basta pipponi! Cosa devo fare per ottenere una posizione affidabile con l’app di Home Assistant?

Eh, hai ragione ma non potevo evitare di introdurre l’argomento con delle osservazioni che ritengo importanti!

Partiamo con l’ovvio: devi installare l’app ufficiale di Home Assistant.

Utilizza i link a destra per installare l’app dallo store corretto per il sistema operativo del tuo dispositivo.

Una volta installata apri l’app dal telefono ed inserisci i dati richiesti facendo attenzione a non sbagliare indirizzo di collegamento, nome utente e password.

In particolare è importante che ogni persona acceda ad Home Assistant con il suo utente personale (trovi l’elenco nella pagina Impostazioni -> Persone -> Utenti).

Il modo migliore per creare un utente, però, è quello di creare una persona (da Impostazioni -> Persone -> Persone), premi il tasto

Tasto AGGIUNGI PERSONA
Download App from Google Play
Download App from F-Droid
Download App from Apple Store
Download App from Sidequest

Compila i dati e seleziona l’opzione Consenti alla persona di accedere

Interfaccia nuova persona di Home Assistant

In tal modo avrai creato un utente con un suo username e password per l’accesso ed una persona collegata, nella quale potrai inserire i vari device_tracker che concorreranno a determinarne la posizione (vedi articolo precedente sulla posizione).

Posizione app Home Assistant su Android

Verifichiamo gli indirizzi di connessione

Prestare attenzione a questa fase permette di non avere problemi nella rilevazione della posizione quando siamo sia dentro che fuori casa quindi verifica che la tua app sia impostata come spiegato di seguito.

Clicca sull’hamburger menu in alto a sinistra quindi su Impostazioni e scorri verso il basso quindi su App complementare:

Impostazioni App Home Assistant

Dalla schermata che compare clicchiamo ora sulla prima voce, relativa all’indirizzo a cui collegarsi:

Impostazioni app complementare di Home Assistant

Configuriamo ora attentamente i primi tre parametri:

Indirizzi di connessione della configurazione di Home Assistant
  • URL di Home Assistant è l’indirizzo a cui l’app si connetterà ad Home Assistant quando sarai fuori casa, ovvero non collegato alla rete Wifi di casa tua. Se utilizzi Nabu Casa come me (lo consiglio caldamente) dovrai inserire l’indirizzo che ti è stato fornito da loro, ad esempio https://pihlihl3jb6lkjb45lhb2hbl5hb1l5hb1345.ui.nabu.casa/
    In caso contrario dovrai inserire l’indirizzo che hai configurato per l’accesso da fuori casa.
  • SSID Wifi della rete domestica è l’SSID della tua rete wifi di casa. Questo permette all’app di sapere quando sei connesso ad una rete Wifi se questa è la rete di casa oppure una rete wifi esterna a casa tua. E’ importante affinché possa determinare se utilizzare l’indirizzo interno o esterno. In ufficio, per esempio, sarai connesso ad una rete wifi ma l’indirizzo da usare sarà comunque quello esterno in quanto Home Assistant non sarà certo raggiungibile dal suo indirizzo IP della LAN di casa tua.
  • URL di connessione interno è l’indrizzo a cui l’app si connetterà ad Home Assistant quando sarai a casa tua, cioè quando sarai collegato alla rete wifi con SSID configurato nel parametro sopra.
    Di solito questo indirizzo è così composto: http://INDIRIZZOIP:8123/
Attenzione! Se usi Duck DNS o qualunque altro metodo dove hai inserito il tuo certificato SSL nella configurazione Home Assistant non funzionerà più in HTTP ma solo in HTTPS ed essendo il certificato relativo al nome di dominio esterno non funzionerà proprio più dall’IP interno. In questo caso dovrai usare soltanto l’indirizzo esterno e null’altro. Questo è uno dei motivi per cui sconsiglio questo tipo di approccio. Consiglio caldamente invece Nabu Casa, sia per l’ottimo servizio, sia per finanziare il progetto di Home Assistant. Non vuoi proprio spendere un euro? Allora un tunnel Cloudflare che usa lo stesso ottimo principio di Nabu Casa ma è gratuito.

Attivazione sensori posizione nell’app di Home Assistant

Ora che l’app è installata e configurata verifichiamo che i sensori necessari per l’identificazione della posizione siano attivati.

Da Impostazioni -> App complementare clicca su Gestione dei sensori:

Gestione dei sensori nelle impostazioni dell'app Companion di Home Assistant

Scorrendo verso il basso, nella sezione Sensori di posizione verificare che siano attivati TUTTI i seguenti sensori (false indica il valore del sensore, non il fatto che sia disattivato):

Sensori di posizione nelle impostazioni dell'app Companion di Home Assistant

Lo scopo dei sensori è il seguente:

  • Intervallo di aggiornamento ad alta precisione indica il tempo che intercorre tra una posizione e l’altra quando è attiva la modalità di tracciamento ad alta precisione
  • Modalità ad alta precisione è un sensore che indica ad Home Assistant se la modalità di tracciamento ad alta precisione è attiva oppure no
  • Posizione in background è il più importante ed è il sensore deputato ad acquisire le coordinate GPS della posizione. Di seguito verrà mostrato uno screenshot con i dettagli di come configurarlo
  • Singola posizione accurata abilita la possibilità di inviare una notifica contenente un’istruzione particolare che indica all’app di acquisire la posizione accurata in modo estemporaneo
  • Zona di localizzazione altro sensore fondamentale che, una volta attivato, importa le zone configurate in Home Assistant così che venga effettuato geofencing e l’app invii un aggiornamento di stato ogni volta che si entra o esce da una zona configurata in Home Assistant.

Come configurare al meglio il sensore “Posizione in background”

Questo è il sensore chiave per far funzionare in modo puntuale la geolocalizzazione anche delle zone.

Oltre, ovviamente, ad abilitare questo sensore abbiamo delle utilissime opzioni che ti consiglio di configurare così (clicca sull’immagine per vederla grande):

Configurazione sensore "Posizione in background" dell'app Home Assistant

Prima di spiegarti perchè vediamo a cosa servono le opzioni:

  • Modalità ad alta precisione (può scaricare velocemente la batteria): questa opzione fa si che Home Assistant invii un aggiornamento ogni 5 secondi (o come configurato nella relativa opzione più in basso). Se questa opzione è disattivata (come è per default) l’invio della posizione può avvenire ogni 1-3 minuti o se stiamo usando un’applicazione GPS come il navigatore una volta ogni 30 secondi (così ci dice la documentazione ufficiale)
    Ma attenzione ai prossimi parametri che ne possono modificare il comportamento
  • Modalità ad alta precisione solo se connesso a dispositivo BT: questa opzione abilita effettivamente la modalità ad alta precisione solo se il telefono è connesso ad uno dei dispositivi bluetooth selezionati. Anche se io non lo utilizzo può essere utile, ad esempio, per abilitare la modalità ad lata precisione quando collegato al vivavoce dell’auto.
  • Modalità ad alta precisione solo quando si entra nella zona: questo è il parametro cruciale che va configurato immettendo la zona home e le eventuali altre per cui vuoi una rilevazione puntuale dell’entrata/uscita. Tramite questa opzione viene creata una zona expanded intorno alle zone selezionate in cui, all’ingresso da tali zone expanded viene attivata la modalità ad alta precisione e all’uscita (anche entrando nella zona effettiva) questa viene disattivata.
Posizione home_expanded che si attiva nell'app con questa opzione
La zona home_expanded non sarà visibile da nessuna parte. Questa è solo una visualizzazione per comprendere il concetto.
  • Campo di attivazione della modalità di alta precisione per la zona (metri): questo è il diametro aggiuntivo da assegnare alla zona home_expanded se l’opzione sopra è attivata per almeno una zona. Nei miei collaudi il valore di default 300 si è rivelato ottimo. Se non dovesse bastare puoi provare ad aumentarlo gradualmente finchè il tuo arrivo a casa sarà rilevato sempre con puntualità.
  • Intervallo di aggiornamento della modalità ad alta precisione (secondi): questo è l’intervallo di tempo che intercorre tra gli aggiornamenti di posizione quando la modalità ad alta precisione è attivata
  • La modalità di alta precisione abilitata solo quando ci si trova in una zona e il dispositivo BT è collegato: questa non l’ho mai usata ma è la combinazione della presenza in zona + il collegamento ad un device bluetooth per attivare la modalità ad alta precisione. Potrebbe andar bene se vuoi che si attivi solo quando vi entri con la tua auto, per esempio, sfruttando la connessione al vivavoce bluetooth.
  • Precisione minima: è il livello di precisione minima accettabile dei report di posizione che il sistema operativo fornisce all’app in background. Con il valore di default a 200 metri, ad esempio, se viene fornita una posizione con precisione 250 metri questa viene ignorata in quanto ritenuta troppo imprecisa.
  • Posizione inviata: possiamo selezionare:
    • Esatta per inviare le coordinate precise relative alla posizione, visibili sulla mappa
    • Solo nome della zona per inviare soltanto il nome della zona in cui siamo, senza le coordinate.

Quindi per default l’app invia la posizione ogni 1-3 minuti e questo è spesso insufficiente a rilevare la nostra presenza appena arrivati. La modalità ad alta precisione risolve il problema ma ha il contro che è molto intensiva e scarica la batteria molto più del normale.

Ecco perchè l’opzione ad alta precisione solo quando si è nel campo esterno della zona è la combinazione migliore! Mentre ci si avvicina a casa, con un ritardo variabile tra 1 e 3 minuti, si attiverà la modalità ad alta precisone che quindi permetterà all’app di accorgersi poi puntualmente dell’entrata nella zona casa (o qualunque altra zona tu abbia configurato), disattivando subito la modalità ad alta precisione.
Così salviamo capra e cavoli! Entrata nella zona puntuale ma batteria non significativamente sollecitata più del normale.
Dovrebbe essere la configurazione di default a parer mio…

Configurare le opzioni di Android

Questo è un aspetto fondamentale per far funzionare bene la posizione in Home Assistant!

I produttori di smartphone Android hanno la tendenza a personalizzare pesantemente il menu delle impostazioni del sistema operativo. E’ quindi impossibile fornire delle indicazione precise. Le informazioni di seguito fanno riferimento all’interfaccia ColorOS di Oppo del mio telefono

La prima cosa da fare è accedere alle impostazioni dell’app di Android. Per farlo bisogna accedere ad un menu che solitamente è chiamato App o Gestione App nelle impostazioni di Android:

Impostazioni dell'app Home Assistant in Android

Da qui accediamo ad Autorizzazioni e verifichiamo che tutte le autorizzazioni che riteniamo opportune siano abilitate:

Autorizzazioni dell'app Home Assistant su Android

In Utlizzo batteria, invece, ci assicuriamo che le opzioni per consentire l’esecuzione di attività in background e l’avvio automatico siano attive:

Impostazioni batteria dell'app Home Assistant su Android

In Utilizzo dati, poi, assicuriamoci che l’utilizzo dei dati in background sia consentito:

Impostazioni utilizzo dati dell'app Home Assistant su Android

Disattivazione dell’ottimizzazione batteria per l’app

Manca infatti ancora un passaggio fondamentale per garantire che l’app aggiorni la posizione mentre non è aperta: dobbiamo disattivare l’ottimizzazione batteria per l’app di Home Assistant.

Questo perchè Android, nelle versioni recenti, ha introdotto questo stratagemma per limitare l’esecuzione da parte delle app non in primo piano e risultare più veloce e scattante. Ma così facendo le app importanti quali Home Assistant (ma non solo, vale anche per Tado o qualunque altra app è importante che aggiorni i dati in background) non aggiornerebbero i dati se non quando l’app è aperta ed in primo piano!

Per impostare quest’opzione bisogna di solito accedere ad un menu differente, appartenente alla voce Batteria dal menu delle impostazioni principali di Android.

In ColorOS del mio Oppo precisamente si trova in Impostazioni -> Batteria -> Altre impostazioni -> Ottimizza l’uso della batteria -> seleziona l’app di Home Assistant e finalmente possiamo selezionare la seguente opzione:

Disattivazione dell'ottimizzazione batteria dell'app Home Assistant su Android

Tramite l’impostazione Non ottimizzare ci garantiamo che il sistema operativo lasci eseguire l’app anche quando non in primo piano, così che abbia modo di aggiornare la posizione che potrà quindi attivare tutte le nostre automazioni di casa.

Posizione app Home Assistant su iPhone

Abbiamo visto come configurare nel dettaglio l’app su Android per garantire una posizione veloce e puntuale senza sacrificare la batteria.

Ma per iPhone è la stessa cosa?

La risposta, purtroppo, è no. iOS fornisce meno libertà d’azione alle app limitando di molto quel che possono fare a livello di interazione con il sistema operativo (è il motivo per cui l’elenco sensori di iphone è molto corta e su Android è infinita).

Inoltre non esiste un concetto di “alta precisione”: il sistema operativo decide quando informare l’app circa un cambio di posizione e lo fa in modo molto rado. Sebbene non sia specificato in modo ufficiale, la documentazione di Home Assistant Companion dice che la posizione viene aggiornata ogni volta che avviene un cambio cella GSM o c’è un significativo spostamento (dove “significativamente” è identificato come più di 500 metri di distanza…)

Lo spostamento tra le zone, però, è effettuato con geofencing e risulta quindi generalmente abbastanza veloce ed affidabile (le esperienze possono variare, comunque)

E’ infine possibile richiamare da Home Assistant il comando di aggiornamento manuale della posizione (disponibile anche su Android) che, però, non da alcun feedback e bisogna sperare che venga onorato dal sistema operativo (e non sempre è così su iOS).

Vediamo qualche screenshot su come configurare nel modo corretto la posizione e le sue impostazioni su iPhone (grazie a Francesco Bocchino per la cortesia degli screen):

Conclusione

Avere una posizione veloce, puntuale e che non scarichi la batteria del nostro amato smartphone è una funzionalità fondamentale per permettere tantissime automazioni nella nostra smart home. In questo articolo abbiamo visto come configurare al meglio l’app ed il sistema operativo del telefono per ottenere questo scopo tramite l’ottima app Home Assistant Companion, senza la necessità di usare alcuna app aggiuntiva.

Consiglio tuttavia di non basare la propria presenza in casa soltanto sulla posizione GPS fornita dal telefono in quanto al coperto, soprattutto nelle zone più interne di casa nostra, potrebbe indursi un errore di precisione notevole che potrebbe farci “uscire” per errore dalla casa.

Per questo ti consiglio di leggere anche il precedente articolo sulla posizione per scoprire come configurare al meglio l’oggetto person con i device tracker più idonei quali la presenza nella rete wifi di casa fornita da Fritz ed altre integrazioni del router / access point.

Configurando la persona in tal modo, infatti, otterremo il meglio su tutti i fronti: dalla sicurezza della presenza effettiva in casa alla rapidità dei cambi zona per noi importanti.

Spero che questo articolo possa averti aiutato quanto l’aver scoperto nel tempo tutti questi dettagli ha aiutato me ad avere un cambio zona davvero affidabile.

Ti è piaciuto questo contenuto?

Se ti è stato utile l’articolo che hai letto potresti pensare di darmi una mano offrendomi qualche caffè!
Oltre ad aiutarmi a star sveglio nelle nottate di ricerche e scrittura mi daresti una mano concreta nel sostenere le spese del server web, incentivandomi a produrre altri contenuti di qualità.

Puoi usare Paypal:

Oppure Buymeacoffee:

Henrik Sozzi

Sono un analista programmatore per lavoro e per passione. Amo la domotica, la stampa 3D e la tecnologia in generale. Mastodon: @pixel

Questo articolo ha 2 commenti

  1. marco

    Ciao Henrik, ho un problemino sull’app companion di HA, nel senso che periodicamente, ogni 2-3 mesi circa mi viene chiesto se consentire la geolocalizzazione sempre oppure no. Io chiaramente rispondo “sempre”, ma poi puntualmente mi viene richiesto dopo qualche mese. La cosa anche se non è laboriosa, ma è un po’ scocciante, perchè se uno si dimentica di rispondere alla notifica, poi va a finire che si perde le geolocalizzazione del device e questo comporta altri problemi. Secondo te c’è un modo per definire “stabilmente” i permessi e non darglieli ogni volta? Personalmente uso un iphone ma penso che sia uguale anche per android. Grazie.

Rispondi

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.