Premessa
Home Assistant Core consente una maggiore personalizzazione dell’ambiente e delle configurazioni. Gli utenti possono direttamente modificare i file di configurazione YAML. Questo livello di accesso facilita l’ottimizzazione per scenari particolari, qualcosa che può risultare più complesso in un ambiente Docker, dove la gestione delle configurazioni richiede ulteriori passaggi.
Inoltre, pur riconoscendone i vantaggi, non amo Docker, sono per la semplificazione, penso che “quello che non c’è non si può rompere”, inoltre, Docker, introduce una stratificazione che va, inevitabilmente a scapito delle prestazioni; mi rendo, comunque, conto che rappresenta una agevolazione per coloro meno avvezzi alla riga di comando.
Tralascio volutamente la parte riguardante l’installazione del sistema operativo Debian 12, che può essere fatta su hardware dedicato oppure su VM VMware (esxi o Workstation), VM VirtualBox e VM KVM.
Tutto quanto, indicato in seguito, sarà eseguito da riga di comando.
Aggiornamento OS ad una eventuale ultima versione/release
sudo apt update
sudo apt upgrade -y
Installare le dipendenze
sudo apt install -y python3 python3-dev python3-venv python3-pip bluez libffi-dev libssl-dev \
libjpeg-dev zlib1g-dev autoconf build-essential libopenjp2-7 libtiff6 libturbojpeg0-dev \
tzdata ffmpeg liblapack3 liblapack-dev libatlas-base-dev libsqlite3-dev
Installazione dell'ultima release di Python
Alla data in cui sto scrivendo la versione ultima di Home Assistant è la 2024.8.0 che necessita di Python 3.12; al momento l’ultima versione Python per Debian 12 è la 3.11, occorre quindi installare la nuova versione di Python da sorgente, come indicato in seguito.
cd /usr/src
wget -c https://www.python.org/ftp/python/3.12.5/Python-3.12.5.tar.xz
tar -xJvf Python-3.12.5.tar.xz
cd Python-3.12.5
sh configure --enable-optimizations --enable-loadable-sqlite-extensions --enable-shared LDFLAGS="-Wl,-rpath /usr/lib"
make -j8
sudo make altinstall
Creazione dell'account utente
sudo groupadd -g 5000 homeassistant
sudo useradd -g 5000 -u 5000 -rm homeassistant
Creazione la directory di installazione
sudo mkdir /usr/local/homeassistant
Assegnazione della proprietà della directory all'account utente
sudo chown homeassistant:homeassistant /usr/local/homeassistant
Creazione dell'ambiente virtuale Python 3.12
sudo -u homeassistant -H -s
cd /usr/local/homeassistant
python3.12 -m venv .
source bin/activate
Installazione delle librerie necessarie
python3.12 -m pip install wheel
python3.12 -m pip install aiohttp_fast_zlib
python3.12 -m pip install aiohttp-zlib-ng[isal]
Installazione di Home Assistant (versione 2024.8.0)
pip3.12 install homeassistant==2024.8.0
Al termine dell’installazione, digitate il comando
hass
Dal browser provate ad accedere all’indirizzo IP del server, porta 8123.
http://a.b.c.d:8123
Se tutto è andato bene, dovreste avere accesso all’interfaccia di Home Assistant, create l’utente, come richiesto e fate una verifica generale di tutto l’ambiente e poi riavviate il server.
Creazione dello script di avvio
Per non avere pezzi di programma sparsi, preferisco, quando possibile raggruppare tutto in un unica directory, procedo quindi a spostare la directory delle configurazioni e log .homessistant, creata in /home/homessistant, dentro la directory di installazione in /usr/local/homeassistant rinominandola in “config“
mv /home/homeassistant/.homeassistant /usr/local/homeassistant/config
Per l’avvio di Home Assistant all’avvio del sistema operativo, occorre creare il file di avvio /etc/systemd/system/home-assistant@homeassistant.service con il contenuto indicato in seguito.
[Unit] Description=Home Assistant After=network-online.target [Service] Type=simple User=%i WorkingDirectory=/usr/local/homeassistant ExecStart=/usr/local/homeassistant/bin/hass -c "/usr/local/homeassistant/config" RestartForceExitStatus=100 Restart=on-failure RestartSec=5s [Install] WantedBy=multi-user.target
Abilitare l’esecuzione in fase di avvio del sistema operativo
systemctl enable home-assistant@homeassistant.service
In conclusione, per fare una verifica “generale”, fate un altro riavvio; se tutto è stato fatto a regola d’arte, dopo il riavvio, sarete in grado di accedere all’interfaccia web di Home Assistant apprezzandone, da subito, l’estrema velocità e fluidità.
Considerazioni Finali
Optare per Home Assistant Core offre vantaggi significativi in termini di flessibilità, personalizzazione e controllo, mentre Docker presenta vantaggi in termini di isolamento e gestione delle dipendenze, Home Assistant Core è spesso la scelta migliore per coloro che cercano una soluzione più personalizzabile e performante.
In definitiva, la scelta tra Home Assistant Core e Docker dipende dalle esigenze specifiche dell’utente e dal livello di competenza tecnica.