Come installare e configurare Home Assistant Core con Docker su un Raspberry Pi già operativo

5 minuti di lettura
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 Raspbian Buster
  • Livello di difficoltà: basso
CONCETTI AFFRONTATI:
  • installazione e configurazione software
COMPONENTI SOFTWARE UTILIZZATE:
PREREQUISITI:
DISPOSITIVI FISICI UTILIZZATI:
GUIDA MAGGIORMENTE INDICATA PER:

Tutti gli ambienti

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: 2.0

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à “HASSIO”, 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 HASSIO 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 è quasi sempre quello di adottare Home Assistant Core installato da se stante come applicativo su Raspbian (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 consente di isolare totalmente l’esecuzione di Home Assistant Core dal sistema operativo senza per questo adottare HASSIO: è 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 Raspbian 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 Raspbian. 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 Raspbian.

La guida da seguire:

Una volta terminata la configurazione di Raspbian (inclusa la possibilità di collegarvisi tramite SSH) è possibile procedere nella presente guida.

Installare Docker

Installare Docker su Raspberry Pi dotato di sistema operativo Raspbian è 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 instanziare Home Assistant, indipendentemente dalla modalità, è necessario creare una cartella la quale conterrà la configurazione dell’HUB:

sudo mkdir -p /home/homeassistant/.homeassistant

Tramite comando “docker run”

Istanziamo dunque Home Assistant Core su Docker tramite il comando:

sudo docker run --init -d --name="home-assistant" -e "TZ=Europe/Rome" -v /home/homeassistant/.homeassistant:/config --net=host --restart unless-stopped homeassistant/raspberrypiX-homeassistant:stable

Dove la X nel nome dell’immagine (homeassistant/raspberrypiX-homeassistant:stable) andrà modificata indicando al suo posto 3 o 4 in base al modello di Raspberry Pi in uso.

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 seguente configurazione (sotto il bocco services):

  home-assistant:
    container_name: home-assistant
    image: homeassistant/raspberrypiX-homeassistant:stable
    volumes:
    - /home/homeassistant/.homeassistant:/config
    environment:
    - TZ=Europe/Rome
    network_mode: host
    restart: unless-stopped

Dove la X nel nome dell’immagine (homeassistant/raspberrypiX-homeassistant:stable) andrà modificata indicando al suo posto 3 o 4 in base al modello di Raspberry Pi in uso.

Una volta salvato il file docker-compose.yaml, eseguire il comando:

docker-compose up -d

il quale provvederà a istanziare il container.
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:

sudo 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

dovrebbe apparire una schermata di questo tipo:

Home Assistant 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.

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
 
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 virutale) è possibile collegarsi in SSH su di esso. Per farlo, sempre da terminale, eseguire questo comando:

sudo 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 Raspbian, 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 Raspbian.

Il comando – ovviamente dal terminale di Raspbian – è il seguente:

sudo 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 Core


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