Installazione di HASS.IO su un miniPC con Ubuntu e Docker
di Luigi Duchi
21 Aprile 2020
Home Assistant
Sembra ieri che ho iniziato ad utilizzare Home Assistant per la gestione del mio appartamento, invece sono passati ben 4 anni...
All'inizio era più la voglia di gestire i miei dispositivi Xiaomi (all'epoca avevo iniziato con i loro prodotti) direttamente con un'interfaccia gestibile dal desktop del mio computer.
Cercando in rete conobbi Home Assistant e me ne innamorai (come nelle migliori storie d'amore - NdR).
Oggi esistono diversi modi per usare ed installare Home Assistant.
Quando iniziai esisteva solamente l'installazione in finestra virtuale (oggi chiamata HOMEA ASSISTANT CORE)
Poco dopo iniziarono ad uscire le prime versioni di HASS.IO, ma all'inizio era veramente molto limitate rispetto ad Home Assistant Core.
In principio ad esempio HASS.IO era installabile solo tramite immagine di fatto impedendo l'utilizzo del dispositivo che lo ospitava.
Motivo per cui, per molto tempo, ho utilizzato la prima modalità di installazione.
Con il passare del tempo HASS.IO è cresciuto molto e ha aggiunto molte possibilità e molte funzioni difficilmente replicabili in Home Assistant Core.
La situazione è ulteriormente cambiata con DOCKER ed è proprio in quest'articolo che ne parleremo.
... ma prima chiariamo qualche punto vista la materia abbastanza complessa e in continua evoluzione.
In rete si sentono citare tantissimi nomi, cosa che può portare l'utente a fare confusione.
- HOME ASSISTANT CORE
- HASS.IO
- HASSOS
- HASSBIAN
Facciamo una rapida panoramica del significato delle varie nomenclature.
- HOME ASSISTANT CORE:
questo è il programma nudo e crudo scritto in python, è un software open source e permette di essere installato praticamente su qualsiasi piattaforma supportata da python. Non ha accesso a nessun tipo di add-ons ed ogni aggiunta andrà fatta manualmente mediante riga di comando da terminale.
richiede una buona conoscenza e dimestichezza della riga di comando ed è quindi sconsigliato a chi si affaccia per la prima volta a questo mondo.
- HASSBIAN:
Avrete notato l'assonanza con il nome dato al famosissimo sistema operativo basato su linux specifico per Raspberry, Raspbian. Hassbian è o meglio era, dato che adesso non è più supportato e aggiornato, una versione di Raspbian modificata con a bordo preinstallato Home Assistant.
Questa configurazione prevedeva l'installazione di Home Assistant in finestra virtuale. Non ha più senso utilizzare questo sistema dato che non riceverà aggiornamenti futuri.
- HASSOS:
Questo è un sistema operativo dedicato a svolgere una sola funzione ovvero l'utilizzo di HASS.IO, comprensivo quindi di add-ons. Con questo sistema la vostra macchina diventerà ad uso esclusivo di Home Assistant non potendo utilizzarla in alcun altro modo.
Esiste anche la possibilità di avere un'immagine direttamente flashabile su di una sd che, una volta inserita ad esempio in un Raspberry, vi darà immediatamente accesso all'istanza Home Assistant.
Mi sento di consigliare questa soluzione solo nel caso in cui la installiate su una macchina virtuale in modo da poter comunque utilizzare le risorse della macchina Host.
- HASS.IO:
É un prodotto molto interessante ed è proprio quello che andremo ad installare in questa guida.
HASS.IO rappresenta la fusione tra il programma base Home Assistant e altri strumenti come Hassio Supervisor.
Quest'ultimo prevede una serie di aggiunte importanti come la possibilità di aggiornare Home Assistant direttamente da interfaccia grafica, gestire gli add-on e creare dei backup chiamati snapshot che permettono il salvataggio completo di tutta la nostra configurazione attraverso il tab “SUPERVISOR” presente nel nel pannello a sinistra dell’interfaccia grafica.
Tab che non è presente in Home Assistant Core.
Hass.io viene installato tramite container Docker: Home Assistant, e quindi anche hassio-supervisor e i vari add-on, vengono eseguiti ognuno in un container diverso.
Ma cos'è Docker?
Docker è un progetto open source, la sua funzione è quella di creare uno o più processi che potremmo chiamare per comodità "pacchetti", isolati dal sistema operativo.
Al suo interno sono presenti tutti i file necessari a utilizzare tali processi.
Docker si potrebbe paragonare ad una macchina virtuale ma, mentre in una macchina virtuale il software emula in tutto e per tutto il sistema operativo, in Docker condivide solo il Kernel (Linux) tra i vari pacchetti rendendolo di fatto la soluzione meno complessa (e meno esosa) di una macchina virtuale.
So che queste nozioni possono essere considerate troppo tecniche per i neofiti, ma è necessario avere una panoramica completa di questo ecosistema.
In passato vi ho mostrato come installare HOME ASSISTANT CORE su di un Raspberry con sistema operativo Raspbian.
Oggi vi mostrerò come installare HASSIO in docker su di un INTEL NUC con sistema operativo Ubuntu (LINUX).
Un mini PC tipo questo:
Qui mi fermerò nuovamente per rispondere ad alcune domande che sicuramente vi sarete posti leggendo l'ultima frase.
- Devo sostituire per forza il mio Raspberry con un Intel NUC o comunque con un mini pc?
- La risposta è no, è possibile installare questa configurazione anche su di un semplice Raspberry con Raspbian come sistema operativo. A dire il vero essendo Docker compatibile con varie piattaforme, con questa modalità si potrà installare anche su altre tipologie di device ad esempio mini pc e alcuni nas vedi Qnap e Sinology che supportano Docker.
- Devo per forza aver installato LINUX UBUNTU sul mio Intel NUC/mini pc nel caso decidessi di cambiare hardware?
- anche qui la risposta è negativa si può installare anche un altra distribuzione Linux come ad esempio Debian ma visto che Vincenzo Caputo ha scritto un'ottima guida per installare UBUNTU (che potrete trovare QUI) non vedo perchè non sfruttarla ;-)
Installazione di HASS.IO su un miniPC - prepariamolo con Ubuntu
Dopo questa lunghissima prefazione arriviamo al cuore dell'articolo.
COME INSTALLARE HASSIO IN DOCKER
Partiamo dal desktop di Ubuntu...
per prima cosa dovrete aprire il terminale, dato che spesso vi capiterà di utilizzarlo vi consiglio di metterlo nei preferiti, vediamo come fare:
Cliccare l'icona composta da tanti piccoli quadratini in basso a sinistra (quella cerchiata di rosso).
Successivamente cliccate sulla cartella utilità.
Posizionate il cursore sull'applicazione terminale e, cliccando con il tasto destro del mouse, selezionare AGGIUNGI AI PREFERITI
Noterete nel desktop principale apparire l'icona del terminale nella barra di sinistra come nella prima foto.
Torniamo a noi.
APRITE IL TERMINALE
se avete installato Ubuntu, digitate questo comando e cliccate invio, diversamente passate direttamente al passaggio successivo:
sudo add-apt-repository universe
ecco questi comandi invece vanno digitati tutti indipendentemente dalla versione linux che state usando.
Ad ogni comando premete invio per conferma.
I comandi potrete copiarli da qui e incollarli direttamente nel vostro terminale.
sudo -i
apt-get update
apt-get install -y software-properties-common apparmor-utils apt-transport-https avahi-daemon ca-certificates curl dbus jq network-manager socat
systemctl disable ModemManager
systemctl stop ModemManager
curl -fsSL get.docker.com | sh
###########################################################################################################AGGIORNAMENTO###############################################################################################################
Nel caso abbiate l'ultima versione di ubuntu la 20.04 e i comandi sopra vi dovessero restituire un errore seguite i passaggi qua sotto e successivamente proseguite lanciando il comando che installa homeassistant.
se invece è andato tutto a buon fine saltate pure la parte ua sotto.
############################################################################################################################################################
Aggiornare eventuali pacchetti con il seguente comando:
sudo apt update
Installare alcuni pacchetti necessari che consentono a apt di utilizzare i pacchetti su HTTPS:
sudo apt install apt-transport-https ca-certificates curl software-properties-common
Aggiungere la chiave GPG per il repository Docker ufficiale:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
Aggiungi il repository Docker:
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"
Successivamente, aggiornare il database con repository appena aggiunto:
sudo apt update
Assicurati che sia installato dal repository Docker invece del repository predefinito di Ubuntu:
apt-cache policy docker-ce
Dovreste visualizzare un messaggio di output simile al seguente:
docker-ce: Installed: (none) Candidate: 5:19.03.8~3-0~ubuntu-bionic Version table: 5:19.03.8~3-0~ubuntu-bionic 500 500 https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages 5:19.03.7~3-0~ubuntu-bionic 500 500 https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages 5:19.03.6~3-0~ubuntu-bionic 500 500 https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages 5:19.03.5~3-0~ubuntu-bionic 500...
infine installa docker:
sudo apt install docker-ce
Questo comando opzionale lo puoi usare per determinare lo stato di docker:
sudo systemctl status docker
Dovresti trovare un risultato del genere
â docker.service - Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2020-05-01 19:55:55 CEST; 1min 16s agoTriggeredBy: â docker.socket Docs: https://docs.docker.com Main PID: 19751 (dockerd) Tasks: 8 Memory: 39.1M CGroup: /system.slice/docker.service ââ19751 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
Docker è installato passa a digitare lo script che installa home assistant.
############################################################################################################################################################
Adesso che avete preparato il sistema non vi rimane che lanciare il comando per l'installazione vera e propria di Home Assistant.
Il comando da lanciare sarebbe questo, tuttavia alcune macchine necessitano di un'aggiunta al comando per l'installazione: nel caso del mio...
INTEL NUC il comando è questo:
curl -sL "https://raw.githubusercontent.com/home-assistant/supervised-installer/master/installer.sh" | bash -s -- -m intel-nuc
se avessi avuto un RASPBERRY PI4 il comando sarebbe stato questo
curl -sL "https://raw.githubusercontent.com/home-assistant/supervised-installer/master/installer.sh" | bash -s -- -m raspberrypi4
In caso di altre tipologie di macchine basta sostituire l'ultima parte con il dispositivo corrispondente.
Ecco una lista di quelle disponibili al momento del rilascio della guida.
Per un elenco aggiornato potete fare riferimento alla pagina GitHub del programma di installazione.
Se non riesci a trovare il tuo tipo di macchina nell'elenco, dovresti scegliere la qemuversione, ovvero qemux86-64 per una normale distribuzione Linux a 64 bit o qemuarm-64 per la maggior parte dei moderni target basati su ARM come cloni di Raspberry Pi o TV box.
Una volta al termine della procedura potrete raggiungere la vostra istanza Home Assistant semplicemente digitando da qualsiasi BROWSER il seguente indirizzo.
http://vostroindirizzoip:8123
dove vostroindirizzoip è l'indirizzo ip della macchina su cui avrete installato Home Assistant ad esempio:
http://192.168.1.25:8123
Ne approfitterò, dato che ho reinstallato tutto, per creare nuove guide passo passo da pubblicare nel prossimo futuro.
Stay tuned!
Produrre e aggiornare contenuti su vincenzocaputo.com richiede molto tempo e lavoro. Se il contenuto che hai appena letto è di tuo gradimento e vuoi supportarmi, clicca uno dei link qui sotto per fare una donazione.