Installare Home Assistant Core su Linux Debian 12

Installare Home Assistant Core su Linux Debian 12

1920 1200 Nicola Montemurro

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.

    Preferenze Privacy

    Quando visiti il nostro sito web, possono essere memorizzate alcune informazioni, di servizi specifici, tramite il tuo browser, di solito sotto forma di cookie. Qui puoi modificare le tue preferenze sulla privacy. Il blocco di alcuni cookie può influire sulla tua esperienza sul nostro sito Web e sui servizi che offriamo.

    Click to enable/disable Google Analytics tracking code.
    Click to enable/disable Google Fonts.
    Click to enable/disable Google Maps.
    Click to enable/disable video embeds.
    Il nostro sito web utilizza cookie, principalmente di terze parti. Personalizza le preferenze sulla privacy e/o acconsenti all'utilizzo dei cookie.