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

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

alias: 'Device State Change Alert'
trigger:
platform: state
entity_id: person.admin
condition:
condition: template
value_template: '{{ trigger.to_state.state != trigger.from_state.state }}'
action:
- service: notify.notify_me
data_template:
message: >
{{ trigger.to_state.attributes.friendly_name }}'s position: {{ trigger.to_state.state }}
title: "ZoneChanged"

Risultato:

ZoneChanged
admin's position: home

Conclusione: Il sistema di tracciamento utilizza il gps alo 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à, cioè 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 (es notifica dal bot di telegram alla chat interessata).