SCOPI DELLA GUIDA:
CONCETTI AFFRONTATI:
|
COMPONENTI SOFTWARE UTILIZZATE:
PREREQUISITI:
DISPOSITIVI FISICI UTILIZZATI: |
GUIDA maggiormente DEDICATA A utenti: |
|
NOTE E DISCLAIMER
|
|
Revisione guida: 3.3 |
😊 QUESTA GUIDA È PARTE DEL NOSTRO PERCORSO GUIDATO ALL’INSTALLAZIONE E CONFIGURAZIONE
di HOME ASSISTANT su RASPBERRY PI.
Abstract
Come spiegato in altre schede, Home Assistant è il uno tra gli HUB personali gratuiti ideali per realizzare una propria domotica personale in modo organico e funzionale. Questo cruciale componente software ha la possibilità di essere installato su molti sistemi e in modalità diverse: su Raspberry Pi la modalità solitamente più caldeggiata dagli sviluppatori è la modalità “Home Assistant OS”, ovvero una modalità sì completamente automatica, la quale prevede però di dedicare il Raspberry Pi all’uso esclusivo di Home Assistant, chiudendo di fatto ad eventuali altre funzionalità. Questa modalità è descritta in questa guida specifica.
Purtroppo la distribuzione Home Assistant OS ha un rovescio della medaglia, ovvero le basse prestazioni a causa dell’inutile spreco di risorse previsto, dato che la componente cardinale (che alla fine è l’unica che interessa all’utente), ovvero Home Assistant Core, in questo ambito viene eseguito in un container di virtualizzazione e viene affiancato da tanti altri container quanti sono gli addon (imprescindibili come di altro tipo) che vengono installati tramite un ulteriore strato di gestione, ovvero il cosiddetto “Supervisor”. Tutta questa stratificazione affossa le prestazioni.
Non a caso, il nostro consiglio è stato spesso quello di adottare Home Assistant Core installato da se stante come applicativo su Raspberry Pi OS (oppure su altri sistemi operativi, come Windows, Apple macOS o altri), modalità solitamente adottata da chi usa Raspberry e vuole dotarsi di Home Assistant. Un’alterativa leggermente semplificata e ormai preferibile consente di isolare totalmente l’esecuzione di Home Assistant Core dal sistema operativo senza per questo adottare Home Assistant OS: è il caso descritto dalla presente guida, la quale illustra l’installazione e il funzionamento di Home Assistant Core su un Raspberry Pi precedentemente installato e configurato con sistema operativo Raspberry Pi OS ma non come applicativo ma come container eseguito in modo isolato tramite Docker.
Procedimento
- Assunti
- Installare Docker
- Istanziare Home Assistant Core su Docker
- Primo accesso su Home Assistant
- Accesso ai log (del container @Docker)
- Collegamento SSH
- Rifinitura
- Aggiornamento dell’HUB
Assunti
Questa guida è dedicata a chi abbia già un Raspberry in uso con sistema operativo Raspberry Pi OS. Per coloro che non abbiano ancora provveduto e si trovino ad avere un Raspberry nuovo, magari acquistato appositamente per realizzare la propria domotica, allora questo passo della guida va smarcato seguendo prima un’altra guida, che spiega passo passo come configurare il sistema operativo Raspberry Pi OS.
La guida da seguire:
- per chi abbia a disposizione una tastiera e un mouse USB, è questa;
- per chi non li abbia, è quest’altra.
Una volta terminata la configurazione di Raspberry Pi OS (inclusa la possibilità di collegarvisi tramite SSH) è possibile procedere nella presente guida.
Installare Docker
Installare Docker su Raspberry Pi dotato di sistema operativo Raspberry Pi OS è piuttosto semplice, esiste una procedura completamente automatica e una manuale. Entrambe le procedure sono illustrate in dettaglio in questa breve guida.
Se si ha già provveduto all’installazione di Docker, va da sé che questo passaggio possa essere saltato.
Istanziare Core su Docker
Una volta installato Docker è dunque il momento di installare (o meglio, “istanziarvi sopra”) Home Assistant Core.
In ambito Docker, l’istanziamento dell’applicazione può essere effettuato tramite esecuzione di un comando manuale (più immediato) oppure tramite una configurazione del tool di gestione Docker Compose, approccio inizialmente più ostico ma che consigliamo per tutta una serie di motivi. Entrambe le scelte sono valide, ma in prospettiva (specie in ottica di aggiornamento) imparare ad usare Docker Compose è altamente consigliato.
Prima di istanziare Home Assistant, indipendentemente dalla modalità, è necessario creare una cartella la quale conterrà la configurazione dell’HUB:
sudo mkdir -p ~/homeassistant
ATTENZIONE: affinché i comandi a seguire funzionino, è necessario aver aggiunto Docker al gruppo sudoers, come spiegato in guida d’installazione Docker. |
Pre-requisiti
Come detto, per istanziare Home Assistant su Docker va da sé sia necessaria la presenza di Docker sul sistema. Se si è appena installato come da nostre indicazioni sopra, bene.
Comunque è necessario verificare che:
- la versione di Docker sia almeno la 19.3.9 (se lo si è appena installato è sicuramente così);
- sul sistema sia presente la libreria libseccomp in versione minima 2.42.
Qualora si possegga una versione di docker più vecchia, provvedere all’aggiornamento col comando:
sudo apt-get update && sudo apt-get upgrade docker
Per effettuare la verifica di versione di libseccomp, invece, eseguire il comando:
apt-cache policy libseccomp2
Nel caso in cui sia presente una versione vecchia, provare prima l’aggiornamento tramite package manager:
sudo apt-get upgrade libseccomp2
Nel caso in cui l’aggiornamento non elevasse la versione della libreria almeno alla versione 2.42, provvedere ad installare manualmente la libreria aggiornata tramite i seguenti comandi:
wget https://ftp.debian.org/debian/pool/main/libs/libseccomp/libseccomp2_2.5.3-2_armhf.deb sudo dpkg -i libseccomp2_2.5.3-2_armhf.deb rm libseccomp2_2.5.3-2_armhf.deb
A questo punto è possibile procedere oltre.
Tramite comando “docker run”
Istanziamo dunque Home Assistant Core su Docker tramite un comando specifico, il quale varia in base al modello di Raspberry Pi.
Raspberry Pi versione inferiore a 5
Eseguire il comando:
docker run -d --name="home-assistant" -e "TZ=Europe/Rome" -v ~/homeassistant:/config -v /run/dbus:/run/dbus:ro --net=host --restart always ghcr.io/home-assistant/home-assistant:stable
Lanciato il comando, attenderne il completamento. Ci potrebbe volere un po’.
N.b. La procedura scaricherà e avvierà in background un container chiamato home-assistant al quale verrà passati parametri come il fuso orario del sistema e la coordinata della directory prima creata, la quale verrà adottata come /config all’interno del container quale directory contenente la configurazione dell’HUB. Il comando, inoltre, comunica al container di avviarsi in automatico quando e se verrà riavviato il servizio Docker. |
Raspberry Pi versione 5
Eseguire il comando:
docker run -d --name="home-assistant" -e "TZ=Europe/Rome" -e DISABLE_JEMALLOC=true -v ~/homeassistant:/config -v /run/dbus:/run/dbus:ro --net=host --restart always ghcr.io/home-assistant/home-assistant:stable
Lanciato il comando, attenderne il completamento. Ci potrebbe volere un po’.
N.b. La procedura scaricherà e avvierà in background un container chiamato home-assistant al quale verrà passati parametri come il fuso orario del sistema e la coordinata della directory prima creata, la quale verrà adottata come /config all’interno del container quale directory contenente la configurazione dell’HUB. Il comando, inoltre, comunica al container di avviarsi in automatico quando e se verrà riavviato il servizio Docker. |
Tramite Docker Compose
Se astutamente si sceglie di utilizzare Docker Compose, allora è semplicemente necessario aggiungere al proprio file docker-compose.yaml la configurazione (sotto il bocco services) che segue, in base al propro modello Raspberry Pi:
Raspberry Pi versione inferiore a 5
home-assistant:
container_name: home-assistant
image: ghcr.io/home-assistant/home-assistant:stable
volumes:
- ~/homeassistant:/config
- /run/dbus:/run/dbus:ro
environment:
- TZ=Europe/Rome
network_mode: host
restart: always
Raspberry Pi versione 5
home-assistant:
container_name: home-assistant
image: ghcr.io/home-assistant/home-assistant:stable
volumes:
- ~/homeassistant:/config
- /run/dbus:/run/dbus:ro
environment:
- TZ=Europe/Rome
- DISABLE_JEMALLOC=true
network_mode: host
restart: always
Una volta salvato il file docker-compose.yaml, eseguire il comando:
docker compose up -d home-assistant
il quale provvederà a istanziare il container.
N.b. In caso il comando “docker compose” dovesse dare errore, verificare di non aver installata la versione applicativa di Docker Compose anzichè la versione plug-in alla quale il comando sopra fa riferimento. In tal caso, adeguare il comando da “docker compose” a “docker-compose” (col trattino in mezzo). |
Lanciato il comando, attendere il completamente del primo avvio. Ci potrebbe volere un po’: per leggere in tempo reale i log e verificare quindi cosa stia succedendo all’interno del container, eseguire il comando:
docker container logs home-assistant -f
N.b. La procedura scaricherà e avvierà in background un container chiamato home-assistant al quale verrà passati parametri come il fuso orario del sistema e la coordinata della directory prima creata, la quale verrà adottata come /config all’interno del container quale directory contenente la configurazione dell’HUB. Il comando, inoltre, comunica al container di avviarsi in automatico quando e se verrà riavviato il servizio Docker. |
Primo accesso su Home Assistant
Ora il container Docker appena installato avvierà la fase automatica di prima installazione interna di Home Assistant Core, la quale impiegherà qualche minuto (anche una ventina). 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
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.
Per scoprire l’IP del Raspberry sarà sufficiente eseguire il comando: ifconfig
il quale elencherà gli IP associati al raspberry: L’indirizzo IP è solitamente indicato a destra della dicitura “inet” e, solitamente, fa parte della subnet 192.168.0.0/16. http://INDIRIZZO_IP_DEL_RASPBERRY:8123 |
Al termine del completamento dell’installazione dovrebbe apparire un sito analogo a questo:
Il quale consente di impostare le prime, elementari e personali informazioni di “onboarding” relative alla propria domotica.
Complimenti! Home Assistant è in esecuzione.
Collegamento SSH
Dato che il container rappresenta esso stesso un host (sebbene virtuale) è possibile collegarsi in SSH su di esso. Per farlo, sempre da terminale, eseguire questo comando:
docker exec -it home-assistant sh
Si otterrà così accesso alla cartella di configurazione dell’HUB (la quale corrisponde, come contenuti, alla cartella creata prima). Per uscire, e quindi tornare all’ambiente Raspberry Pi OS, usare:
exit
Accesso ai log
A prescindere dai log propri dell’HUB, è possibile ovviamente consultare real-time i log del container Home Assistant Core in esecuzione su Docker, a sua volta in esecuzione su Raspberry Pi OS.
Il comando – ovviamente dal terminale di Raspberry Pi OS – è il seguente:
docker logs home-assistant
Rifinitura
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:
⚠️ Se di Home Assistant ne sai poco ma sei interessato a capirne di più, ti suggeriamo di partire da qui. |
Questa pagina è redatta, manutenuta e aggiornata dallo staff di inDomus, un gruppo di persone molto diverse tra loro che trovi, per domande e supporto, sul forum e sulla chat del sito. Alcuni link sono taggati in qualità di affiliati Amazon e riceviamo un compenso dagli acquisti idonei, utile al sostenimento del sito, ma le nostre recensioni sono tutte indipendenti e non sponsorizzate. Se ti sei perso, a tua disposizione c'è la mappa. |