projects:iotaiuto:presence

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. 
  • projects/iotaiuto/presence.txt
  • Last modified: 2021/11/26 16:28
  • by fmussati