Smart. Questa è la caratteristica con cui ormai tutti i dispositivi si presentano agli utenti, esendo capaci di offrire funzionalità avanzate, controllabili con il proprio smartphone mediante app dedicate. Per chi, come me, è appassionato di queste tecnologie, installare in casa tanti dispositivi intelligenti, di brand differenti, comporta l’installazione di altrettante applicazioni, tutte slegate tra loro, anche se ben fatte.

Il vero passo avanti è mettere in comunicazione tra loro questi dispositivi ed avere la possibilità di ceare scenari di funzionamento che le coinvolgano, unendo o crrelandone gli stati operativi. Un esempio banale: accendere una luce quando si cammina per casa durante la notte.

Hub personali: la scelta di Home Assistant

Per supportarci in questo arduo compito, negli ultimi anni, numerosi progetti di Hub Personali sono stati sviluppati nel mondo dei software Open Source. I più noti sono:

  • Domoticz
  • Home Assistant
  • openHAB

Core o non Core, questo è il dilemma

Come tutti quelli che si approcciano ad Home Assistant, anche io mi sono subito trovato di fronte al grande dilemma: quale scegliere tra HASSIO (al tempo si chiamava così, oggi semplicemente Home Assistant) e Home Assistant Core? Quali sono le differenze tra i due? Quale è meglio per le mie esigenze? Insomma, quale fa per me? E allora giù a leggere guide e spulciare siti.

Ovviamente ci troviamo di fronte ad una scelta del tutto personale, che è basata sulle conoscenze e sulla sicurezza che ognuno ha nel campo, ma anche sulla voglia di imbarcarsi in un sistema più flessibile, ma che richiede più lavoro per conservare un buono stato di funzionalità, oppure avere una soluzione pronta, per meno esperti, in cui con pochi click si può aggiungere e configurare funzionalità.

Alla fine ho scelto Core.

Perchè CORE?

Home Assistant Core è la versione più spoglia del nostro amato hub di domotica personale, appunto è ne il Core. Per questo è quella che richiede a chi la utilizza di sapere dove e come smanettare in caso problemi. L’utente ha tutto nelle prorie mani ed è obbligato ad avere - o acquisire - familiarità con i comandi di shell.

Ma allora perchè farsi del male?

I vantaggi di Core ci sono e non sono trascurabili. In primo luogo, essendo una versione molto spoglia, priva del livello on-top per la supervisione, peculiarità di HASSIO, è senza alcun dubbio più leggera e performante. E questo non va sottovalutato da chi, come me ai tempi di questa scelta, utilizza hardware molto basilari come il Raspberry PI, che hanno bassi consumi ma anche ovviamente capacità di calcolo non eccellenti. Inoltre chi si approccia a questo sistema è quasi sempre mosso da una passione e da una voglia di imparare: Home Assistant Core si presta perfettamente. Superate le difficoltà iniziali dell’utente non tecnico, con l’esperienza cresce la conoscenza e la manualità. E poi vuoi mettere la soddisfazione?

Prepariamo il Raspberry PI

Home Assistant è molto versatile e può essere installato su differenti piattaforme, fisica o virtuale, mantenendo le sue funzionalità pressochè invariate. Si può installare HA su un Personal Computer classico, magari un vecchio Pc inutilizzato, ma questa soluzione può risultare poco adatta ad un funzionamento h24, dati i consumi elevati. Una soluzione diffusa è l’installazione sul proprio NAS (ha senso se già a disposizione) sfruttando Docker. Ma senza dubbio l’accoppiata più diffusa è quella con la piattaforma Raspberry PI, in Docker oppure in Python virtual environment.

Personalmente sono partito da questa ultima soluzione, con questo hardware:

[ Manca tutta la parte di sistema operativo con Balena ]

Installiamo HA Core

Per istallare Home Assistant Core sul nostro RPi seguiamo alla lettera la procedura standard descritta sul sito ufficiale, facendo attenzione ad utilizzare una utenza con privilegi (sudoer).

Attenzione La versione di Python richiesta dall’attuale release di HA è la 3.8.

Scarichiamo i pre-requisiti

Anche se appena scaricato, è sempre consigliabile (anche prima dei futuri aggiornamenti) esguire i seguenti comandi per aggiornare il sistema ed installare alcune utili dipendenze:

sudo apt-get update && sudo apt-get install -y
sudo apt-get install -y python3 python3-dev python3-venv python3-pip libffi-dev libssl-dev libjpeg-dev zlib1g-dev autoconf build-essential libopenjp2-7 libtiff5

Creiamo un account

Aggiungiamo al nostro sistema un utente di sistema dedicato ad eseguire tutti i processi di Home Assistant Core. Il suggerimento è di chiamarlo semplicemente homeassistant e di creare la sua cartella in /home che ospiterà i file di configurazione. Per essere in grado, in futuro, di utilizzare una chiavetta per coordinare oggetti Z-Wave/Zigbee oppure oggetti direttamente connessi ai pin GPIO del RPi, aggiungiamo questo utente ai gruppi di sistema corrispondenti. Il tutto con il seguente comando:

sudo useradd -rm homeassistant -G dialout,gpio,i2c

Prepariamo l’ambiente virtuale python

Come detto, abbiamo scelto di installare HA-Core in un leggero ambiente virtuale python. Per fare questo, dobbiamo preparare l’ambiente sempre con utenza con privilegi, creare una cartella dedicata ed assegnarla all’utente homeassistant, infine attivare in questa cartella l’ambiente nel quale installeremo HA.

sudo mkdir /srv/homeassistant
sudo chown homeassistant:homeassistant /srv/homeassistant

sudo -u homeassistant -H -s
cd /srv/homeassistant
python3.8 -m venv .
source bin/activate

Una volta attivato l’ambiente virtuale Python, il prompt dei comandi assumerà la forma (homeassistant) homeassistant@raspberrypi:/srv/homeassistant $ e quindi potremo procedere installando i paccketti necessari e finalmente avviare il nostro HUB di domotica personale:

python3 -m pip install wheel
pip3 install homeassistant
hass

L’ultimo comando esegue Home Assistant Core. Al primo avvio, e soltanto al primo, sarà creata le cartelle di configurazione .homeassistant nella /home/homeassistant e tutte le dipendenze necessarie. Questa operazione richiede diversi minuti, soprattutto sull’hardware a nostra disposizione. Al termine potremo finalmente accedere all’interfaccia navigando nel browser la url http://INDIRIZZO-IP:8123 utlizzando l’indirizzo IP statico del RPi.

Impostiamo l’avvio automatico di HA

Ultimo step necessario per avere un sistema pronto a camminare sulle sue gambe è la creazione di un processo in grado di avviarsi automaticamente all’avvio del RPi. Per fare questo, sfrutteremo il componente linux chiamato systemd dedicato alla gestione dei processi di sistema operativo. Con una utenza con appropriati privilegi, creiamo ed editiamo il file con il seguente comando:

sudo nano /etc/systemd/system/home-assistant@homeassistant.service

Nel file incolliamo quanto segue:

[Unit]
Description=Home Assistant
After=network-online.target
[Service]
Type=simple
User=%i
WorkingDirectory=/home/%i/.homeassistant
ExecStart=/srv/homeassistant/bin/hass -c "/home/%i/.homeassistant"

[Install]
WantedBy=multi-user.target

Infine, ricarichiamo systemd per fargli leggere la nuova configurazione, che procediamo ad attivare per avere l’avvio automatico al prossimo riavvio del RPi.

sudo systemctl --system daemon-reload
sudo systemctl enable home-assistant@homeassistant

Per interagire con questo servizio si pssono usare anche i comandi status per verificare lo stato del processo, restart per riavviare HA, stop per stopparlo e disable per disabilitare l’avvio automatico.

Per rendere effettive le modifiche riavviamo il sistema:

sudo shutdown -r now

In caso di errori, per un log più dettagliato si può usare il comando:

sudo journalctl -f -u home-assistant@homeassistant | grep -i 'error'`

Enjoy!