community italiana di domotica personale
 
Installare e avviare Home Assistant OS su SSD esterno su Raspberry Pi 4

Installare e avviare Home Assistant OS su SSD esterno su Raspberry Pi 4

9 minuti di lettura
SCOPI DELLA GUIDA:
  • Abbandonare l’uso di microSD in luogo di un disco esterno (più performante e affidabile) per l’installazione e l’esecuzione dell’HUB per domotica personale Home Assistant
  • Livello di difficoltà: basso
  • Costo: variabile (in base al disco esterno scelto)
CONCETTI AFFRONTATI:
  • Configurazione hardware
  • Configurazione software
COMPONENTI SOFTWARE UTILIZZATE:
  • Raspberry Pi OS (aka Raspbian)
  • Home Assistant OS (aka HASSOS/HASSIO)
DISPOSITIVI FISICI UTILIZZATI:
Note e disclaimer
  • qualsiasi eventuale modifica agli impianti domestici dev'essere progettata ed realizzata SOLO da personale qualificato;
  • qualsiasi modifica attuata in proprio è a propria responsabilità personale nonché a proprio rischio e pericolo (i contenuti della presenta pagina hanno puro scopo didattico);
  • qualsiasi modifica attuata in proprio a un dispositivo ne fa decadere garanzia, omologazioni e certificazioni di qualità.
Revisione guida: 1.2

Home Assistant OS su SSD su Raspberry Pi 4

😊  QUESTA GUIDA È PARTE DEL NOSTRO PERCORSO GUIDATO ALL’INSTALLAZIONE E CONFIGURAZIONE
di HOME ASSISTANT su RASPBERRY PI.

Abstract

Come noto a molti, l’adozione di Raspberry Pi quale micro-computer a basso consumo per l’esecuzione di funzioni più o meno complesse (HUB domotico, postazione di gioco, server eccetera) prevede l’uso di un microscopico hard-disk, ovvero una microSD: tale componente, disponibile sul mercato in tagli diversi, contiene i dati e il sistema operativo in esecuzione sull’unità.

microSD
una microSD.

Tale elemento, purtroppo, rappresenta il tallone d’Achille di quello stupendo strumento che è il Raspberry: spesso fragile, la microSD tende a guastarsi con relativa facilità, specialmente nel caso di esemplari bi bassa qualità costruttiva. La soluzione per chi necessiti di alta affidabilità è quella di utilizzare un disco esterno, collegato via USB, il quale “prenda il posto” – operativamente – della microSD.

Dal canto suo, Home Assistant è un HUB software per domotica personale gratuito e dalle grandissime potenzialità il quale, per chiarezza, non necessita di grandissime prestazioni da parte dell’hardware che lo ospita; d’altra parte, ciò che gli va garantita è la sua affidabilità. Ecco il perché di questa guida: molti ritengono necessario (il tema è comunque molto dibattuto) utilizzare un disco SSD esterno al posto della solita microSD per la sua installazione ed esecuzione su Raspberry Pi al fine di garantirsi una indubbia maggiore sicurezza e prestazioni per il proprio HUB personale.

Home Assistant è disponibile sia in versione “Core” che “Home Assistant OS”: questa guida tratta l’installazione (e l’eventuale ripristino di configurazione) di Home Assistant OS (aka HASSOS, o HASSIO), ovvero il pacchetto “chiavi in mano” composto dal un sistema operativo Linux Alpine + Home Assistant Core + Supervisor.

La procedura descritta in questo progetto si applica ai modelli Raspberry Pi 4: viene spiegato come scegliere il disco esterno, come implementarlo da zero oppure, anche nel caso si stia già usando il Raspberry Pi con microSD, come provvedere ad una migrazione del sistema operativo in uso e dei relativi dati dalla microSD al disco esterno. 

N.b. Ovviamente la procedura descritta in questa guida è reversibile, pertanto se in futuro si volesse tornare alla sola microSD sarà sufficiente disconnettere il disco esterno, reinserire la microSD ed effettuare l’accensione del Raspberry Pi, il quale tornerà ad avviarsi “internamente” come d’abitudine.

Si parte

Scelta disco esterno

Ad oggi le tecnologie disponibili sul mercato consumer tra le quali scegliere per l’adozione su Raspberry Pi (e non solo) sono essenzialmente tre:

  • hard disk tradizionali SATA;
  • hard disk SSD SATA;
  • hard disk SSD PCIe M.2.

Il primo caso tratta di dischi tradizionali ormai obsoleti e dunque citati solo per puro dovere di cronaca (che quindi non ci sentiamo di consigliare né tratteremo come oggetto della presente guida).

Il secondo e il terzo caso rappresentano invece le strade da battere. I dischi SSD (genericamente detti) utilizzano tecnologie “allo stato solido” che stanno conquistando il mercato per grandi prestazioni, grande affidabilità e basso costo. Solitamente, questi dischi presentano un’interfaccia di connessione in standard Serial ATA o, brevemente, SATA. Quelli basati su interfaccia di connessione PCI-Express (PCIe) M.2, invece, sono versioni ulteriormente potenziate, dalle dimensioni ridotte e dal costo più alto, solitamente utilizzati su computer molto potenti.

Per montare un hard disk SSD su Raspberry Pi serve:

Descrizione procedura

La procedura varia in base alla propria condizione operativa.
In AZZURRO i passi comuni a tutte le possibili procedure.

PARTENDO DA ZERO

Se si parte da zero, ovvero si possiede un Raspberry Pi non ancora in uso, la procedura è la seguente:

  1. installare Raspberry Pi OS su microSD (vedi guida);
  2. avviare Raspberry Pi OS, senza disco esterno collegato, usando la microSD configurata come da punto 1;
  3. configurare Raspberry Pi tramite comandi;
  4. installare Home Assistant OS sul disco esterno;
  5. rimuovere la microSD, collegare il disco esterno via USB, avviare Raspberry Pi;
  6. accedere a Home Assistant.
PARTENDO DA UNA PRE-ESISTENTE INSTALLAZIONE DI RASPBERRY PI OS

Se si possiede già un’installazione di Raspberry Pi OS sulla propria microSD, è sufficiente:

  1. avviare Raspberry Pi OS;
  2. configurare Raspberry Pi tramite comandi;
  3. installare Home Assistant OS sul disco esterno;
  4. rimuovere la microSD, collegare il disco esterno via USB, avviare Raspberry Pi;
  5. accedere a Home Assistant.
MIGRANDO HOME ASSISTANT OS DA microSD a DISCO ESTERNO

Se invece si utilizza già Home Assistant OS installato su microSD e si vuole migrare tali contenuti sul disco esterno, la procedura prevede di:

  1. effettuare un backup di Home Assistant OS (vedi guida);
  2. installare Raspberry Pi OS sulla microSD dove precedentemente era installato Home Assistant (oppure usarne un’altra di appoggio);
  3. avviare Raspberry Pi OS, senza disco esterno collegato, usando la microSD configurata come da punto 2;
  4. configurare Raspberry Pi tramite comandi;
  5. installare Home Assistant OS sul disco esterno;
  6. rimuovere la microSD, collegare il disco esterno via USB, avviare Raspberry Pi;
  7. accedere a Home Assistant avviatosi su disco esterno e ripristinare il backup effettuato al punto 1 (vedi guida).

Da qui in poi descriveremo i principali passi comuni.

Configurare Raspberry Pi tramite comandi

Prima di poter utilizzare il disco esterno è strettamente necessario effettuare delle modifiche firmware/software al proprio Raspberry Pi al fine di renderlo capace di avviarsi tramite disco esterno via USB: per farlo, utilizzeremo una microSD di appoggio sulla quale dovrà essere presente il sistema operativo Raspberry Pi OS (aka Raspbian), il che permette di eseguire alcuni comandi “chiave” atti a preparare il Raspberry Pi come sopra spiegato.

Dando per scontato di aver provveduto all’installazione di Raspberry Pi OS su microSD, di averla inserita e di aver acceso Raspberry Pi, collegarsi ad esso via SSH (oppure collegandosi fisicamente tramite tastiera e monitor) ed eseguire via terminale una serie di comandi specifici.

Iniziamo dall’aggiornamento del BootLoader, ovvero il componente firmware che provvede all’avvio da disco esterno:

sudo apt update
sudo apt full-upgrade
sudo reboot

terminato il riavvio, ricollegarsi al terminale ed eseguire il seguente comando per modificare il file rpi-eeprom-update:

sudo nano /etc/default/rpi-eeprom-update

al suo interno modificare la stringa “critical” in “default“. Salvare uscendo (ctrl+x, Y, invio).
Riavviamo nuovamente con:

sudo reboot

Al termine del riavvio ricolleghiamoci nuovamente al terminale e avviamo l’aggiornamento:

sudo rpi-eeprom-update -d -a

e poi, per verificare che tutto sia andato a buon fine, eseguire il comando:

sudo vcgencmd bootloader_version

il quale dovrà indicare una data di versione successiva al 15 giugno 2020.


Terminata la procedura, spegnere il Raspberry Pi e rimuovere la microSD.

Installare Home Assistant OS su disco esterno

Tramite tool

L’opzione più semplice per installare un’immagine su un disco esterno USB è quella di utilizzare un semplice tool a interfaccia grafica.

In questa guida prenderemo in considerazione l’uso di Raspberry Pi Imager, un tool per Windows, macOS e Ubuntu realizzato dalla Raspberry Foundation il quale è in grado di scaricare l’immagine da Internet, permettendo all’utente di scegliere tra varie distribuzioni (oppure usare un’immagine ad hoc presente sul proprio computer), e installarla sulla microSD o su di un disco esterno, come in questo nostro caso.

La procedura quindi è la seguente:

  • scaricare e installare il software Raspberry Pi Imager sul computer di supporto;
  • collegare il disco esterno al computer di supporto;
  • eseguire Raspberry Pi Imager  sul computer di supporto;
  • cliccando su “Operating Systems“, scegliere la voce “Other specific purpose OS” > “Home Assistant” > “Rpi 4/xxx“;
  • cliccando su “Choose storage“, selezionare il disco esterno collegato al computer d’appoggio;
  • clicanre “Write” per installare la distribuzione;
  • attendere il completamento del task (può metterci anche un’ora, in base alla velocità della connessione Internet – necessaria – e alla velocità di scrittura dati verso la microSD/disco SSD).
Raspberry Pi Imager
l’interfaccia di Raspberry Pi Imager.

Terminata la procedura sarà possibile scollegare il disco esterno e procedere oltre.

Tramite riga di comando (CLI)

Per effettuare l’installazione di Home Assistant OS sul proprio disco esterno è necessario avere a disposizione l’immagine della distribuzione. Per scaricarla dal sito ufficiale di Home Assistant, cliccare qui e successivamente provvedere a decomprimerla.

Procedura MACApple Logo
  • Collegare il disco esterno al computer;
  • eseguire Terminal;
  • da Terminal, eseguire:
diskutil list
per identificare il numero disco (NON la partizione), e.g. disk4 e non disk4s1
  • smontare il disco col comando:
diskutil unmountDisk /dev/disk<NUMERO_DISCO>
indicando il <NUMERO_DISCO> precedentemente identificato (e.g. diskutil unmountDisk /dev/disk4)
  • effettuare l’installazione dell’immagine tramite il comando:
sudo dd bs=1m if=NOME_IMMAGINE of=/dev/rdisk<NUMERO_DISCO> conv=sync
dove NOME_IMMAGINE è il nome file dell’immagine da copiare e <NUMERO_DISCO> è il numero del disco precedentemente identificato (quindi il nostro disco esterno).
 
e.g.:
sudo dd bs=1m if=hassos_rpi4-64-5.13.img of=/dev/rdisk4 conv=sync
Procedura LinuxLinux logo
  • Collegare il disco esterno al computer;
  • eseguire Terminal;
  • da Terminal, eseguire:
lsblk
dopodiché è sufficiente utilizzare il comando:
dd bs=4M if=NOME_IMMAGINE of=/dev/sdX conv=fsync
dove NOME_IMMAGINE è il nome file dell’immagine da copiare e sdX è il disco precedentemente identificato (quindi il disco esterno)
Maggiori informazioni sulla procedura Linux sono disponibili qui.

Personalizzazione rete

A questo punto possiamo collegare il disco esterno, via USB, al Raspberry Pi, ma non siamo ancora pronti al primo avvio: dobbiamo infatti garantire a quest’ultimo un accesso di rete. Le strade sono due: rete cablata o rete Wi-Fi.
 
Per la rete cablata è sufficiente collegare, tramite un cavo Ethernet, la porta del Raspberry ad una qualunque del router. Se questa è la strada preferita, provvedere, accendere il Raspeberry Pi e passare oltre.
 
Se invece vogliamo utilizzare direttamente la rete Wi-Fi, dobbiamo eseguire ancora un’ultimo, banale passo operativo.
 
Dotarsi di una banale chiavetta USB, formattarla in standard FAT32 (non exFAT) e battezzarla “CONFIG“.
Dopodiché, accedervi e creare una cartella chiamata “network“; una volta provveduto, accedervi e creare un file di testo (senza estensione) dal nome “my-network” contenente il seguente testo:
 
[connection]
id=my-network
uuid=72111c67-4a5d-4d5c-925e-f8ee26efb3c3
type=802-11-wireless

[802-11-wireless]
mode=infrastructure
ssid=MIO_SSID
# Uncomment below if your SSID is not broadcasted
#hidden=true

[802-11-wireless-security]
auth-alg=open
key-mgmt=wpa-psk
psk=MIA_PASSWORD

[ipv4]
method=auto

[ipv6]
addr-gen-mode=stable-privacy
method=auto
Personalizzare dunque il testo avendo cura di inserire il nome della propria Wi-Fi nel campo “ssid” e la password d’accesso nel campo “psk” (al posto di “MIO_SSID” e “MIA_PASSWORD“). Salvare e disconnettere la chiavetta USB. A questo punto collegare – col Raspberry Pi spento – la chiavetta USB al Raspberry Pi, dopodiché accenderlo.
 
Questo farà sì che al primo boot il Raspberry entri automaticamente – e per sempre – dentro la Wi-Fi. La chiavetta, dopo il primo boot, potrà essere rimossa.

Primo accesso su Home Assistant

All’atto dell’accensione del Raspberry Pi Home Assistant avvierà la fase automatica di prima installazione, la quale impiegherà qualche minuto (in base alla velocità di connessione Internet, alla velocità del Raspberry Pi e del disco collegato via USB).

La procedura iniziale sarà di fatto completa quando ci si riuscirà a collegare, tramite il proprio browser sul computer di appoggio, al seguente indirizzo:

http://homeassistant.local:8123

dovrebbe infatti apparire una schermata di questo tipo:

HASSIO Waiting screen

N.b. In caso non ci si riesca a collegare, assicurarsi che sul proprio router sia attivo il multicast DNS (mDNS). Se non lo è, la risoluzione del nome “homeassistant.local” non va a buon fine e il browser non riesce a collegarsi: la soluzione, per l’appunto, è quella di attivare il multicast (che provvede a questa cosa). Alternativamente è comunque sempre possibile collegarsi all’indirizzo diretto, ovvero http://INDIRIZZO_IP_DEL_RASPBERRY:8123, dove l’indirizzo IP è quello assegnato dal router al Raspberry Pi.

Al termine del completamento della fase di prima installazione dovrebbe apparire un sito analogo a questo:

Home Assistant - onboarding - creazione utente
Il quale consente di impostare le prime, elementari e personali informazioni di “onboarding” relative alla propria domotica.
Complimenti! Home Assistant è in esecuzione.
 
N.b. È il momento, per gli utenti che abbiano effettuato precedentemente un backup di Home Assistant, di ripristinarlo.

Rifinitura

A questo punto Home Assistant è sì pronto, ma ci sono alcuni perfezionamenti, i quali derivano dall’installazione delle componenti aggiuntive che consideriamo “imprescindibili, da attuare.

A prescindere, rimane sempre utile consultare la scheda che illustra tutte le cose da fare dopo questa prima installazione.

Aggiornamento

Tutte le modalità di aggiornamento per Home Assistant Core sono riassunte su questa scheda ad hoc:

Utilità: come aggiornare Home Assistant


Home Assistant Official Logo ATTENZIONE: ricorda che sul nostro community FORUM c'è una sezione ad hoc dedica a Home Assistant, per qualsiasi dubbio, domanda, informazione nel merito specifico di queste componenti.
   
Telegram News Channel