Techblog Tutorials: Έξυπνο σπίτι με Raspberry Pi 3 και Home Assistant [Part Ι]

12

Techblog Tutorials logo

Το πρώτο Techblog tutorial είναι γεγονός και όπως σας είχαμε υποσχεθεί, θα δούμε μια σειρά από home automations με χρήση του Home Assistant server σε Raspberry Pi 3 (RPi3). Φυσικά το tutorial θα έρθει σε παραπάνω από ένα μέρη μιας και είναι πολλά αυτά που πρέπει να καλυφθούν.

Στόχος
Εξοικείωση με τα βασικά στοιχεία του RPi3 και του Home Assistant και εγκατάσταση του server για να είμαστε έτοιμοι στα επόμενα parts να σετάρουμε έξυπνες συσκευές.

Πριν ξεκινήσουμε με τα απαραίτητα βήματα, ας δούμε λίγα πράγματα για το Raspberry και το Home Assistant:

Raspberry Pi
To Raspberry είναι ένας single-board computer στο μέγεθος μιας πιστωτικής κάρτας που δημιουργήθηκε στην Αγγλία με αρχικό στόχο την προώθηση της επιστήμης των υπολογιστών σε σχολεία και τριτοκοσμικές χώρες. Σύντομα, έγινε διάσημο λόγω των αναρίθμητων εφαρμογών που μπορεί να έχει και είναι σήμερα το νούμερο 1 single board computer στον κόσμο.

Raspberry Pi 3

Το RPi3 είναι η τελευταία έκδοση του board και τα χαρακτηριστικά του είναι:
SoC: Broadcom BCM2837
CPU: 4× ARM Cortex-A53, 1.2GHz
GPU: Broadcom VideoCore IV
RAM: 1GB LPDDR2 (900 MHz)
Networking: 10/100 Ethernet, 2.4GHz 802.11n wireless
Bluetooth: Bluetooth 4.1 Classic, Bluetooth Low Energy
Storage: microSD
GPIO: 40-pin header, populated
Ports: HDMI, 3.5mm analogue audio-video jack, 4× USB 2.0, Ethernet, Camera Serial Interface (CSI), Display Serial Interface (DSI)

Όπως καταλαβαίνουμε είναι ένα αρκετά δυνατό board σχετικά με το μέγεθος του, ενώ το GPIO που υποστηρίζεται μας δίνει την δυνατότητα να συνδέσουμε αισθητήρες, led και πολλά άλλα που θα δούμε αναλυτικότερα σε άλλο part. Το λογισμικό (υπάρχουν αρκετά διαθέσιμα με βάση το Debian κυρίως) φορτώνεται στην SD card.

Στο παρακάτω βίντεο θα δείτε μία σύντομη εξήγηση του τι είναι και τι μπορείτε να κάνετε μαζί του, ενώ στο site του Raspberry Pi foundation μπορείτε να πάρετε περισσότερες πληροφορίες για το board και τα διαθέσιμα λογισμικά.

Home Assistant
Το Home Assistant (ΗΑ) είναι μία open-source πλατφόρμα για home automations που τρέχει σε Python 3. Το community έχει δημιουργήσει μια πολύ μεγάλη βάση με υποστηριζόμενες συσκευές το οποίο με λίγα λόγια σημαίνει, ότι μπορούμε να συνδέσουμε πολλές smart συσκευές (διαφορετικών brands και τεχνολογιών) πάνω στην ίδια πλατφόρμα και να δημιουργήσουμε το δικό μας, άκρως παραμετροποιήσιμο home control panel. Το πιο σημαντικό πρόβλημα που λύνει ο ΗΑ, είναι ότι λειτουργεί σαν ενιαίο hub για όλες μας τις συσκευές. Δεν χρειάζεται να έχουμε π.χ το Samsung SmartΤhings Hub για να χρησιμοποιήσουμε και να συνδυάσουμε την λειτουργία δύο ή περισσότερων SmartThings συσκευών κ.ο.κ.

Home Assistant

Κάποια από τα βασικά του χαρακτηριστικά είναι:
HA basic features
Έλεγχος των συσκευών μας μέσα από μία mobile-friendly πλατφόρμα
Self-hosted. Όλα τα δεδομένα μένουν τοπικά και ποτέ στο cloud. Kαμία εξάρτηση από servers τρίτων, έμφαση στο privacy.
Αυτόματος έλεγχος του state κάθε συσκευής
Δημιουργία αυτοματισμών με συνδυασμό συσκευών χωρίς ιδιαίτερο coding
Παραμετροποιήσιμο web panel

Υποστηρίζονται πάρα πολλές συσκευές, συμπεριλαμβανομένων κάποιων πολύ γνωστών στο ευρύ κοινό όπως τα Amazon, Philips, Samsung και Nest ecosystems ενώ υποστήριξη υπάρχει και για MQTT, Zigbee, Z-Wave, IFTTT, Arduino, αναλογικούς σένσορες και πολλά άλλα.

Ο καλύτερος τρόπος για να πάρετε μια πρώτη γεύση της πλατφόρμας, είναι να δείτε το online demo. Αν θέλετε περισσότερες πληροφορίες (θα δούμε και σε επόμενα parts), μπορείτε να διαβάσετε το εξαιρετικό documentation.

Μετά από αυτό το μικρό intro, πάμε να ξεκινήσουμε τα βήματα για την εγκατάσταση του HA στο RPi3.

Hardware requirements (περίπου 50 ευρώ)
Raspberry Pi 3 
Micro SD card 16GB ή μεγαλύτερη
Card reader ή SD adapter
Τροφοδοσία (προσοχή, πρέπει να είναι συμβατή με το RPi3)
Προαιρετικά: RPi3 Case+Fan (για να αποφύγουμε υπερθέρμανση και να αυξήσουμε την διάρκεια ζωής του board)

Το HA μας προσφέρει διάφορους τρόπους για να κάνουμε την εγκατάσταση, εμείς όμως θα διαλέξουμε το All-in-One installer που μας δίνει όλο το functionality εύκολα και γρήγορα. Οι μόνες προυπόθεσεις για να προχωρήσουμε στην εγκατάσταση με αυτόν τον τρόπο, είναι να έχουμε ένα RPi3 με εγκατεστημένο Raspbian Jessie (το απαραίτητο λειτουργικό σύστημα) και να ενεργοποιήσουμε το SSH για να επικοινωνήσουμε με το board από τον υπολογιστή μας. Ας τα δούμε αναλυτικά:

Step 1: Λήψη και αποσυμπίεση του Raspbian Jessie image
Για την εγκατάσταση χρειαζόμαστε το Raspbian Jessie image, το οποίο προμηθευόμαστε από εδώ. Όπως θα δείτε, το image έρχεται σε zip μορφή και θα πρέπει να κάνετε unzip με κάποιο από τα γνωστά προγράμματα.

Προσοχή: Το image είναι αρκετά μεγάλο και ενδέχεται η αποσυμπίεση με συμβατικά προγράμματα να μην δουλέψει και να σας εμφανίζει ότι το αρχείο είναι corrupted. Αν έχετε τέτοιου είδους προβλήματα, χρησιμοποιήστε το 7zip, το οποίο έχει τεσταριστεί.

Step 2: Φλασάρισμα Raspbian Jessie image στην SD card

Έχουμε λοιπόν έτοιμο και αποσυμπιεσμένο το image μας και τώρα πρέπει να το «φλασάρουμε» στην SD card.

Για να γίνει αυτό, χρειαζόμαστε ένα image writer. Για το παράδειγμα μας, θα χρησιμοποιήσουμε το Etcher, το οποίο μπορεί να τρέξει σε Windows, Linux και MacOS και το κατεβάζετε από εδώ.

Το Etcher είναι πολύ απλό στην χρήση. Επιλέγουμε το αποσυμπιεσμένο image μας, το drive που βρίσκεται η SD card (αν δεν την έχει βρει ήδη) και πατάμε Flash!

Etcher

Όταν η διαδικασία ολοκληρωθεί επιτυχώς, θα δούμε την παρακάτω εικόνα:

Etcher

Step 3: Ενεργοποίηση SSH στο RPi3
Το SSH δεν είναι απαραίτητο για την λειτουργία του RPi3, είναι όμως απαραίτητο για την εγκατάσταση του HA, οπότε πρέπει να το ενεργοποιήσουμε.

Ο πιο εύκολος τρόπος είναι να προσθέσουμε ένα αρχείο με όνομα ssh στον φάκελο boot που θα βρείτε μέσα στην SD card μετα το φλασάρισμα. Τα περιεχόμενα του αρχείου δεν έχουν σημασία, μπορεί να είναι ένα απλό text file. Κατά την εκκίνηση του RPi3, το board θα ψάξει για αυτό το αρχείο και αν το βρεί θα ενεργοποιήσει το SSH.

Step 4: Εκκίνηση RPi3 και εγκατάσταση Home Assistant
Για την εκκίνηση του RPi3, βάζουμε την SD card που φλασάραμε, συνδέουμε ένα καλώδιο Ethernet για να πάρει το board μας IP από το ρούτερ μας και το βάζουμε στην παροχή ρεύματος.

Όπως είπαμε, για να επικοινωνήσουμε με το RPi3 και να κάνουμε την εγκατάσταση χρειαζόμαστε το SSH. Για αυτό το σκοπό, ακολουθούμε αυτόν τον οδηγό που χρησιμοποιεί το putty. Φυσικά, μπορείτε να χρησιμοποιήσετε και άλλα προγράμματα που κάνουν την ίδια δουλειά.

Όταν συνδεθούμε με επιτυχία, πρέπει να δούμε την παρακάτω εικόνα (φυσικά, με την δική σας IP):

putty

Όλα έτοιμα λοιπόν για να εγκαταστήσουμε τον Home Assistant. Δίνουμε την παρακάτω command:
curl -O https://raw.githubusercontent.com/home-assistant/fabric-home-assistant/master/hass_rpi_installer.sh && sudo chown pi:pi hass_rpi_installer.sh && bash hass_rpi_installer.sh

Προσοχή: H command είναι μία, την δίνετε ολόκληρη όπως φαίνεται παραπάνω.
Η διαδικασία εγκατάσταστης θα πάρει 1-2 ώρες (για RPi3 συνήθως 1 περίπου). Μόλις ολοκληρωθεί και γίνει επανεκκίνηση του RPi3, το Home Assistant είναι έτοιμο, τρέχει στο board μας και μπορείτε να το βρείτε στην διεύθυνση http://your_raspberry_pi_ip:8123.

Ρίξτε μια ματιά και πειραματιστείτε λίγο με το RPi3 και το HA και ετοιμαστέιτε για το επόμενο κομμάτι του tutorial, που θα περιλαμβάνει αρχικό βασικό configuration για το HA αλλά και σύνδεση Xiaomi Color Bulb για να ξεκινήσουμε τους αυτοματισμούς μας.

Techblog Tutorials: Έξυπνο σπίτι με Raspberry Pi 3 και Home Assistant [Part II] – Xiaomi Yeelight bulb

12
Σχόλια

avatar
12 Συνολικά σχόλια
0 Απαντήσεις
0 Ακόλουθοι
 
Το σχόλιο που αντέδρασαν οι περισσότεροι χρήστες
Το πιο δημοφιλές σχόλιο
8 Σχολιαστές
Δημήτρης ΑφεντούληςΓιωργοςStathismitsΓιώργος Πρόσφατοι σχολιαστές
  Παρακολουθήστε τα σχόλια  
νεώτερο παλαιότερο πιο δημοφιλές
Να ειδοποιηθώ όταν
lsantas
Επισκέπτης
lsantas

Γίνεται να γίνει cloud home server? Να βάλω έναν nas δίσκο πάνω και πχ από το κινητό μου ότι φωτογραφίες βιντεο τραβάω να πηγαίνουν απευθείας στο nas με αντίστοιχο app φυσικά είτε μέσω wifi είτε μέσω 4g.

lsantas
Επισκέπτης
lsantas

ευχαριστώ πολύ για την απάντηση. Δεν έχω και τα αρχεία της nasa για τρελό encryption. Θέλω να κάνω κάτι όπως πχ κάνει ο wd mycloud. Θα περιμένω το part 2 🙂

John
Επισκέπτης
John

Συγχαρητήρια στην πολύ ωραία η ιδέα των Tutorials.
Πολύ ωραίο το πρώτο άρθρο και ελπίζω σε μια σειρά με τόσο κατατοπιστικές λεπτομέρειες.
Μπράβο.

Stathis
Επισκέπτης
Stathis

Το έχω κάνει εδώ και καιρό σε Pi2 οπότε το requirement για Pi3 είναι εντελώς άκυρο. Δεν έχει καμιά διαφορά στο πως τρέχει στο ένα ή στο άλλο. Ακόμα και στο zero τρέχει μια χαρά.
Επίσης είναι ΕΝΤΕΛΩΣ άκυρο ότι χρειάζεται το ssh για το installation. Ουδεμία σχέση. Ούτε 1-2 ώρες ούτε τίποτα. Υπάρχει image που φορτώνει και φτιάχνει ότι είναι να φτιάξει κατευθείαν και όλα γίνονται σε λίγα λεπτά.
Δυστυχώς δεν είναι για αρχάριους καθώς για να φτιάξεις ένα automation έχει αρκετή μανούρα.
Για ανθρώπους όπως εγώ που την παλεύουν, δεν είναι πρόβλημα και θα βγει η άκρη, για τον μέσο χρήστη όμως δεν…
Πάντως έχει αρκετή δύναμη αφού μπορείς να συνδέσεις (in/out) IFTTT, να ενεργοποιήσεις google assistant, να συνδέσεις σε automations φαινομενικά ασύμβατες συσκευές μεταξύ τους κτλ.
Μπήκε για δοκιμή και έμεινε μόνιμο σε εμένα 🙂

Γιώργος
Επισκέπτης
Γιώργος

Τον τελευταίο καιρό ασχολούμαι με το arduino και θα ηθελα να μάθω τι είδους υποστήρηξη υπάρχει από το ΗΑ για το arduino.

mits
Επισκέπτης
mits

Θα χρειαστεί να συνδεθούμε στον Router και να δώσουμε static IP για να μπορούμε να συνδεόμαστε Remote στο RPi3 και κατ επέκταση στο Home Assistant server και αν πρέπει να κάνουμε κάποια ρύθμιση και στο RPi3?
Αναφέρομαι πάντα για το lan.

Αναμένω απάντηση σας ευχαριστώ έκ των προτέρων.

Stathis
Επισκέπτης
Stathis

Μα ακριβώς αυτό είναι το θέμα. Ότι διαλέξατε τον χειρότερο δυνατό, πολύπλοκο και χρονοβόρο για αρχάριους…

Γιωργος
Επισκέπτης
Γιωργος

Δημήτρη καλησπέρα εχω ενα πρόβλημα.
Οτνα παω νε περασω το HA μου πεταει
:Warning: sudo() received nonzero return code 1 while executing ‘ln -s /usr/local/lib/python3.4/dist-packages/cec /srv/homeassistant/homeassistant_venv/lib/python3.4/site-packages’!

fatal: destination path ‘fabric-home-assistant’ already exists and is not an empty directory.

Αυτός ο ιστότοπος χρησιμοποιεί cookies για να βελτιώσει την εμπειρία χρήσης. Αποδοχή Περισσότερα