Home Assistant (μέρος 7) | Βγάζουμε το smart home μας στο ίντερνετ


Τώρα που έχουμε φτάσει σε ένα καλό επίπεδο ανάπτυξης του smart home server μας, ήρθε η ώρα να τον βγάλουμε και στον έξω κόσμο. Ήρθε η στιγμή που θα ανοίγεις την εφαρμογή από οποιοδήποτε μέρος του πλανήτη και θα μπορείς να ανάψεις τα φώτα, να βάλεις τη σκούπα να καθαρίσει το σπίτι ή να... ανοίξεις το PlayStation στο αγαπημένο σου παιχνίδι, για να σε περιμένει μόλις φτάσεις σπίτι. Ναι, γίνεται κι αυτό!

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

  1. μία στατική IP ή ένα σταθερό domain name για το δίκτυό μας,
  2. ένα πιστοποιητικό SSL για την ασφάλεια της σύνδεσης στο ίντερνετ και
  3. το άνοιγμα της πόρτας 8123 στο router μας.


Ανοίγουμε την πόρτα στο router (Port forwarding)


Ας ξεκινήσουμε με το άνοιγμα της πόρτας στο router (άνοιγμα θύρας για να είμαστε ακριβείς), το λεγόμενο port forwarding όπως είναι ευρύτερα γνωστό. Η υπηρεσία του Home Assistant, επικοινωνεί μέσω της πόρτας 8123 από προεπιλογή. Θα πρέπει λοιπόν να μπούμε στο interface του router και να την ανοίξουμε.

Η διαδικασία port forwarding είναι διαφορετική σε κάθε router, γιατί πολύ απλά τα μενού τους είναι διαφορετικά. Για αυτό το σκοπό έχει δημιουργηθεί η σελίδα Port Forward, στην οποία μπορούμε να βρούμε αναλυτικές οδηγίες για όλες σχεδόν τις συσκευές.

Τα βήματα όμως σε γενικές γραμμές είναι τα εξής. Όντας συνδεδεμένοι στο τοπικό μας δίκτυο, κάνουμε login στη διεύθυνση του router μας (π.χ. "192.168.1.1") και πηγαίνουμε στο μενού με ονομασία "Port forwarding" ή "Virtual server" ή "NAT". Εκεί υπάρχει ένας άδειος πίνακας στον οποίο μπορούμε να καταχωρήσουμε τους κανόνες port forwarding. Δημιουργούμε λοιπόν μία νέα καταχώριση με τα εξής στοιχεία (αν αυτά απαιτούνται):

From: 8123
To: 8123
Port: 8123
Internal IP: Η IP στην οποία τρέχει ο Home Assistant (π.χ. 192.168.1.100)
External IP: το αφήνουμε κενό

Σε αυτό τον κανόνα δίνουμε δηλαδή ένα εύρος θυρών που θέλουμε να ανοίξουμε (στη συγκεκριμένη περίπτωση είναι από την 8123 έως την 8123), λέμε στη συνέχεια ποια θύρα θέλουμε να χρησιμοποιήσουμε (την 8123 και πάλι) και ορίζουμε μέσω της εσωτερικής IP, ποια συσκευή μας θα απαντάει σε αυτή τη θύρα. Τέλος αποθηκεύουμε και κάνουμε επανεκκίνηση στο router μας.


Διαφήμιση

Δημιουργούμε ένα domain name για την IP μας


Αν ο παροχός μας δε μας παρέχει μία στατική IP για το δίκτυό μας, μπορούμε να ορίσουμε ένα domain name στην εξωτερική IP του δικτύου μας. Υπάρχουν πολλές υπηρεσίες που μπορούν να μας εξυπηρετήσουν σε αυτό το κομμάτι, ενώ μερικά router μας δίνουν τη δυνατότητα να τις ρυθμίσουμε απ' ευθείας επάνω τους. Εμείς χρησιμοποιούμε το DuckDNS γιατί είναι πολύ εύκολο στη χρήση και γιατί μας... αρέσουν τα παπάκια!

Μπαίνουμε λοιπόν στην επίσημη σελίδα του DuckDNS και κάνουμε login με έναν από τους διαθέσιμους τρόπους. Στην κατηγορία "domains" και στο πεδίο "sub domain", βάζουμε τη λέξη που θέλουμε να χρησιμοποιούμε και πατάμε "add domain" για να δούμε αν είναι διαθέσιμη και να την καταχωρήσουμε. Αν για παράδειγμα έχουμε επιλέξει τη λέξη "zouzounia", το domain name μας θα είναι το "zouzounia.duckdns.org".

Duck DNS domain name

Στο πεδίο "current ip" θα δούμε επίσης και τη δημόσια διεύθυνση IP που έχει αυτή τη στιγμή το δίκτυό μας. Μπορούμε να τσεκάρουμε αν είναι η σωστή, γράφοντας απλά στην Αναζήτηση Google τη φράση "what's my ip". Από όλες τις πληροφορίες που μας δίνει το Duck DNS, σημειώνουμε το token το οποίο θα χρειαστούμε στη συνέχεια.

Ρυθμίζουμε το domain name και το πιστοποιητικό SSL


Ανοίγουμε τώρα το Home Assistant και πηγαίνουμε στο "Add-on Store". Από εκεί εγκαθιστούμε το "Duck DNS" το οποίο θα μας φέρει και τα πιστοποιητικά μέσω της υπηρεσίας "Let's Encrypt"! Πηγαίνουμε λοιπόν στην καρτέλα "Configuration" του "Duck DNS" και προσθέτουμε τα εξής:

lets_encrypt:
accept_terms: true
certfile: fullchain.pem
keyfile: privkey.pem
token: x0x0x0x0x0x-x0x0x0x-x0x0x0x-x0x0x0x-x0x0x0x0x0x
domains:
- zouzounia.duckdns.org
aliases: []
seconds: 300

Σημείωση:
Στη θέση "token" προσθέτουμε το token του λογαριασμού μας στο Duck DNS.

Πατάμε "Save" και επιστρέφουμε στην πρώτη καρτέλα του "Duck DNS" όπου ενεργοποιούμε το "Start on boot" και το "Auto update" και πατάμε "START".

Διαφήμιση

Ενημερώνουμε το configuration του Home Assistant


Τώρα πηγαίνουμε στο πλαϊνό μενού του Home Assistant και μπαίνουμε στο "File editor". Εκεί ανοίγουμε το αρχείο "configuration.yaml" και προσθέτουμε τα εξής:

http:
base_url: https://zouzounia.duckdns.org:8123
ssl_certificate: /ssl/fullchain.pem
ssl_key: /ssl/privkey.pem

Σημείωση:
Αλλάζουμε το "base url" με αυτό που σημειώσαμε πριν.

Τέλος πηγαίνουμε "Ρυθμίσεις > Έλεγχος διακομιστή", πατάμε "Έλεγχος παραμετροποίησης" και αν μας εμφανίσει την ένδειξη "Έγκυρη ρύθμιση", πατάμε "ΕΠΑΝΕΚΚΙΝΗΣΗ" για να ενεργοποιηθούν οι αλλαγές.

Πλέον μπορούμε να μπούμε στο Home Assistant, ανοίγοντάς το από οποιοδήποτε μέρος του κόσμος, πληκτρολογώντας τη διεύθυνση:

https://zouzounia.duckdns.org:8123

Σχόλια

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

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

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) | Τι είναι και πώς το εγκαθιστούμε στον υπολογιστή μας;