Home Assistant (μέρος 6) | Δημιουργούμε αυτοματισμούς και ειδοποιήσεις βάσει της παρουσίας μας στο χώρο

Home Assistant presence detection

Έχουμε πει στα προηγούμενα άρθρα ότι ένα "έξυπνο" σπίτι, εκτός από τις πληροφορίες που μας δίνει, πρέπει επίσης να δρα μόνο του κάτω από συγκεκριμένες συνθήκες, αλλά και να μας ειδοποιεί όταν πρέπει να ενημερωθούμε για ένα συμβάν. Εφόσον έχουμε δει πλέον πώς λειτουργούν οι αυτοματισμοί και οι ειδοποιήσεις, ήρθε η ώρα να τα "παντρέψουμε" όλα με μία από τις σημαντικότερες παραμέτρους, η οποία δεν είναι άλλη από την παρουσία μας στο χώρο.

Με απλά λόγια για να αισθανθούμε οτι το σπίτι μας είναι πραγματικά "έξυπνο", πρέπει να μας δίνει την εντύπωση οτι σκέφτεται μόνο του και αντιδρά όταν κάτι συμβαίνει, ιδίως όταν ερχόμαστε ή φεύγουμε από το χώρο μας! Είναι πολύ ωραίο για παράδειγμα να σε υποδέχεται το σπίτι σου ανάβοντας τα φώτα όποτε μπαίνεις μέσα. Να το κάνει όμως μόνο για σένα! Να σε ειδοποιεί όταν έχεις φύγει και έχεις ξεχάσει το συναγερμό ή να σε ενημερώνει αν ο συγκάτοικός σου είναι αυτή τη στιγμή στο χώρο ή αν έχει φύγει και αυτός. Όλα αυτά μπορούν να γίνουν κάνοντας tracking στους χρήστες του Home Assistant και υπάρχουν διάφοροι τρόποι για να το επιτύχουμε.

Tracking από την Android εφαρμογή


Ο πρώτος τρόπος είναι μέσω της Android εφαρμογής, την οποία πιθανότατα θα χρησιμοποιούν όλοι οι χρήστες της υπηρεσίας. Ανοίγουμε λοιπόν το πλαϊνό μενού και επιλέγουμε "Διαμόρφωση εφαρμογής". Στη συνέχεια θα μπούμε στο μενού "Manage Sensors" όπου θα δούμε όλους τους αισθητήρες που μπορεί να προσφέρει η Android συσκευή μας στο Home Assistant! Εκεί θα βρούμε άπειρα πράγματα τα οποία μπορούμε να χρησιμοποιήσουμε, αλλά στην προκειμένη περίπτωση μας ενδιαφέρουν τα "Location Sensors" τα οποία πρέπει να ενεργοποιήσουμε.

Home Assistant Android app tracking

Πηγαίνοντας τώρα στο μενού "Ρυθμίσεις > Ενσωματώσεις" θα δούμε το "Mobile App" με τις συσκευές που έχουμε σετάρει. Επιλέγοντας μία από αυτές και πατώντας "entitities" ("Μητρώο οντοτήτων") θα δούμε όλους τους αισθητήρες που είναι πλέον διαθέσιμοι στο Home Assistant.

Home Assistant mobile app entities

Διαφήμιση

Tracking μέσω nmap


Ο δεύτερος τρόπος για να κάνουμε track τους χρήστες μας είναι μέσω του nmap, ενός εργαλείου του Linux το οποίο σκανάρει το δίκτυο και μας ενημερώνει για τις συσκευές που έχουν συνδεθεί σε αυτό. Η λογική αυτής της μεθόδου είναι ότι μπαίνοντας στο σπίτι, το κινητό μας θα συνδεθεί στο Wi-Fi, οπότε το Home Assistant θα μας εμφανίσει ότι είμαστε στο σπίτι. Αντίστοιχα όταν φύγουμε από το σπίτι, θα αποσυνδεθεί από το Wi-Fi και θα μας δείξει εκτός.

Για να ενσωματώσουμε λοιπόν το nmap στο Home Assistant, θα πρέπει να ανοίξουμε τον "File editor", να επιλέξουμε το αρχείο "configuration.yaml" και να προσθέσουμε την IP του δικτύου μας (π.χ. 192.168.1.0) ως εξής:

# Nmap tracker
device_tracker:
  - platform: nmap_tracker
    hosts: 192.168.1.0/24

Αν κάνουμε επανεκκίνηση θα δούμε ότι πλέον εμφανίζονται όλες οι συσκευές του δικτύου μας στο "Μητρώο Οντοτήτων". Με αυτό τον τρόπο μπορούμε επίσης να βλέπουμε αν κάποια συσκευή μας δε συνδέεται στο δίκτυο (π.χ. ένας οικιακός server). Αν δε θέλουμε τέλος να εμφανίζονται κάποιες συγκεκριμένες συσκευές, μπορούμε να τις αποκλείσουμε προσθέτοντας το δείκτη "exclude", ενώ μπορούμε να ρυθμίσουμε και ανά πόσα δευτερόλεπτα θέλουμε να τρέχει το nmap. Για παράδειγμα:

# Nmap tracker
device_tracker:
  - platform: nmap_tracker
    hosts: 192.168.1.0/24
    home_interval: 10
    exclude:
     - 192.168.1.12
     - 192.168.1.13

Σημείωση:
Θα χρησιμοποιήσουμε ταυτόχρονα και τους δύο tracker, γιατί έχουν ξεχωριστές δυνατότητες. Για παράδειγμα το nmap είναι πολύ γρήγορο, οπότε είναι χρήσιμο σε ειδοποιήσεις, ενώ η εφαρμογή του Android μας δίνει πολλά και διαφορετικά δεδομένα για το χρήστη, τα οποία θα χρειαστούμε! Υπάρχουν επίσης ενσωματώσεις για tracking μέσω router, μέσω Bluetooth ή μέσω εφαρμογών όπως το ownTracks, αλλά δε θα τις δούμε σήμερα. 

Διαφήμιση

Ρύθμιση ειδοποιήσεων και αυτοματισμών με βάση την παρουσία μας


Τώρα που έχουμε σετάρει τους δύο tracker, θα δημιουργήσουμε μερικά σενάρια για να τους αξιοποιήσουμε. Σε κάθε μία από τις περιπτώσεις θα ζητάμε από το Home Assistant να τσεκάρει την κατάσταση ενός tracker για να εκτελέσει στη συνέχεια τον αυτοματισμό που θα ορίσουμε. 

Μία χρήσιμη πρακτική είναι να ομαδοποιήσουμε πολλούς tracker κάτω από ένα πρόσωπο για να τους τσεκάρει όλους μαζί! Για να το κάνουμε αυτό θα πάμε "Ρυθμίσεις > Άτομα" και θα δημιουργήσουμε τα πρόσωπα που θέλουμε να παρακολουθούμε. Απαραίτητο είναι να προσθέσουμε τις συσκευές τους και πιο συγκεκριμένα τους tracker που μας δίνει το nmap και η Android εφαρμογή για τον καθένα. Τα πρόσωπα αυτά στο μητρώο οντοτήτων του Home Assistant προβάλλονται ως "person". Για παράδειγμα την ομαδοποίηση των συσκευών του χρήστη "Chris" θα τη βρούμε ως "person.chris".

Home Assistant - Adding persons

Ας πούμε για παράδειγμα ότι θέλουμε να μας έρχεται μία ειδοποίηση μόλις ο "Chris" μπει στο σπίτι. Θα πάμε στο μενού "Ρυθμίσεις > Αυτοματισμοί" και θα προσθέσουμε έναν νέο αυτοματισμό. Στα "Εναύσματα" θα ρυθμίσουμε να τσεκάρει αν ο nmap tracker που αντιστοιχεί στον "Chris" έχει μπει σε κατάσταση "home". Αυτό θα συμβεί μόλις το κινητό του "Chris" συνδεθεί στο Wi-Fi. Στις "Ενέργειες" θα κάνουμε ένα κάλεσμα στην υπηρεσία "notify" και θα γράψουμε το μήνυμα που θέλουμε να λάβουμε όταν ο "Chris" μπει στο σπίτι.

Home Assistant - Nmap tracking automations

Σε ένα δεύτερο παράδειγμα ας πούμε ότι ο "Chris" θέλει να τον υποδέχεται το σπίτι με αναμμένα φώτα, μόλις επιστρέψει από τη δουλειά του. Σε αυτή την περίπτωση δε θα χρησιμοποιήσουμε τον nmap tracker, γιατί θέλουμε το σπίτι να είναι φωτισμένο πριν μπούμε σε αυτό. Θα πάμε λοιπόν "Ρυθμίσεις > Zones" και θα φτιάξουμε μία ζώνη την οποία θα ονομάσουμε "Σπίτι".

Home Assistant - Creating zones

Τώρα θα πάμε "Ρυθμίσεις > Αυτοματισμοί" και θα δημιουργήσουμε έναν νέο αυτοματισμό. Στα "Εναύσματα" θα επιλέξουμε "Είσοδο" στη ζώνη που δημιουργήσαμε και τον tracker του κινητού μας τηλεφώνου. Στις "Ενέργειες" θα καλέσουμε την υπηρεσία "light.turn_on" και θα επιλέξουμε τα φώτα που θέλουμε να ανάψουν. Με αυτό τον τρόπο όταν ο "Chris" φτάσει έξω από το σπίτι του, το Home Assistant θα του έχει έτοιμη μία "ζεστή" υποδοχή με "φωταψίες".


Εν κατακλείδι


Οι αυτοματισμοί βάσει παρουσίας είναι απίστευτα βολικοί και μπορούν να γίνουν ιδιαίτερα προσωποποιημένοι για όλα τα μέλη της οικογενείας. Για παράδειγμα ο "Chris" μπορεί αν θέλει πριν φτάσει στο σπίτι να τον περιμένει επίσης το PlayStation ανοιχτό, ενώ η "Kallis" που της αρέσει ο απογευματινός καφές, να βρίσκει την καφετιέρα έτοιμη! Σε αντίθεση με τους αυτοματισμούς που βασίζονται στην ώρα, οι συγκεκριμένοι δεν εκτελούνται όταν λείπουμε από το χώρο και έτσι κάνουμε οικονομία.

Μπορούμε επίσης να δημιουργήσουμε και άλλες ζώνες όπως "Δουλειά", "Σχολείο" ή "Γυμναστήριο" και να φτιάξουμε ειδοποιήσεις που θα στέλνονται στα μέλη της οικογενείας, όταν κάποιος μπαίνει ή βγαίνει από αυτές. Για παράδειγμα όταν η "Kallis" φεύγει από τη δουλειά, μπορεί ο "Chris" να λαμβάνει την αντίστοιχη ειδοποίηση για να ετοιμάσει το φαγητό.

Σχόλια

Δείτε επίσης...

Ιδιωτικό απόρρητο | Το αφελές επιχείρημα του ''Δεν έχω τίποτα να κρύψω''

Android | Γιατί δε θα αγόραζα ποτέ smartphone της OnePlus

Φεύγω από την Google (μέρος 15) | ''Ξηλώνουμε'' τα Google apps από το Android

Docker (μέρος 7) | Στήνουμε έναν reverse proxy για τα container μας με το Traefik

Μάθε παιδί μου Linux (μέρος 11) | Δίσκοι, κατατμήσεις και σύστημα αρχείων (filesystem)

Απόρρητο | ''Μπερδεύουμε'' τον αλγόριθμο Google και Facebook με ψεύτικες πληροφορίες

Ubuntu Touch 2020 review | Μια πραγματική mobile GNU/Linux διανομή έτοιμη για καθημερινή χρήση

Android | Περιόρισε την παρακολούθηση των εφαρμογών και κόψε τις διαφημίσεις με το TrackerControl

Android | Βάλε στην ''απομόνωση'' τις εφαρμογές που δεν εμπιστεύεσαι με το Shelter

Docker (μέρος 1) | Τι είναι και πώς το εγκαθιστούμε στον υπολογιστή μας;