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 modifica all'impianto elettrico dev'essere effettuata da personale qualificato
  • qualsiasi modifica attuata in proprio è a propria responsabilità personale nonché a proprio rischio e pericolo (la presente guida ha puro scopo didattico)
  • qualsiasi modifica attuata in proprio a un dispositivo ne fa decadere la garanzia.
Revisione guida: 3.2 – 18/08/2019

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.

Home Assistant Official Logo

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 rpi-update
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

È ora consigliato installare il pacchetto “network-manager“, il quale non è strettamente necessario ma consigliato (la sua assenza è segnalata con un warning presso Docker). ATTENZIONE: Abbiamo notato che il comando che lo installa (a seguire) causa in alcuni casi una disconnessione della rete se eseguito via connessione Wi-Fi (la quale smette di funzionare): si consiglia quindi di eseguirlo avendo cura (almeno per l’esecuzione di questo comando) di collegare il proprio Raspberry alla propria rete domestica tramite la sua porta LAN ethernet e non tramite connessione Wi-Fi:

sudo apt-get install network-manager -y

Completare infine con un riavvio:

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
CONFIGURAZIONE

A questo punto dobbiamo perfezionare la configurazione. Modificheremo quindi il file “/boot/cmdline.txt“:

sudo nano /boot/cmdline.txt

Nell’editor che apparirà, posizioniamoci sul fondo del testo e aggiungiamo la seguente riga:

cgroup_enable=memory cgroup_memory=1

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

sudo reboot
Verifiche

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:

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

A questo punto prendiamoci una pausa: l’attività che segue potrebbe metterci fino a 20-25 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

Trascorso qualche minuto dal termine della procedura, HASSIO sarà finalmente in esecuzione sul nostro Raspberry. 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:

http://indirizzo_ip_raspberry:8123

oppure

http://hassio.local:8123

N.b. In caso il collegamento tramite quest’ultimo indirizzo non vada a buon fine, assicurarsi che sul proprio router sia attivo il multicast DNS (mDNS).

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.

Ciò fatto, è possibile cominciare ad aggiungere componenti integrabili al proprio HUB. Al tema relativo al file di configurazione di Home Assistant dedichiamo una guida apposita.

LOG

Per visualizzare i LOG dell’installazione hassio, utilizzare il seguente comando:
sudo docker logs hassio_supervisor


Home Assistant Official LogoATTENZIONE: 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.

🔻 Clicca QUI per commentare l'articolo. 🔻