Bentrovati amici smart!
Nel video precedente abbiamo esplorato le modalità di accesso al terminale del Raspberry Pi e completato una prima configurazione di base. Oggi proseguiremo con il processo di configurazione del nostro sistema operativo per assicurarci di costruire, preventivamente, una base solida e ben organizzata per l'installazione di Home Assistant, questo ci agevolerà per le nostre operatività presenti e future. Insomma, come già ripetuto più volte, l'obiettivo è avere tutto pronto, in modo da lavorare con facilità e senza intoppi, assicurandoci che ogni parte del sistema sia chiara, accessibile e, per quanto possibile, gestibile da chiunque.
Nel corso di questa tappa ci concentreremo su quattro aspetti fondamentali:
- L'aggiornamento del bootloader del Raspberry Pi
- L'installazione di alcune librerie utili per usi futuri
- La creazione di una struttura di cartelle ben organizzata e strutturata, in modo da avere tutto ordinato e in un unico posto
- L'installazione di un software che ci consentirà di condividere e accedere alla struttura delle cartelle direttamente dalla rete locale, utilizzando l'interfaccia grafica di qualsiasi computer.
Per iniziare, accediamo al terminale del Raspberry Pi tramite SSH, utilizzando qualsiasi dispositivo di vostra preferenza, come un computer desktop o un portatile. Questo ci permetterà di gestire il Raspberry Pi comodamente da remoto, senza bisogno di collegare schermo e tastiera direttamente al dispositivo, come discusso nel video precedente.
Pertanto, apriamo PuTTY se stiamo usando Windows, oppure apriamo il terminale se stiamo usando macOS o Linux.
Breve ripasso:
Per chi utilizza PuTTY dovrà semplicemente compilare il campo "Host Name" inserendo homeassistant.local oppure l'indirizzo IP del Raspberry Pi. Infine, dovrà cliccare su Open per avviare la connessione.
Per chi utilizza il terminale del macOS o Linux, dovrà semplicemente digitare il seguente comando seguito dal tasto invio:
ssh pi@homeassistant.local
oppure, se conosciamo l'indirizzo IP del Raspberry Pi, digitiamo:
ssh pi@indirizzo_ip_del_raspberry
Dopo esserci collegati, partiamo con il primo punto:
Aggiornare il Bootloader del Raspberry Pi
Il bootloader è un programma fondamentale, contenuto in un'area di memoria speciale chiamata EEPROM, che permette al Raspberry Pi di avviarsi. In pratica, è il primo software elaborato che legge il sistema operativo dalla microSD e lo carica nella memoria quando accendiamo il dispositivo. Senza il bootloader, il Raspberry Pi non sarebbe in grado di inizializzarsi e rendersi operativo. Aggiornare il bootloader è importante perché garantisce che il sistema sia stabile, sicuro e in grado di usare nuovi dispositivi. Inoltre, un bootloader aggiornato può correggere errori e migliorare le prestazioni generali del Raspberry Pi.
Prima di aggiornarlo, possiamo verificare e segnarci l'attuale versione del bootloader eseguendo il seguente comando seguito dal tasto invio:
sudo vcgencmd bootloader_version
Adesso vediamo come fare per aggiornarlo.
Anzitutto, prima del bootloader, partiamo con un aggiornamento completo del sistema operativo. Aggiornare il sistema operativo è molto semplice ed è utile conoscere la procedura in modo da ripeterla nel tempo per mantenere il sistema aggiornato, esattamente come faremmo con qualsiasi altro dispositivo. Eseguiamo i seguenti comandi uno alla volta seguiti dal tasto invio:
sudo apt-get update
sudo apt-get full-upgrade -y
Vedremo scorrere a video una serie di LOG dei vari aggiornamenti che vengono eseguiti. Il processo potrebbe richiedere diversi minuti, perciò attendiamo che finisca.
Dopo aver aggiornato il sistema operativo, possiamo passare all'aggiornamento del bootloader. A differenza degli aggiornamenti di sistema, l'aggiornamento del bootloader è una procedura da eseguire sporadicamente, cioè solo in caso di reale necessità.
Editiamo il file di configurazione della EEPROM del RaspberryPi e assicuriamoci che sia impostato per scaricare l'ultima versione disponibile. Eseguiamo il seguente comando dal terminale seguito dal tasto invio:
sudo nano /etc/default/rpi-eeprom-update
Dopo aver aperto il file con l'editor nano, assicuriamoci che la variabile FIRMWARE_RELEASE_STATUS sia impostata su latest. Se lo è già, usciamo dal file premendo in sequenza e mantenendo premuto CTRL + X. In caso contrario, spostiamoci con le frecce direzionali della tastiera fino al valore che vogliamo modificare, cancelliamolo come faremmo normalmente su un editor di testo tradizionale e scriviamo latest. Infine, salviamo premendo in sequenza e mantenendo premuto CTRL + O, quindi premiamo il tasto Invio per confermare il salvataggio. Adesso chiudiamo premendo in sequenza e mantenendo premuto CTRL + X. In questo modo, il Raspberry Pi cercherà e scaricherà la versione più recente del bootloader.
Dopo essere usciti dall'editor di testo, eseguiamo il seguente comando dal terminale per scaricare l'ultima versione del bootloader all'interno di un'area temporanea della EEPROM:
sudo rpi-eeprom-update -d -a
Al termine del processo, riavviamo il sistema per consentire al Raspberry Pi di installare l'ultima versione del bootloader scaricata. Quindi eseguiamo:
sudo reboot
Attenzione: Al riavvio del sistema, è importante che il processo di aggiornamento non venga interrotto, perché ciò potrebbe corrompere il bootloader stesso, rendendo il Raspberry Pi inutilizzabile.
L'installazione potrebbe richiedere diversi minuti, quindi se il nostro Raspberry Pi non dovesse essere subito raggiungibile dopo il riavvio è del tutto normale. Pazientiamo finché non torna online.
Per sapere se è nuovamente online, effettuiamo un ping semplicemente digitando:
ping homeassistant.local
oppure:
ping indirizzo_ip_del_raspberry
Se il Raspberry risponde, possiamo riconnetterci in SSH come abbiamo visto all'inizio.
Dopo essere rientrati in SSH, possiamo verificare che la versione del nostro bootloader sia la più recente eseguendo nuovamente il comando:
sudo vcgencmd bootloader_version
Aggiornare il bootloader garantisce il massimo supporto hardware e software, evitando problemi dovuti a bug o incompatibilità con nuove periferiche. In questo modo, possiamo assicurarci che il sistema resti stabile e sia pronto per qualunque nuova configurazione futura.
Installare Librerie Utili per il Futuro
Per prepararci a future configurazioni, è utile installare fin da subito un set di librerie che ritengo importanti. In futuro, potremmo usare queste librerie per diverse funzionalità, come la gestione di videocamere, la comunicazione con dispositivi Bluetooth o per gestire immagini e video nella nostra SmartHome. Per installarle eseguiamo il seguente comando dal terminale seguito dal tasto invio:
sudo apt-get install ffmpeg libopenjp2-7 libjpeg-dev bluetooth libbluetooth-dev
Vedremo scorrere a video una serie di LOG di avanzamento, perciò attendiamo che finisca.
Dopo averle installate, è importante riavviare il sistema per finalizzare la procedura. Quindi, come al solito, eseguiamo:
sudo reboot
Dopo il riavvio riconnettiamoci al Raspberry Pi in SSH.
Creazione della Struttura di Cartelle
Uno dei consigli principali che voglio darvi è di non fare mai le cose di fretta o senza criterio, come spesso accade in altri portali. È fondamentale, quando ci si dedica a un progetto, che questo sia ben strutturato e organizzato in cartelle dedicate, evitando di frammentarle. Ci tengo a sottolineare questo punto perché spesso, su altri portali, le guide e le istruzioni per Home Assistant presentano una disposizione frammentata dei file di configurazione. Nonostante si tratti dello stesso contesto, le configurazioni dei vari servizi finiscono per essere sparse in diverse parti del sistema, invece di essere centralizzate in un unico punto. Questo rende difficile mantenere il controllo sul progetto e ne complica la gestione a lungo termine. Il nostro obiettivo, invece, è quello di creare una struttura di cartelle chiara e organizzata per contenere tutto ciò che riguarda la nostra smart home, così da avere un sistema facile da gestire e sempre sotto controllo.
Organizzare i file in questo modo ci aiuterà a:
- Trovare facilmente le configurazioni quando vogliamo modificarle
- Fare un backup delle configurazioni partendo da una sola cartella, evitando di perdere la testa nel ricordarci le posizioni di ogni singolo file.
- Avere tutto in un unico posto
- Rendere la gestione del nostro progetto più facile e veloce
La struttura a cui ho pensato è la seguente e verrà contenuta all'interno della cartella principale del nostro utente pi. Breve nota: Come in ogni sistema operativo, l'utente con il quale accediamo al sistema ha una sua cartella di riferimento. Nel Raspberry Pi OS le cartelle degli utenti si trovano all'interno del seguente percorso/cartella di sistema:
/home
Infatti se dal terminale ci spostiamo all'interno del percorso appena visto, troveremo la cartella del nostro utente, cioè pi. Per spostarci all'interno di un percorso attraverso il terminale è sufficiente eseguire il comando cd seguito dal percorso che vogliamo aprire.
Nota: Come avviene normalmente su ogni sistema operativo, un percorso di cartelle annidate è rappresentato dalla gerarchia delle cartelle stesse, separate da uno slash:
ad esempio, se abbiamo la seguente gerarchia di cartelle annidate:
- cartella_1
- cartella_2
- cartella_3
- cartella_4
- cartella_3
- cartella_2
la rappresentazione del percorso all'interno del sistema operativo sarebbe:
/cartella_1/cartella_2/cartella_3/cartella_4
Nel nostro caso il percorso che vogliamo verificare è home, quindi digitiamo:
cd /home
Successivamente, per conoscere il contenuto del percorso/cartella home, possiamo digitare il seguente comando:
ls -l
Nel nostro caso, a meno che non abbiate creato ulteriori utenti, apparirà soltanto la cartella /pi, che è la cartella destinata all'utente con il quale ci siamo autenticati al Raspberry Pi OS. Adesso spostiamoci dentro la cartella pi digitando:
cd pi
Questo comando è possibile perché ci trovavamo già dentro la cartella /home. Se invece ci fossimo trovati all'interno di un'altra posizione, sarebbe stato necessario specificare l'intero percorso per accedere alla cartella del nostro utente, quindi avremmo dovuto digitare:
cd /home/pi
Con il comando cd possiamo spostarci in qualunque cartella del nostro sistema specificando l'intero percorso di destinazione. Se invece vogliamo conoscere il percorso attuale in cui ci troviamo, possiamo digitare il comando:
pwd
Apparirà l'intero percorso in cui ci troviamo. Se abbiamo eseguito i comandi appena visti e siamo dentro la cartella dell'utente pi, il terminale ci mostrerà il percorso:
/home/pi
Bene, adesso che siamo all'interno della cartella che ci interessa, quella del nostro utente, analizziamo la struttura delle cartelle che ho pensato:
- homeassistant_hub - Che al di sotto avrà le seguenti cartelle figlie in cui metteremo tutte le configurazioni
- addons - In cui metteremo tutti gli addon di HomeAssistant
- docker-config - In cui metteremo il file di configurazione di docker compose
- homeassistant - In cui metteremo l'intera configurazione di HomeAssistant
- scripts - In cui metteremo eventuali scripts che ci serviranno per automatizzare alcuni processi
Iniziamo a creare la seguente struttura assicurandoci di rispettare il minuscolo. Per prima cosa, assicuriamoci ancora una volta di trovarci nel percorso giusto, cioè:
/home/pi
Digitiamo il comando:
pwd
Successivamente creiamo la prima cartella: homeassistant_hub. Per creare le cartelle dal terminale si usa il comando mkdir. Eseguiamolo sempre con privilegi amministrativi e digitiamo:
sudo mkdir homeassistant_hub
In questo modo avremo creato la cartella homeassistant_hub dentro la cartella dell'utente pi.
Possiamo verificare la presenza della nuova cartella digitando il seguente comando seguito dal tasto invio:
ls -l
Adesso, dopo aver creato la cartella homeassistant_hub, entriamoci dentro digitando:
cd homeassistant_hub
Eseguendo nuovamente il comando pwd dovremmo trovarci in:
/home/pi/homeassistant_hub
Se così non fosse assicuriamoci di aver eseguito correttamente i passaggi precedenti. In caso contrario, possiamo continuare a creare le altre sottocartelle all'interno della cartella padre homeassistant_hub. Eseguiamo uno alla volta i seguenti comandi seguiti dal tasto invio:
sudo mkdir addons
sudo mkdir docker-config
sudo mkdir homeassistant
sudo mkdir scripts
Possiamo verificare la presenza delle nuove cartelle digitando il seguente comando seguito dal tasto invio:
ls -l
Eseguito tutto, avremo creato la struttura di cartelle precedentemente discussa.
Con questa struttura, tutto sarà organizzato in un'unica posizione, rendendo la gestione molto più semplice ed evitando confusione. Tutti i file e le configurazioni saranno facilmente accessibili quando ne avremo bisogno. Con questa struttura, inoltre, i backup saranno molto più semplici da fare e avremo la certezza di non perdere nulla.
Installare Samba per la Condivisione delle Cartelle
Samba - che non fa riferimento al ballo brasiliano, per quanto il nome lo ricordi - è un software open source che implementa il protocollo SMB su sistemi Unix/Linux, permettendo la comunicazione e condivisione di risorse in rete. In altre parole, Samba permette di condividere le cartelle del sistema operativo in rete, così da poter accedere ai file del Raspberry Pi dall'interfaccia grafica di altri dispositivi, come un computer desktop o un portatile Windows, macOS o Linux.
Questo è molto comodo perché ci permette di modificare i file direttamente dal nostro editor preferito senza dover usare il terminale e i vari comandi. Possiamo anche trasferire facilmente qualsiasi file all'interno delle cartelle o crearne delle nuove.
Per installare Samba è sufficiente eseguire il seguente comando:
sudo apt-get install samba samba-common-bin -y
Vedremo scorrere a video una serie di LOG di avanzamento, perciò attendiamo che finisca.
Al termine dell'installazione, è necessario configurare Samba per condividere le cartelle che vogliamo. Già, perché la sola installazione di Samba non rende accessibili tutte le cartelle del sistema, ma solo quelle che vogliamo condividere noi. Editiamo il suo file di configurazione utilizzando sempre l'editor nano. Eseguiamo il seguente comando:
sudo nano /etc/samba/smb.conf
Nel nostro caso condivideremo soltanto la cartella del nostro utente pi, che al suo interno conterrà la struttura di cartelle appena creata. Con le frecce direzionali, spostiamoci alla fine del file e incolliamo il seguente blocco per condividere la cartella del nostro utente pi:
[HomeAssistant]
comment=HomeAssistant Share
path=/home/pi/
browseable=yes
writable=yes
read only=no
valid users=
security = share
guest ok = yes
create mask = 0777
directory mask = 0777
public = yes
force user = root
force create mode = 0777
force directory mode = 0777
host allow =
Attenzione: è importante limitarsi a incollare solo il blocco alla fine del file.
Infine, salviamo premendo in sequenza e mantenendo premuto CTRL + O, quindi premiamo il tasto Invio per confermare il salvataggio. Adesso chiudiamo premendo in sequenza e mantenendo premuto CTRL + X.
Per concludere, riavviamo i servizi di Samba eseguendo i seguenti comandi uno alla volta e, come sempre, seguiti dal tasto invio:
sudo systemctl restart smbd
sudo systemctl restart nmbd
Dopo aver riavviato Samba, potremo accedere facilmente alla struttura delle nostre cartelle appena create e al loro contenuto, da qualsiasi dispositivo collegato alla rete. In questo modo, sarà molto più facile trasferire file e modificare le configurazioni potendovi accedere da un'interfaccia grafica. Ad esempio, potremo usare l'editor che preferiamo, come Sublime Text o Notepad++, per modificare i file di configurazione in modo più veloce e pratico dall'interfaccia grafica.
Bene, per oggi ci fermiamo qui. Nel prossimo video vedremo come installare Docker e come installare Home Assistant usando Docker Compose.
Come sempre, se vi fa piacere seguitemi per altri tutorial, attivate la campanellina e lasciate un like al video.