Come installare e configurare Home Assistant (HASSIO) con Docker su un Raspberry Pi già in uso

5 minuti di lettura
SCOPI DELLA GUIDA:
  • Installare e configurare Home Assistant in modalità HASSIO 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: 4.3

Home Assistant Official Logo

Abstract

Come spiegato in altre schede, Home Assistant è il uno tra gli HUB personali 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.

L’installazione di Home Assistant in modalità HASSIO ha sì lo svantaggio di dedicare una unità Raspberry al suo uso esclusivo, ma presenta il vantaggio di fornire all’utente, nell’uso ordinario, un elemento assente in altre tipologie di installazione: “l’add-on store“. Si tratta, in sostanza, di un elenco di componenti aggiuntive (MQTT, Samba, SSH, Node-RED e molti altri) installabili e configurabili direttamente dall’interfaccia di Home Assistant, rendendo molto più semplice la personalizzazione dell’HUB.

D’altro canto, un’installazione di Home Assistant tradizionale (Raspberry con sistema operativo Raspbian + Home Assistant installato a mano) rende il Raspberry disponibile anche ad altri usi paralleli, ma prevede che Home Assistant (ed eventuali componenti aggiuntive) vengano completamente installate e configurate manualmente in modalità applicativa, perdendo tra l’altro alcune semplificazioni della modalità HASSIO.

La soluzione che salva capra e cavoli esiste, ed è descritta nella presente guida.

In pratica si tratta di installare Raspberry in modalità convenzionale (quindi con il proprio sistema operativo Raspbian) aggiungendovi poi un contenitore (“container”) dentro il quale eseguire HASSIO. Un container è un ambito virtuale che “fa credere” a HASSIO di trovarsi in un ambiente tutto suo, come appunto un Raspberry ad esso dedicato: questo ne permette l’esecuzione e, al contempo, lascia all’utente lo “spazio di manovra” auspicato presso il sistema operativo Raspbian. La tipologia di container utilizzata sarà Docker.

N.b. La modalità di installazione descritta in questa guida è funzionante, certificata, SOLO su Raspberry modello 3B, 3B+, 4B con sistema operativo Raspbian Buster (Full o Lite).
In caso si utilizzi Raspbian Stretch, si consiglia di aggiornare a Buster.

Una lista delle possibili alternative per l’installazione di Home Assistant è disponibile qui.

ATTENZIONE! Non limitarsi semplicemente installare Home Assistant: ricordarsi che esiste una lista ordinata di cose da fare per ottenere il massimo – col minimo sforzo – dal proprio HUB. Nella pagina qui sopra linkata seguire l’elenco relativo a “HASSIO su Docker (su Raspbian)”.

Procedimento

Installare Raspbian

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.

Docker

INSTALLAZIONE

Una volta collegati via ssh al proprio Raspberry (avendo cura di utilizzare l’utenza “pi“), eseguire innanzitutto un aggiornamento dell’ambiente tramite i seguenti comandi:

sudo apt-get update -y
sudo apt-get upgrade -y
sudo reboot

Successivamente al riavvio causato dall’ultimo comando, eseguire il seguenti comandi:

sudo apt-get install apt-transport-https ca-certificates curl avahi-daemon dbus -y
sudo apt-get install jq apparmor-utils socat software-properties-common -y

 

A questo punto dobbiamo perfezionare la configurazione di Raspbian, modificando il file “/boot/cmdline.txt” tramite il comando:

sudo nano /boot/cmdline.txt

Nell’editor che apparirà, posizioniamoci sul fondo del testo e aggiungiamo il seguente codice (ovviamente aggiungendo uno spazio in coda alla pre-esistente stringa, prima di copia-incollare):

cgroup_enable=memory cgroup_memory=1

Usciamo e salviamo (CTRL+X, Y, Invio).
Infine, riavviamo il Raspberry per rendere effettive le modifiche:

sudo reboot

Una volta riavviato il sistema operativo, ricollegarsi ed eseguire il seguenti comandi (attenzione: copiare per la loro interezza le stringhe che seguono):

curl -fsSL https://download.docker.com/linux/raspbian/gpg | sudo apt-key add -
echo "deb [arch=armhf] https://download.docker.com/linux/raspbian buster stable" | sudo tee /etc/apt/sources.list.d/docker.list
sudo apt-get update
sudo apt-get install docker-ce -y
Verifiche

Successivamente all’avvenuta installazione e per verificare che Docker sia correttamente installato, eseguire il seguente comando:

sudo docker run armhf/hello-world

Per confermare la bontà dell’installazione ed esecuzione di Docker, l’output dev’essere simile al seguente:

Unable to find image 'armhf/hello-world:latest' locally
latest: Pulling from armhf/hello-world
a0691bf12e4e: Pull complete 
Digest: sha256:9701edc932223a66e49dd6c894a11db8c2cf4eccd1414f1ec105a623bf16b426
Status: Downloaded newer image for armhf/hello-world:latest

Hello from Docker on armhf!
This message shows that your installation appears to be working correctly.

Installare HASSIO su Docker

Terminato il riavvio, ricolleghiamoci via SSH al nostro Raspberry e diventiamo superuser:

sudo -i

e lanciamo l’installazione di HASSIO:

SU RASPBERRY PI 3B/3B+:

curl -sL https://raw.githubusercontent.com/home-assistant/supervised-installer/master/installer.sh | bash -s -- -m raspberrypi3

SU RASPBERRY PI 4B:

curl -sL "https://raw.githubusercontent.com/krdesigns-com/supervised-installer/master/installer.sh" | bash -s -- -m raspberrypi4

A questo punto prendiamoci una pausa: l’attività che segue potrebbe metterci fino a 5-10 minuti, dipendentemente dalla velocità della vostra connessione Internet e dalle prestazioni del Raspberry.

Un’indicazione di corretto avanzamento è senz’altro la voce di log:

[Info] Install supervisor Docker container

Al termine – se tutto andrà a buon fine –  il terminale riporterà la seguente voce di log:

[Info] Run Hass.io

la quale identifica il completamento dell’attività.
Infine:

exit

Primo accesso su Home Assistant

Ora il container Docker appena installato avvierà la fase automatica di prima installazione interna di HASSIO, 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:

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.

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 HASSIO 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.

Accesso ai log

A prescindere dai log propri di HASSIO (consultabili da dentro l’ambiente, che ci si colleghi all’host HASSIO via SSH o via interfaccia), è possibile ovviamente consultare real-time i log del container HASSIO in esecuzione su Docker, a sua volta in esecuzione su Raspbian.

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

sudo docker logs hassio_supervisor

Rifinitura

A questo punto HASSIO è 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.


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