Home Assistant (μέρος 3) | Πώς δημιουργούμε αυτοματισμούς στο smart home server μας


Όλες σχεδόν οι οικιακές μας συσκευές συνδέονται πλέον με κάποιο τρόπο στο Wi-Fi και μπορούμε να τις χειριστούμε από το κινητό μας. Αν μπαίνουμε όμως στον κόπο κάθε φορά να τις ενεργοποιούμε χειροκίνητα, χάνεται το νόημα του "smart home". Εν ολίγοις αν το σπίτι μας δεν κάνει κάποια πράγματα αυτόματα, με απώτερο σκοπό να μας εξυπηρετήσει ή να μας κάνει οικονομία, τότε δεν είναι καθόλου "έξυπνο". Για αυτό λοιπόν και αφού εγκαταστήσαμε το Home Assistant και προσθέσαμε τις συσκευές μας σε αυτόν, σήμερα θα δούμε πώς φτιάχνουμε αυτοματισμούς. 

Οι αυτοματισμοί στο Home Assistant έχουν τη λογική της δράσης - αντίδρασης. Αν δηλαδή συμβεί κάτι (δράση) στο σπίτι μας, ο server θα ενεργοποιήσει μία συσκευή ή θα σταλεί μία ειδοποίηση (αντίδραση) και ούτω καθ' εξής. Συγκεκριμένα στο Home Assistant η ελληνική μετάφραση ονομάζει τις δράσεις ως "Εναύσματα" και τις αντιδράσεις ως "Ενέργειες" και λειτουργούν κάπως έτσι:

  • (Έναυσμα) Όταν η εξώπορτα του σπιτιού ανοίξει...
  • (Ενέργεια) ...θα ανάψει το φως της εισόδου.

Σύντομα όμως θα ανακαλύψουμε ότι δε θέλουμε να ισχύει σε όλες τις περιπτώσεις αυτός ο κανόνας. Για αυτό το σκοπό υπάρχουν οι "Συνθήκες" με τις οποίες μπορούμε να κάνουμε τον αυτοματισμό μας πιο ειδικό. Για παράδειγμα:

  • (Έναυσμα) Όταν η εξώπορτα του σπιτιού ανοίξει...
  • (Συνθήκες) ...και μόνο αν είναι βράδυ...
  • (Ενέργεια) ...θα ανάψει το φως της εισόδου.

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

Διαφήμιση

Χρήσιμοι αυτοματισμοί στο Home Assistant


Ακολουθούν μερικοί χρήσιμοι αυτοματισμοί με τους οποίους θα δούμε πώς περίπου λειτουργούν τα εναύσματα, οι συνθήκες και οι ενέργειες.

"Όταν ο ήλιος δύει να ανάβουν τα φώτα του δωματίου"


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

Το έναυσμα ρυθμίζεται ως εξής:


event: sunset
offset: '-00:30:00'
platform: sun

Στον "Τύπο εναύσματος" επιλέγουμε το "Ήλιος" οι επιλογές του οποίου είναι απλές. Διαλέγουμε λοιπόν τη "Δύση ηλίου" και στη "Μετατόπιση" (offset) μας δίνεται η δυνατότητα αν θέλουμε να μετακινήσουμε τον αυτοματισμό μας πίσω ή μπροστά. Εμείς θα το βάλουμε να λειτουργεί μισή ώρα νωρίτερα, για να ανάβει το φως μας στο σούρουπο και όχι ακριβώς στη δύση, όπου είναι ήδη σκοτάδι.

Η ενέργεια ρυθμίζεται με αυτό τον τρόπο:


entity_id: light.domatio
service: light.turn_on
data:
  brightness: 30
  rgb_color:
    - 0
    - 255
    - 0
  transition: 2

Εδώ θα επιλέξουμε το "Κάλεσμα υπηρεσίας" και στο πεδίο "Υπηρεσίες" θα δούμε όλες όσες διατίθενται από τις συσκευές που έχουμε συνδέσει στο Home Assistant. Επιλέγουμε λοιπόν το "light.turn_on" και δηλώνουμε επίσης τη λάμπα η οποία θέλουμε να ανάβει, στη δική μας περίπτωση "light.domatio"

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

"Όταν έρχομαι στο σπίτι και είναι βράδυ να ανάβουν τα φώτα της εισόδου"


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

Το έναυσμα:


platform: state
entity_id: device_tracker.mi_a2
to: home

Οι συνθήκες:


condition: time
after: '16:00:00'
before: '23:00:00'

Η ενέργεια:


service: light.turn_on
entity_id: light.eisodos

Εδώ χρησιμοποιούμε ως "έναυσμα" την οντότητα "device_tracker.mi_a2" η οποία παρακολουθεί την τοποθεσία του smartphone μέσα από την εφαρμογή του Home Assistant. Μόλις λοιπόν το smartphone μπει στη ζώνη του σπιτιού, η κατάστασή του θα αλλάξει από "not_home" σε "home". Λέμε λοιπόν στον αυτοματισμό μας ότι όταν συμβαίνει αυτό, θέλουμε να ανάβει (light.turn_on) το φως της εισόδου (light.eisodos). Επειδή όμως αυτό θέλουμε να συμβαίνει μόνο τις απογευματινές ώρες, στις "συνθήκες" επιλέγουμε το "Χρόνο" και ορίζουμε από τις 16:00 έως τις 23:00.

Διαφήμιση

"Όταν η θερμοκρασία ανεβαίνει και είναι κάποιος στο σπίτι να ανάβει ο ανεμιστήρας"


Σε αυτό τον αυτοματισμό θα δούμε πώς μπορούμε να λειτουργήσουμε με ένα εύρος τιμών που λαμβάνουμε από έναν αισθητήρα. Θέλουμε να ανάβει ο ανεμιστήρας όταν η θερμοκρασία υπερβαίνει τους 30 βαθμούς Κελσίου, αλλά μόνο όταν υπάρχει κόσμος στο σπίτι.

Το έναυσμα:


platform: numeric_state
entity_id: sensor.temperature
above: '30'

Οι συνθήκες:


condition: state
entity_id: device_tracker.mi_a2
state: home

Η ενέργεια:


service: fan.turn_on
entity_id: fan.ionistis

Στο "έναυσμα" επιλέξαμε την "Αριθμητική κατάσταση" (numeric_state) για τον αισθητήρα θερμοκρασίας (sensor.temperature) και βάλαμε να λειτουργεί μόνο όταν δείξει "Πάνω από: 30". Στις "συνθήκες" χρησιμοποιήσαμε τις ίδιες με πριν για να ορίσουμε την παρουσία μας στο χώρο, μέσω του smartphone, ενώ στην "ενέργεια" ενεργοποιούμε τον ανεμιστήρα (fan.turn_on) με το όνομα "Ιονιστής" (fan.ionistis).

Μπορούμε να φτιάξουμε και έναν αντίθετο κανόνα όπου θα σταματάει ο ιονιστής όταν η θερμοκρασία πέσει κάτω από τους 30 βαθμούς ή να ορίσουμε ένα εύρος μέσα στο οποίο θα λειτουργεί, για παράδειγμα από τους 28 έως τους 32 βαθμούς.

"Όταν η πόρτα ανοίγει να μου έρχεται μία ειδοποίηση"


Εδώ θα δούμε πώς λειτουργούν οι αισθητήρες που μας δίνουν τιμές "on/off" όπως είναι ο αισθητήρας της πόρτας.

Το έναυσμα:


entity_id: binary_sensor.door
platform: state
to: 'on'

Η ενέργεια:


service: notify.notify
data:
  title: Πόρτα!
  message: Η πόρτα άνοιξε

Στο "έναυσμα" επιλέγουμε την "Κατάσταση" (state) του αισθητήρα η οποία όταν είναι "off" σημαίνει ότι η πόρτα είναι κλειστή και όταν είναι "on" σημαίνει ότι είναι ανοιχτή. Εκεί θα πρέπει να συμπληρώσουμε από ποια κατάσταση φεύγει ή / και προς ποια κατάσταση πηγαίνει ο αισθητήρας. Μπορούμε λοιπόν να βάλουμε "Από: off" και "Προς: on" που σημαίνει ότι η πόρτα ήταν κλειστή και άνοιξε. Μπορούμε όμως να βάλουμε απλά "Προς: on" που σημαίνει ότι η πόρτα άνοιξε, ασχέτως σε ποια κατάσταση ήταν πριν, ενώ σωστό είναι να βάλουμε απλά "Από: off" που σημαίνει ότι η πόρτα μας από κλειστή έγινε κάτι άλλο. Στην περίπτωσή μας λοιπόν άνοιξε.

Στις "ενέργειες" επιλέγουμε και πάλι το "Κάλεσμα υπηρεσίας" και στη συνέχεια το "notify.notify". Εδώ είναι υποχρεωτικό να συμπληρώσουμε τα "Δεδομένα υπηρεσίας", στα οποία με το "message" ορίζουμε την ειδοποίηση που θα μας έρχεται και με το "title" τον τίτλο του.

"Όταν βλέπω μια ταινία και είναι βράδυ να χαμηλώνουν τα φώτα σαλονιού"


Κλείνουμε με έναν τελευταίο αυτοματισμό ο οποίος είναι πολύ ψαρωτικός. Θα κάνουμε τις νυχτερινές ώρες να χαμηλώνουν τα φώτα και να αλλάζουν χρώμα, όποτε ξεκινάμε μία ταινία στο Chromecast.

Το έναυσμα:


platform: state
entity_id: media_player.tv
to: playing

Οι συνθήκες:


condition: state
entity_id: sun.sun
state: below_horizon

Η ενέργεια:


service: light.turn_on
entity_id: 'light.saloni, light.saloni_2'
data:
  brightness: 128
  rgb_color:
    - 102
    - 102
    - 255
  transition: 2

Στο "έναυσμα" επιλέγουμε και πάλι την "Κατάσταση" για το Chomecast (media_player.tv) στην οποία θα δώσουμε την τιμή  "Προς: playing". Με αυτό τον τρόπο δηλώνουμε ότι ο αυτοματισμός μας θα ξεκινάει όταν η κατάσταση της συσκευής μετατρέπεται σε "αναπαραγωγή".

Στις "συνθήκες" λέμε ότι όλο αυτό θα συμβαίνει μόνο όταν ο ήλιος βρίσκεται κάτω από τον ορίζοντα, ενώ στην "ενέργεια" καλούμε την υπηρεσία "light.turn_on" για τις λάμπες "light.saloni" και "light.saloni_2". Επειδή θέλουμε να χαμηλώσουμε τα φώτα και να τους αλλάξουμε χρώμα, πρέπει να προσθέσουμε στα "Δεδομένα υπηρεσίας" μία τιμή για το "brightness" και μία για το "rgb_color", ενώ προσθέσαμε και το "transition" για μία πιο απαλή μετάβαση στη νέα κατάσταση.

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


Η ρύθμιση των αυτοματισμών είναι παράλληλα εύκολη αλλά και δύσκολη στο Home Assistant, καθώς όπως είδαμε σε πολλές περιπτώσεις πρέπει να γνωρίζουμε και να προσθέσουμε χειροκίνητα κάποια από τα στοιχεία. Το καλό είναι ότι αν βρούμε μία φορά αυτό που ταιριάζει στις συσκευές μας, μπορούμε μετά να το χρησιμοποιήσουμε σε άπειρους αυτοματισμούς. Ευτυχώς στην επίσημη σελίδα του θα βρούμε πολλά παραδείγματα, ενώ στο forum υπάρχει πολύς κόσμος για να μας βοηθήσει.

Σχόλια

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

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

Άποψη | Πώς το Facebook και η ανθρώπινη βλακεία καταστρέφουν την ψυχολογία μας και τον κοινωνικό ιστό

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

Μάθε παιδί μου Linux (μέρος 8) | Άδειες φακέλων, αρχείων και διεργασιών

3D Printing | Τι είναι το brim, το skirt και το raft και πώς μας βοηθούν να έχουμε επιτυχημένες εκτυπώσεις

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

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

Google Pixel 4a, OnePlus Nord, iPhone SE | Συγκρίνουμε τα πιο ενδιαφέροντα smartphone του 2020

Home Assistant (μέρος 5) | Πώς ενεργοποιούμε τις ειδοποιήσεις στον smart home server μας