Στο προηγούμενο post κάναμε εγκατάσταση τις chromecast συσκευές μας στο Smart-Home hub και μπορέσαμε απο την άνεση του υπολογιστή μας ή του κινητού εντος του δικτύου wifi να διαχειριστούμε τις συσκευές αυτες. Στα επόμενα post θα δούμε πως θα μπορέσουμε να συνδέσουμε ακόμα περισσότερες συσκευές (πριζες, λάμπες κ.α.)  στο smart home hub. Σήμερα όμως θα δούμε πως θα μπορέσουμε να διαχειριστούμε το smart-home hub εκτός σπιτιού εχοντας προσβαση μεσω internet απο όπου κι αν βρισκόμαστε.


Για να το κάνουμε αυτό θα χρειαστεί να εγκαταστήσουμε κάποια plugin και αρκετή παραμετροποίηση, τέλος θα χρειαστεί να ανοίξουμε πόρτες στο firewall του router που διαθέτουμε για να έχουμε την επιθυμητή προσβαση εκτος σπιτιου, πάμε να τα δούμε με τη σειρά.

Σε αυτό το σημείο να υπενθημίσω πως η έκδοση του home assistant που τρέχω αυτη τη στιγμη ειναι ή 0.110.2 και είναι η τελευταία διαθέσιμη έκδοση.


1. Duckdns.
Για να μπορέσουμε να βρίσκουμε το smart home hub εκτός του home wifi  θα χρειαστούμε μια υπηρεσία dynamic dns. H υπηρεσία αυτή δένει την ip που διαθέτει το router και μας γλιτώνει απο το να θυμόμαστε ομάδες ψηφίων που πιθανόν και να αλλάξουν αν γίνει restart στο router μας. Για να δημιουργήσουμε ένα domain name  θα πρεπει να συνδεθούμε στη σελιδα http://www.duckdns.org/ να κάνουμε εγγραφή. Μετά θα ζητήσουμε ένα νέο domain name . Η υπηρεσία είναι δωρεάν και είναι αρκετά σταθερή. Τα στοιχεία που χρειαζόμαστε για να συνεχίσουμε το setup στο home assistant εκτός από το domain name ειναι και ο αλφαριθμητικός token.



Αφού έχουμε τα στοιχεία συνδεόμαστε στο home assistant hub και επιλέγουμε στο μενου
supervisor>Add-on store και από τα official add-ons κάνουμε εγκατάσταση το Duck DNS.
Μόλις ολοκληρωθεί η εγκατάσταση στη σελίδα supervisor θα δούμε εγκατεστημένο το add-on που επιλέξαμε. Το ανοίγουμε και στο tab Configuration στο token συμπληρώνουμε το αλφαριθμητικό text που κρατήσαμε από το site,  στα domains συμπληρώνουμε το domain name της σελίδας μαζί με το .duckdns.org.
Επιστρέφουμε στην αρχική σελίδα και πατάμε start ώστε να ξεκινήσει το add-on.  Δεν ξεχναμε να ενεργοποιήσουμε το start on boot ώστε το add-on να ξεκινάει μόνο του μετά από επανεκκίνηση του smart-home hub. Για να ολοκληρώσουμε την εγκατάσταση θα πρέπει να συνδεθούμε στο
router του παρόχου και να κάνουμε port forward  τη εξωτερική πόρτα 8123 να ανακατευθυνθεί στη εσωτερική πόρτα 8123 που βρίσκεται το home assistant. Σώζουμε τις ρυθμίσεις του router και κάνουμε επανεκκίνηση. Αν όλα έχουν πάει καλα η σελίδα
http://το ονομα σου.duckdns.org:8123 θα δείχνει στην αρχική σελίδα του home assistant.
Επειδη ολα τα router δεν ειναι τα ιδια σε αυτη τη σελίδα https://portforward.com/ θα βρείτε οδηγίες για το πως θα ανοίξετε πόρτες στο δικό σας router.

Ως εδώ όλα καλά, δεν ήταν και κάτι τόσο δύσκολο. Η σωστή πρακτική ειναι να εχουμε ssl προστασία στη σελίδα του home assistant ειδικά τώρα που χρειάζεται να έχουμε πρόσβαση εκτός του home wifi. Για να το κάνουμε αυτό θα χρησιμοποιήσουμε την υπηρεσία let's encrypt γιά να πάρουμε ένα certificate X509 που θα χρησιμοποιήσουμε στη σελίδα του Home assistant.


2.Let's Encrypt
Απο το κεντρικό μενού επιλέγουμε supervisor>Add-on store και απο τα Official add-ons εγκαθιστούμε το let's Encrypt. Μόλις ολοκληρωθεί η εγκατάσταση επιστρέφουμε στη σελίδα supervisor και ανοίγουμε το let's encrypt. Στη σελίδα configuration χρησιμοποιούμε ένα πραγματικό(και υπαρκτό) email και στά domains συμπληρώνουμε το domain που πήραμε από το duckdns, σώζουμε το setup και δεν ξεκινάμε τίποτα μέχρι να ολοκληρώσουμε το επόμενο βήμα.



Στη σελίδα του firewall του router που διαθέτουμε θα πρέπει να ανοίξουμε μερικές πόρτες(port forward) για να μπορέσει το add-on του let's encrypt να επιβεβαιώσει ότι είμαστε κάτοχοι της σελίδας της οποίας ζητάμε το certificate. Έχουμε και λέμε...

internal port 80 ----> 80 external
internal port 443 ---> 443 external
internal port 8123  ---> 8123 external

Υπενθημίζω οτι για τις ρυθμίσεις του δικού σας router μπορείτε να ρίξετε μια ματιά εδω portforward .


Μόλις ολοκληρώσουμε τις αλλαγές στο firewall σώζουμε και κάνουμε restart. Όταν είμαστε και πάλι online τρέχουμε το let's encrypt add-on και θα παρατηρήσουμε στα logs στα importants notes οτι εχει εκδοθει το certificate.

Αυτό ήταν, πλέον έχουμε ενεργό certificate για το home assistant.


Για να το ενεργοποιήσουμε θα πρέπει απο ssh ή από samba share να ανοίξουμε το configuration.yaml και κάτω από το tag  http:  να προσθέσουμε τις παρακάτω γραμμές.

base_url: http://το όνομα σου.duckdns.org:8123
ssl_certificate: /ssl/fullchain.pem
ssl_key: /ssl/privkey.pem


σώζουμε και κάνουμε restart το home assistant.


Μέχρι τώρα η πρόσβαση στη σελίδα του home assistant ειναι μέσω του url

     http://το όνομα σου.duckdns.org:8123


Για να μπορέσει να γυρισει σε https θα πρεπει να μπούμε ξανά στις ρυθμίσεις του firewall στο router και να προωθήσουμε τη εσωτερική πόρτα 8123 στην εξωτερική 443. Σώζουμε και κάνουμε επανεκκίνηση το router και μόλις γίνει και πάλι online θα μπορούμε να συνδεθούμε μεσω ssl 

https://το όνομα σου.duckdns.org:8123

Καταλαβαίνω ότι το post ειναι μεγάλο και ίσως περισότερο σύνθετο σε σχέση με οτι έχουμε κάνει μέχρι τώρα, όμως ποιός ο λόγος να έχεις smart home αν δεν μπορείς να συνδεθείς remote από οποιοδήποτε σημείο και να βρίσκεσαι. Τωρα θα μπορείς να ανοίξεις τα φώτα η να ξεκινήσεις το air condition από όπου κι αν βρίσκεσαι και μάλιστα από μια και μονο εφαρμογή. Η δυνατότητα να εχεις encryption στη σελίδα σου δίνει ένα επιπλέον επίπεδο ασφαλείας. Όπως και να έχει το ssl θα το χρειαστούμε στα webhooks που θα φτιάξουμε αργότερα και ειναι must για οποιαδήποτε εξωτερική cloud υπηρεσία. Τα βήματα είναι λίγα και συγκεκριμένα και δεν πρέπει να σας τρομάζουν.

Για οποιαδήποτε απορία περιμένω να αφήσετε τα σχόλια σας.

Στο επόμενο post θα γράψουμε το πρώτο μας script χρησιμοποιώντας live δεδομένα απο sensors του home assistant αλλα και μεταβλητές και ίσως να έχουμε και κάποιο guest.

Καλή συνέχεια.