community italiana di domotica personale
 
Installare e configurare Home Assistant Core con Docker su Raspberry Pi

Installare e configurare Home Assistant Core con Docker su Raspberry Pi

SCOPI DELLA GUIDA:
  • Installare e configurare Home Assistant in modalità Core su Docker, quindi dotarsi di tale HUB personale senza perdere le funzionalità offerte dal sistema operativo Raspberry Pi OS (Raspbian)
  • Livello di difficoltà: basso
CONCETTI AFFRONTATI:
  • installazione e configurazione software
COMPONENTI SOFTWARE UTILIZZATE:
PREREQUISITI:
DISPOSITIVI FISICI UTILIZZATI:
GUIDA maggiormente DEDICATA A utenti:
Tutti gli ambienti
NOTE E DISCLAIMER
  • qualsiasi eventuale modifica agli impianti domestici dev'essere progettata e realizzata SOLO da personale qualificato;
  • qualsiasi modifica non prevista attuata in proprio è a propria responsabilità personale nonché a proprio rischio e pericolo (i contenuti della presenta pagina hanno infatti puro scopo didattico) e fa decadere garanzia, omologazioni e certificazioni di qualità; dei dispositivi interessati;
  • tutte le tecniche descritte si intendono applicate a software e firmware aggiornati alle ultime versioni disponibili;
  • gli articoli di inDomus sono totalmente indipendenti e non sponsorizzati. Se mai questo cambiasse, verrà segnalato chiaramente sulle pagine oggetto di sponsorizzazione;
  • questa pagina è materialmente scritta e manutenuta da più individui: non ci si aspetti né si pretenda un supporto personale. In caso di difficoltà, chiedere supporto alla community sul nostro forum o sulla nostra chat;
  • se hai bisogno di orientarti, c'è la mappa.
Revisione guida: 3.3

Home Assistant Core + Docker

😊  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

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:

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.
Vetrina Promo

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:

Raspbian ifconfig

L’indirizzo IP è solitamente indicato a destra della dicitura “inet” e, solitamente, fa parte della subnet 192.168.0.0/16.
Scoperto l’IP, accedere ad Home Assistant indicando sul proprio browser il seguente indirizzo, come spiegato prima:

http://INDIRIZZO_IP_DEL_RASPBERRY:8123

Al termine del completamento dell’installazione dovrebbe apparire un sito analogo a questo:

Home Assistant - onboarding v2 - benvenuto

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:

Utilità: come aggiornare Home Assistant

⚠️ 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.