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. {% if trigger.to_state.state == 'not_home' %} | Se lo stato dell'soggetto trigger è 'not_home' {{ trigger.to_state.attributes.friendly_name }}'s position: outside | Test mess. (se il soggetto non si trova in alcuna zona (uscita)) {% else %} | Altrimenti {{ trigger.to_state.attributes.friendly_name }}'s position: {{ trigger.to_state.state }} | Test mess. (entrata) {% endif %} | Fine della condizione title: "ZoneChanged" | Titolo mess.
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 è in casa:
1. ping sensor
2. Unifi integration setup
3. Hass companion app (Quella che è stata utilizzata)
4. iCloud for iOS devices
Spiegazioni setups:
1. 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.
2. 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).
3. 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.
4. Specifico per iOS, utilizza il iCloud di apple, per conoscere la posizione.