Presence detection

Allo scopo di ricevere una notifica all'entrata di un utente in una zona, sia essa l'abitazione, la scuola, o il luogo di lavoro, utilizzando il gps(global positioning system), se le coordinate in cui si trova l'utente sono all'interno di un area decisa. Ovviamente si potrebbero utilizzare altri sistemi per il tracciamento, se io fossi connesso al wifi di casa, all'interno della mia abitazione.

Ho utilizzato la funzione apposita dell'applicazione home assistant chiamata telegram_bot, che gestisce un utente telegram virtuale e non reale (nome bot: HassIotAiutoBot) e notify (Si occupa di gestire le notifiche sulle piattaforme come email o telegram) in configuration yaml.

Il bot verra poi uilizzato per inviare una notifica all'id del gruppo(IotAiutoHassNotify), attraverso il messaggio:

{{ trigger.to_state.attributes.friendly_name }}'s position: {{ trigger.to_state.state }}
↧ ↧ ↧
Nome del soggetto è in posizione: zona del soggetto

se la posizione iniziale è diversa dall'attuale. La configuarazione in automation è:

alias: 'Device State Change Alert' | Nome dell'automazione
trigger: | Specifico il trigger
platform: state | Controllo il cambio di stato
entity_id: person.admin | Dell'oggetto (l'utente admin)
condition: | Specifico eventuali condizioni
condition: template | Natura condizione
value_template: '{{ trigger.to_state.state != trigger.from_state.state }}' | È diverso dallo stato precedente
action: | Specifico l'azione
- service: notify.notify_me | Uso il servizio di notifica
data_template: | Creazione messaggio
message: > | Testo mess.
{{ trigger.to_state.attributes.friendly_name }}'s position: {{ trigger.to_state.state }} | Testo (varia a seconda di chi ha attivato il trigger)
title: "ZoneChanged" | Titolo mess.

Risultato:

ZoneChanged
admin's position: home

Conclusione: Il sistema di tracciamento utilizza il gps allo scopo di ottenere le coordinate del soggetto, se poi esse corrispondono ad un area decisa dal cliente (casa, scuola, lavoro), allora lo stato del dispositivo cambierà (not_home → home), ciò permette quindi l'utilizzo di questo cambiamento allo scopo di triggerare un automazione precedentemente decisa, consentendo quindi di compiere qualunque azione si preferisca come effetto, ad esempio: invio una notifica dal bot di telegram alla chat interessata, ma potrei accendere le luci di casa alla mia entrata.

Setup di presence detection: Ovviamente ci sono vari modi in cui l'host(il rasperry pi, la schedina connessa alla rete wifi) può controllare se un dispositivo e in casa:

1. ping sensor
2. Unifi integration setup
3. Hass companion app (Quella che è stata utilizzata)
4. iCloud for iOS devices

Spiegazioni setups:

Home assistant farà un ping al telefono, ossia controllerà se esso è connesso al wifi, se risponde allora è connesso alla stessa rete, altrimenti verra considerato come non a casa.

Se il router di casa è compatibile con questa seconda funzionalità di h.ass allora basterà controllare se il telefono è nella lista di dipositivi connessi al wifi (Peferibile al ping se possibile).

Come detto precedentemente l'app userà il gps per tracciare il dispositivo e controllare se le sue coordinate rientrano nelle aree interessate. Questa opzione permette di sapere sempre dove sei, mentre con quelle precedenti è possibile sono sapere se il telefono è connesso al wifi.

Specifico per iOS, utilizza il iCloud di apple, per conoscere la posizione.