Ricevere la posizione GPS quando si parcheggia l'automobile (con Home Assistant)
In questa guida cerco di spiegare passo-passo (diciamo per
principianti) come creare un’automazione su Home Assistant che ci invii la
posizione GPS di dove ci troviamo, quando scendiamo dall’auto. Cercherò di
scrivere un articolo come piace a me: inserirò le informazioni necessarie senza
dilungarmi troppo, senza continue ripetizioni (in stile SEO) e andando al
punto, ma inserendo le informazioni che è necessario sapere (per capire cosa si
sta facendo).
Come prima cosa, naturalmente, dovete avere un’installazione di Home Assistant funzionante e correttamente configurata. Inoltre dovete avere una macchina dotata di Bluetooth (autoradio, vivavoce, o qualunque dispositivo che ci permetta di sapere quando siamo in auto e quando invece scendiamo). Come terzo requisito dovete avere già integrato un sistema che permetta l’invio dei messaggi (ad esempio Telegram); in alternativa potete anche salvare la posizione in un sensore e mostrarlo in Home Assistant (ma nel mio caso non era il desiderata).
1.
Configurazione tipo (HW/SW)
Nel mio caso mi trovo nella seguente situazione (cioè, se avete la mia stessa configurazione e seguite la guida, vi garantisco che funziona):
- Raspberry Pi 4 – 8 GB
- Home Assistant 2022.9.4
o
Supervisor 2022.08.6
o Operating System 9.0
- Smartphone Android 10
o
App
Home Assistant Companion 2022.8.0-full
o
Telegram
8.9.3
2. Prerequisiti
Come detto nell’introduzione, dovete avere:
- Installazione di Home Assistant funzionante
- Smartphone con Home Assistant Companion App già integrata/configurata (Home Assistant Companion Docs | Home Assistant Companion Docs (home-assistant.io))
- Un dispositivo Bluetooth in macchina a cui agganciarsi ogni volta che si usa l’auto
- Telegram (o un altro sistema di messaggistica, se preferite) già configurato su HA (vedere la guida ufficiale Telegram - Home Assistant (home-assistant.io)); se non volete inviarvi nessun messaggio, ma salvarvi la posizione in un sensore di HA (magari per mostrarlo sulla mappa nell’interfaccia di HA), non vi serve altro
3.
Configurazione Companion App
Per impostazione di default l’app di Home Assistant invia i
dati dei sensori ogni 15 minuti. Naturalmente per noi questa cosa non va bene, perché
dobbiamo avere un punto GPS recente (quanta strada riusciamo a fare in 15
minuti in macchina? Tranquillamente decine di Km).
Dobbiamo quindi abilitare una configurazione che permetta di
avere dati GPS più frequenti, ma solo quando usiamo la macchina (altrimenti
scarichiamo la batteria del telefono inutilmente).
Ma vediamo prima di tutto i sensori che è necessario
attivare e la procedura per farlo.
Lanciamo la nostra App e apriamo il menu a scomparsa, quindi
clicchiamo su “Impostazioni”
Apriamo la voce “App complementare”
Nella sezione “Sensori” clicchiamo su “Gestione dei sensori”
Trovare la sezione “Sensori Bluetooth” e verificare che la
voce “Connessione Bluetooth” sia abilitata all’invio dello stato ad Home
Assistant (ci serve per sapere a che dispositivi Bluetooth è collegato il
telefono, in modo da rilevare connessioni e disconnessioni). Se non è abilitato
il sensore, cliccarci sopra
e abilitare il sensore
Tornare al menu superiore e cercare la sezione “Sensori di
geolocalizzazione”, quindi verificare che la voce “Posizione geocodificata” sia
attiva. Se non lo è, basta abilitarla come fatto in precedenza.
Questo sensore è molto bello perché attribuisce un indirizzo
alla posizione GPS. Di contro, però, può essere impreciso (un indirizzo
corrisponde ad un edificio o ad un lotto, non ad una strada) oppure non fornire
alcun risultato (se non siamo nei pressi di alcun indirizzo, ad esempio).
Quindi andremo ad utilizzare un altro valore. Tuttavia è necessario abilitarlo
perché ci garantisce un aggiornamento del sensore GPS ad una frequenza
impostabile (lo vediamo dopo).
Cercare la sezione “Sensori di posizione” e abilitare tutti
i sensori
Una volta abilitati tutti i sensori, aprire “Posizione in
background”
Individuare ed abilitare il flag “Modalità ad alta
cisione (può scaricare velocemente la batteria)”. Come dicevo sopra, se
abilitassimo semplicemente questa impostazione, la batteria si scaricherebbe
molto velocemente (soprattutto all’interno di edifici, dove il segnale GPS è più
attenuato e il telefono farebbe più “fatica”). Quindi andiamo ad impostare la
modalità ad alta precisione, solo quando il telefono è connesso al BT
dell’automobile. Clicchiamo quindi su “Modalità ad alta precisione solo se
connesso a dispositivi BT” e scegliamo il dispositivo associato alla nostra
auto
Sotto troviamo altre impostazioni. Io ho lasciato tutto ai
valori di default, voi potete “giocarci” un po’, se volete.
A questo punto la configurazione dell’app è terminata.
Possiamo chiuderla e passare all’interfaccia di Home Assistant.
4.
Recuperare le informazioni necessarie in HA
Adesso occorre recuperare tutte le informazioni (nomi di
dispositivi, sensori e altro) necessarie per impostare l’automazione che
rileverà la posizione GPS
Nell’interfaccia web di Home Assistant, andare su
“Impostazioni”
Quindi su “Persone”
Apriamo la nostra scheda
E verifichiamo che il nostro smartphone sia correttamente
associato a noi, come dispositivo di tracciamento
Chiudiamo e torniamo al menu “impostazioni” e andiamo su
“Dispositivi e servizi”
Clicchiamo sulla linguetta “Entità”
A questo punto dobbiamo verificare il nome delle entità di
cui avremo bisogno per l’automazione.
Ad esempio verifichiamo l’id dell’entità associata alla
nostra Persona
E’ importante segnarsi questo ID, perché ci servirà per
creare l’automazione.
Poi cerchiamo il nome dell’entità associata ai dispositivi
Bluetooth collegati al nostro telefono. Cercando il nome del telefono dovreste
trovarla facilmente
Anche questo ID va segnato da qualche parte, perché andrà
utilizzato all’interno dell’automazione.
Adesso dobbiamo identificare l’indirizzo Bluetooth e il nome
del dispositivo da utilizzare come “indicatore di guida”.
5.
Attributi (non necessario)
Come dicevo poco sopra, dobbiamo andare a vedere che
indirizzo ha e come si chiama il dispositivo BT da “monitorare” per sapere
quando scendiamo dalla macchina.
Apriamo il menu “Strumenti per sviluppatori”
Selezioniamo la scheda “Stati”
Cerchiamo il sensore relativo alle connessioni BT del
telefono, mettendo il nome del sensore (o parte del nome) nella casella di
ricerca
Cliccando sul nome del sensore, viene mostrato il dettaglio
nella sezione ad inizio pagina che si chiama “Imposta stato”. Troviamo nella
lista dei “paired_devices” quello relativo alla nostra auto e copiamoci il
tutta la riga (l’indirizzo e il nome, comprensivo di parentesi)
Ora non ci rimane che procede con la creazione
dell’automazione.
6.
Creazione dell’automazione
Torniamo di nuovo nel menu “Impostazioni”
Quindi apriamo la sezione “Automazioni e scene”
Clicchiamo sul bottone “CREA NUOVA AUTOMAZIONE” in basso a
destra
Selezioniamo “Inizia con un’automazione vuota”
Adesso dobbiamo andare a definire che cosa Home Assistant
deve controllare per capire se è necessario valutare le condizioni della nostra
automazione. In pratica dobbiamo dire a HA di tenere controllate le connessioni
Bluetooth del nostro smartphone, e valutare l’automazione solo se c’è un
cambiamento. Per fare ciò aggiungiamo l’attivazione cliccando sul bottone
“AGGIUNGI ATTIVAZIONE”
Nel menu a tendina che si apre selezioniamo “Stato” (cioè
gli diciamo che vogliamo basare la nostra automazione sul cambio di stato di
un’entità
Ora andiamo a selezionare il nostro sensore/entità nel nome
dell’entità (c’è l’autocompletamento, basta iniziare a scrivere e ci propone le
entità corrispondenti), e “Connected paired devices” come Attributo. Cioè
diciamo ad HA che deve passare alla valutazione delle condizioni (step
successivo) dell’automazione solo ed esclusivamente se c’è un cambiamento
nell’attributo “connected_paired_devices” (cioè la lista dei dispositivi connessi
allo smartphone, che si verifica quando un dispositivo si collega o si
scollega)
Adesso dobbiamo andare a stabilire la condizione necessaria
perché ci venga inviata la posizione della nostra automobile. Cioè dobbiamo
dirgli di mandarci le coordinate solo se il BT della macchina era connesso, e
ora non è più connesso (evento di disconnessione). Per fare ciò clicchiamo su
“AGGIUNGI CONDIZIONE”
Nel menu a tendina selezioniamo “Modello”
E come valore modello inseriamo il seguente codice:
{{ "nome_BT" in trigger.from_state.attributes.connected_paired_devices and
"nome_BT" not in trigger.to_state.attributes.connected_paired_devices }}
Dove al posto di nome_BT dovete inserire il dispositivo
visto precedentemente (composto da indirizzo + nome)
Infine aggiungiamo l’azione, cioè l’invio del messaggio con
le coordinate.
Clicchiamo su “AGGIUNGI AZIONE”
Nel menu a tendina scegliamo “Chiama servizio”
Nel menu di destra dobbiamo cambiare la visualizzazione in
YAML, quindi clicchiamo su “Modifica in YAML” (purtroppo l’interfaccia con
editor visuale non permette ancora di farlo “comodamente”)
Ora inseriamo il seguente testo:
service: servizio_di_notifica_telegram
data:
title: GPS
message: "Ciao"
data:
location:
latitude: |
{{state_attr("Persona", "latitude")}}
longitude: |
{{state_attr("Persona", "longitude")}}
Dove al posto di “servizio_di_notifica_telegram” metterete
l’ID del vostro servizio, e al posto di “Persona”, il vostro ID personale
Il campo "message" può essere lasciato così, perchè non è importante e viene ignorato in questo tipo di messaggi (ma ci deve essere per far funzionare il servizio)
Ora non resta che salvare e l’automazione è pronta!
Alla disconnessione dal BT dell’auto riceveremo un messaggio
con la posizione
Commenti
Posta un commento