Perheen läsnäolotiedot ja automaatiot

Perheen läsnäolotiedot ja automaatiot

Home Assistant mahdollistaa perheenjäsenten läsnäolotietojen seurannan monella eri tavalla. Esimerkiksi kodin reitittimenä toimivan Asus RT-AC66U:n saa seuraamaan siihen liitettyjä laitteita lisäämällä configuration.yaml -tiedostoon rivit:

device_tracker:
  - platform: asuswrt
    host: YOUR_ROUTER_IP
    username: YOUR_ADMIN_USERNAME
    consider_home: 600

Näiden lisäksi täytyy lisätä joko salasanan rivi (password) tai SSH-avaimen rivi (ssh_key), jotta Home Assistant pääsee reitittimen tietoihin käsiksi. Tämä avaa Home Assistantin käyttöön listan kaikista kotiverkkoon liitetyistä laitteista. Perheenjäsenten ollessa kotona ja heidän puhelinten ollessa liitettynä kodin langattomaan verkkoon, voidaan päätellä että he ovat kotona.

Reitittimeltä saatava läsnäolotieto ei kuitenkaan ole täysin luotettava. Riippuen käytetystä puhelimesta ja sen asetuksista, saattaa laite katkaista yhteyden reitittimeen, vaikka olisikin sen kantaman ulottuvilla. Siihen auttaa yllä olevan consider_home -parametrin lisääminen, joka ”pitää laitteet kotona” vaikka yhteys katkeaisikin parametrissa määritellyn sekuntimäärän aikana.

Toinen vaihtoehto on käyttää puhelimessa erillistä sovellusta, joka kertoo käyttäjän sijainnin Home Assistantille. Tällöin perheenjäsenten sijainnit saadaan näkyviin myös Home Assistantin karttanäkymässä. Menetelmän haittapuolena on puhelimen hieman kasvava akun kulutus, koska sovellus lähettää sijaintitietoja toistuvasti. Home Assistantin iOS -sovellusksen saa lähettämään laitteen sijaintitiedot hyväksymällä tietojen lähetyksen sovelluksen asetuksissa. Myös iCloud -paikannus (Etsi iPhone) on Home Assistantissa tuettuna:

 - platform: icloud
   username: USERNAME
   password: PASSWORD
   account_name: accountname

Kaikki järjestelmän löytämät laitteet tallentuvat known_devices.yaml -tiedostoon. Ne laitteet, joiden paikkatietoa halutaan seurata, täytyy tiedostossa olla rivi: track: true. Laitteita, joita ei haluta seurata, kannattaa rivin olla mudosossa track: false. Tiedostoon voi lisätä myös linkit kuviin, jotka näkyvät Home Assistantin käyttöliittymässä.

kimmo_router_tracker:
  hide_if_away: false
  name: Kimmo
  track: true
  picture: /local/Kimmo.png

Home Assistantin karttanäkymälle voidaan configuration.yaml:ssa määritellä kodin lisäksi erillisiä alueita. Tällöin läsnäolotiedoissa näkyy henkilön kohdalla alueen nimi.

zone:
  - name: Koulu
    latitude: xx.xxxxxx
    longitude: xx.xxxxxx
    radius: 200
    icon: mdi:school
  - name: Työ
    latitude: xx.xxxxxx
    longitude: xx.xxxxxx
    radius: 150
    icon: mdi:worker

Parhaan varmuuden seurantaan saa yhdistämällä saman laitteen eri seurantamenetelmät tekemällä sensors.yaml -tiedostoon uuden sensorin. Henkilö on alla olevassa tapauksessa kotona jos kumpi tahansa seurantamenetelmä niin sanoo. Tila on Töissä, jos iOS -seurannan antama sijainti on yllä määritellyn Työ-alueen sisällä. Muussa tapauksessa laitteen sijainti on Poissa.

   kimmo:
     value_template: '{% if is_state("device_tracker.kimmo_router_tracker", "home") %}Kotona{% elif is_state("device_tracker.kimmo_ios_tracker", "home")%}Kotona{% elif is_state("device_tracker.kimmo_ios_tracker", "tyo")%}Töissä{% else %}Poissa{% endif %}'

Läsnäolotietoja voidaan käyttää automaatioissa esimerkiksi sytyttämällä valot kun saavutaan illalla kotiin, asettamalla ilmanvaihto ja/tai lämmitys pienemmälle kun talo on tyhjänä jne. Alla oleva yksinkertainen automaatio lähettää sähköpostin kun perheen alakoululainen lähtee kouluun. Ilmoituksen viestissä kerrotaan milloin lapsi lähti ja kauanko koulun alkuun on aikaa (oletuksena että koulu alkaa klo 8.15).

- alias: 'Ilmoitus kun Lapsi lähti kotoa'
  trigger:
    platform: state
    entity_id: device_tracker.lapsi_phone
    to: 'not_home'
  action:
    - service: notify.email
      data:
        message: 'Lapsi lähti kotoa klo {{((now().hour*60+now().minute-10)/60)|int}}:{{(((now().hour*60+now().minute-10)/60-((now().hour*60+now().minute-10)/60)|int)*60)|int}}. Aikaa koulun alkuun on {{495-(now().hour*60+now().minute-10)}} minuuttia.'
Läsnäolotiedot
Läsnäolotiedot

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *