A felhasználók helyzetének ismeretével kitárul a világ, rengeteg új automatizmust lehet készíteni ezzel a plusz információval az okos otthon rendszerhez. Lehet figyelni, hogy a telefonok a helyi hálózaton vannak-e, sajnos ez pontatlan, mert alvó módban offline vannak a készülékek. Lehet adni mindenkinek egy BLE taget amit magánál tart, ezeket is tudja figyelni a Home Assistant. Ez viszont egy plusz eszköz. A mobilt úgyis mindenki viszi magával. Az Owntracks a készülék GPS koordinátáját küldi be a Home Assistantnak. Ez annyira pontos, mint a telefon GPS modulja.
Home Assistant beállítása
A Home Assistant képes fogadni az Owntracks által küldött adatokat. Az MQTT brokert nem akarom kiengedni ezért az owntracks_http komponenst állítottam be, az alábbiak szerint:
device_tracker:
- platform: owntracks_http
max_gps_accuracy: 50
track_new_devices: true
A Home Assistant újraindításkor létrehoz egy known_devices.yaml nevű fájl, amennyiben nem létezik. Ide gyűjti az ismert eszközök adatait, ill ebben lehet beállítani néhány dolgot.
gyengus_lgg5:
hide_if_away: false
mac: xxxxxxxxxx
name: xxxxxxxxx
picture: /local/xxxxxxx.jpg
track: true
vendor: LG
A hide_if_away
hatására az adott eszközt csak akkor mutatja, ha otthon van, a térképen nem fog látszani, merre jár. Ettől függetlenül a fejlesztői eszközökön belül rákeresve az adott eszközre, megtalálható az aktuális GPS koordinátája.
A picture
mezőben be lehet állítani egy képet is amit ikon helyett jelenít meg, a térképen is ezt használja. Ezt a képet a www mappába kell tenni.
Betettem a telefonjainkat egy csoportba. A csoport állapota "home", ha valamelyikünk otthon van.
Az alábbi sensor template segítségével, nyomon követhetem a telefonom töltöttségét. Az ikont cserélgeti a töltöttségtől függően.
sensor:
- platform: template
sensors:
lgg5_battery:
friendly_name: LG G5 töltöttség
unit_of_measurement: '%'
value_template: "{{ states.device_tracker.gyengus_lgg5.attributes.battery }}"
icon_template: >
{% if states.device_tracker.gyengus_lgg5.attributes.battery > 50 %}
mdi:battery
{% elif states.device_tracker.gyengus_lgg5.attributes.battery > 20 %}
mdi:battery-50
{% else %}
mdi:battery-10
{% endif %}
Így néz ki:
Be lehet állítani zónákat. Ha valamelyik eszköz egy adott zónában van, akkor az állapota a zóna nevével fog megegyezni. Ehhez meg kell adni a zónák koordinátáját és méretét:
zone:
- name: Home
latitude: !secret home_latitude
longitude: !secret home_longitude
radius: 10
icon: mdi:home
- name: Work
latitude: !secret work_latitude
longitude: !secret work_longitude
radius: 20
icon: mdi:briefcase
A Home Assitsant Térkép funkciójában láthatóak a zónák és, hogy merre járnak az eszközök:
A lenti képen látszik, hogy jelenik meg az eszközök helyzete, töltöttségük, otthontól való távolságom:
Owntracks beállítása
Mivel csak belső hálózatból érhető el az MQTT broker, ezért a Home Assistant API-jához kapcsolódik az Owntracks, ehhez a "Mode"-ot "Private HTTP"-re állítottam. A "Host"-hoz kell beírni a teljes linket, pl: https://domain.hu/api/owntracks/name/device
. Ezután létrejön az adott eszközhöz tartozó entity a következő ID-val: device_tracker.name_device
.
BLE tag
Az Owntracks képes jelenteni, hogy az adott BLE beacon hatótávon belül van-e. A beacon állapota vagy az a zóna lesz ahol utoljára látta a telefon, vagy "away", ha zónán kívül veszett el a kapcsolat köztük. Vettem egy nRF51822 chipes beacont. Ez alapbeállítás szerint néhány alapadatát sugározza, ebből csak az UUID, a Major és a Minor kell az Owntracks beállításához. A szükséges információkat az nRF Connect nevű mobil alkalmazással derítettem ki.
Ezután az Owntracks-ben a Regions fülön a "+" jelre kattintva előjövő űrlapba beírtam a megfelelő adatokat. Fontos még, hogy a "Share" legyen engedélyezve.
Ha a beacont valamelyik zónába helyezzük és ugyanaz a neve, mint a zónának, akkor a hatósugarába érve az Owntracks befrissíti az eszköz állapotát. Ezt még nem próbáltam. Akkor lehet jó, ha GPS alapon lassan frissül az eszköz állapota.
Proximity
A Home Assistant ki tudja számolni, hogy az adott eszköz és akinél van, milyen távol helyezkedik el valamelyik beállított zónától, légvonalban, pl az otthontól:
proximity:
home:
devices:
- device_tracker.gyengus_lgg5
tolerance: 50
unit_of_measurement: m
Lehetőségek
Azzal, hogy a Home Assistant tudja, van-e otthon valaki, sokkal személyreszabhatóbb automatizmusokat lehet írni. Kikapcsolhat bizonyos eszközöket amikre csak akkor van szükségünk, ha otthon vagyunk, pl vízmelegítőt, vagy bekapcsolhatja a riasztót.