community italiana di domotica personale
 
Installare e configurare Home Assistant Supervised con Docker su Raspberry Pi con Linux Debian

Installare e configurare Home Assistant Supervised con Docker su Raspberry Pi con Linux Debian

SCOPI DELLA GUIDA:
  • Installare e configurare Home Assistant in modalità Supervised su Docker, quindi dotarsi di tale HUB personale senza perdere le funzionalità offerte dal sistema operativo Linux Debian
  • Livello di difficoltà: basso
CONCETTI AFFRONTATI:
  • installazione e configurazione software
COMPONENTI SOFTWARE UTILIZZATE:
PREREQUISITI:
DISPOSITIVI FISICI UTILIZZATI:
GUIDA DEDICATA A utenti:
Debian
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: 1.8

Home Assistant SUPERVISED + Docker

😊  QUESTA GUIDA È PARTE DEL NOSTRO PERCORSO GUIDATO ALL’INSTALLAZIONE E CONFIGURAZIONE
di HOME ASSISTANT su RASPBERRY PI.

Abstract

ATTENZIONE: LA PRESENTE GUIDA DESCRIVE LA MODALITÀ DI IMPLEMENTAZIONE “SUPERVISED” PER HOME ASSISTANT, LA QUALE È FORTEMENTE SCONSIGLIATA PER DIVERSI MOTIVI. LE ALTERNATIVE SONO DISPONIBILI QUI.

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 (e non solo) una modalità spesso caldeggiata dagli sviluppatori è la modalità “Home Assistant OS”, ovvero una modalità sì completamente automatica, “chiavi in mano”, la quale prevede però di dedicare l’host all’uso esclusivo di Home Assistant, delle sue componenti e delle eventuali funzioni accessorie pur da lui sempre gestite. Questa modalità (la più facile e purtroppo più adottata) è 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 add-on (imprescindibili e di altro tipo) che vengono installati tramite un ulteriore strato di gestione, ovvero il cosiddetto “Supervisor“. Tutta questa stratificazione affossa le prestazioni. L’installazione di Home Assistant OS ha però il vantaggio di fornire all’utente, nell’uso ordinario, un elemento assente in altre tipologie di installazione: “l’add-on store“, ovvero il gestore delle componenti gestite dal “Supervisor” di cui sopra. Si tratta, in sostanza, di un elenco di componenti aggiuntive (MQTT, Samba, SSH, Node-RED e molti, molti altri) istanziabili e configurabili direttamente dall’interfaccia di Home Assistant, rendendo molto più semplice la personalizzazione dell’HUB e le funzioni da esso gestite.

L’alternativa è solitamente quella di installare Home Assistant Core su Docker, ovvero la modalità da noi in assoluto preferita – la quale, però, è più complessa da configurare e da amministrare, specie in presenza di ulteriori strumenti accessori. Inoltre, Core a se stante non prevede quella che per molti è una grande utilità, ovvero “l’add-on store” illustrato sopra, oppure per esempio la possibilità di effettuare backup in modo semplice ed altro.

Una vita di mezzo esiste: installare Home Assistant in modalità Supervised.

In pratica si tratta di installare Raspberry Pi in modalità convenzionale con Linux Debian aggiungendovi sopra un contenitore (“container“) dentro il quale eseguire per l’appunto Home Assistant Supervised – ovvero la sola porzione applicativa presente sul sopracitato Home Assistant OS – inclusi “Supervisor“, il suo “add-on store“, la possibilità di eseguire backup in modo semplice, eccetera. Il container è un ambito virtuale che “fa credere” allo stack applicativo di Home Assistant OS di trovarsi in un ambiente tutto suo, come appunto un host ad esso dedicato: questo ne permette l’esecuzione e, al contempo, lascia all’utente lo “spazio di manovra” auspicato presso il sistema operativo Linux Debian. La tipologia di container utilizzata sarà Docker.

N.b. La scelta tra Home Assistant OS/Supervisor e Home Assistant Core è forse la cosa più complessa da comprendere quando ci si avvicina alla domotica gestita con Home Assistant. Oltre alle spiegazioni qui sopra, abbiamo dedicato una scheda ad hoc che spiega tutti gli aspetti diretti e indiretti legati a tale scelta.

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

Procedimento

Assunti

Questa guida è dedicata a chi abbia già un Raspberry Pi in uso con sistema operativo Linux Debian a 64bit. Per coloro che non abbiano ancora provveduto e si trovino ad avere un Raspberry Pi “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 Linux Debian.

La guida da seguire è questa, avendo cura, durante la fase di download dell’immagine del sistema operativo da installare, di scegliere Linux Debian (64bit) e non Raspberry Pi OS (aka Raspbian). Sì, perché sebbene solitamente si sceglia quest’ultimo (vedi la classica guida), volendo usare Home Assistant Supervised@Docker la scelta di sistema operativo deve obbligatoriamente atterrare su Linux Debian (64bit).

Una volta terminata la configurazione di Linux Debian (inclusa la possibilità di collegarvisi tramite SSH e avendone perfezionato la configurazione) è possibile procedere nella presente guida.

Hardware supportato

La presente guida è ufficialmente supportata per varie tipologie di hardware. Far eventualmente riferimento alla documentazione ufficiale.

Prerequisiti

Colleghiamoci via SSH al nostro host e diventiamo superuser:

sudo -i

e lanciamo l’installazione di alcuni pacchetti necessari tra i quali “Network manager” Per installarlo è necessario essere collegati via SSH tramite connessione cablata e non Wi-Fi oppure tramite terminale lavorando direttamente e fisicamente connessi a Raspberry.
Non lanciare il comando che segue tramite connessione Wi-Fi, ma solo se connessi via cavo Ethernet.

apt install apparmor bluez cifs-utils curl dbus jq libglib2.0-bin lsb-release network-manager nfs-common systemd-journal-remote systemd-resolved udisks2 wget -y

Ciò fatto, è necessario verificare di avere installati i seguenti pacchetti con le relative versioni minime:

  • Systemd v. 239
  • NetworkManager v. 1.14.6
  • udisks2 v. 2.8
  • Debian Linux Debian v. 12 (“Bookworm”)

Mentre è necessario avere almeno la versione 3.xx.x di AppArmor.

Per effettuare le verifiche, eseguire il seguente comando:

apt list systemd network-manager udisks2 apparmor

e verificare le singole versioni.

N.b. Se i pacchetti non dovessero essere presenti e/o non installati/installabili o la versione dovessere essere inferiore a quella indicata, sconsigliamo di proseguire in quanto l’installazione di Home Assistant Supervised sarebbe sì, magari funzionante, ma certamente non ufficialmente supportata, il che potrebbe dare non pochi problemi in seguito.

A questo punto, a causa di un bug di systemd-resolved, non dovrebbe più funzionare la risoluzione DNS. Di default viene attivato lo stub listener che, all’aggiornamento della presente guida, non funziona. Per ovviare a questo inconveniente, basterà seguire quanto segue.

Eseguire:

nano /etc/systemd/resolved.conf

e de-commentare le due linee relative a DNS e DNSStubListener, popolandole rispettivamente con il DNS con cui si vuole risolvere i domini (l’ip del proprio router, della propria istanza di adguard o pihole oppure un qualsiasi server DNS come Cloudflare, OpenDNS, etc) e con il valore “no” per disabilitare il listener. Per esempio:

DNS=1.1.1.1
DNSStubListener=no

Successivamente, salvare e uscire (CTRL+X, Y, Invio).
Dopodiché:

systemctl restart systemd-resolved

per riavviare il servizio systemd-resolved.


A questo punto è necessario installare il pacchetto os-agent scaricando il pacchetto “.deb” relativo all’architettura hardware del proprio computer target. Per verificarla lanciare il seguente comando:

uname -m

Le release del pacchetto relativa al proprio hardware è possibile trovarle a questo indirizzo: se ad esempio si utilizza un Raspberry Pi, quasi sicuramente l’architettura sarà arm; andrà quindi scaricata e installata la versione “os-agent_X.Y.Z_linux_armv7.deb“, con il comando (personalizzato in fondo):

wget https://github.com/home-assistant/os-agent/releases/download/1.4.1/os-agent_X.Y.Z_linux_armv7.deb
dpkg -i os-agent_X.Y.Z_linux_armv7.deb

provvedendo ovviamente ad adeguare il nome del file nel comando in funzione della versione os-agent scaricata.

Installare Docker

Installare Docker su Linux Debian è piuttosto semplice, esiste una procedura completamente automatica. Tale procedura è illustrata in dettaglio in questa breve guida.

Se si ha già provveduto all’installazione di Docker, va da sé che questo passaggio possa essere saltato.

Vetrina Promo

Istanziare Supervised su Docker

Avviamo finalmente l’istanziamento di Home Assistant Supervised su Docker:

wget https://github.com/home-assistant/supervised-installer/releases/latest/download/homeassistant-supervised.deb
sudo dpkg -i homeassistant-supervised.deb

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

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

[info] Install supervisor startup scripts

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

[info] Within a few minutes you will be able to reach Home Assistant at:
[info] http://homeassistant.local:8123 or using the IP address of your
[info] machine: http://192.168.1.50:8123
[warn] A reboot is required to apply changes to grub.

la quale identifica il completamento dell’attività.

Infine, riavviamo l’host:

shutdown -r now

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_SERVER:8123, dove l’indirizzo IP è quello assegnato dal router al computer server.

Per scoprire l’IP del server sarà sufficiente eseguire il comando:

ip a

il quale elencherà gli IP associati al server.

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_SERVER: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.

Accesso ai log

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

Il comando – ovviamente dal terminale di Linux Debian – è il seguente:

sudo docker logs hassio_supervisor

Rifinitura

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

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.