Close Menu
    Instagram
    dm.smartech
    Instagram TikTok Threads RSS
    • Home
    • HomeAssistant
    • Brand
    • Approfondimenti
    • Prodotti
    • Chi Sono
    dm.smartech
    Home » Comandi essenziali per la gestione del sistema!
    HomeAssistant

    Comandi essenziali per la gestione del sistema!

    Dario MontalbanoBy Dario Montalbano11 Novembre 2024Nessun commento
    Facebook Twitter Pinterest LinkedIn Tumblr WhatsApp VKontakte Email
    Share
    Facebook Twitter LinkedIn Pinterest Email

    Bentrovati amici smart!

    Nel video precedente, abbiamo dato uno sguardo alle schermate principali di Home Assistant. Prima di entrare nel dettaglio delle singole schermate, è importante conoscere alcuni comandi essenziali da eseguire da linea di comando. Questi comandi ci aiuteranno non solo a tenere aggiornato e in ordine il sistema operativo, ma anche a gestire i servizi principali che abbiamo installato o installeremo con Docker Compose, prendendo maggiore dimestichezza e controllo del nostro setup e rendendo, a sua volta, la gestione della nostra Smart Home più semplice ed efficiente.

    Iniziamo

    Per prima cosa, accediamo al terminale del Raspberry Pi tramite SSH, utilizzando qualsiasi dispositivo, come discusso nei video precedenti.

    Pertanto, apriamo PuTTY se stiamo usando Windows, oppure apriamo il terminale se stiamo usando macOS o Linux.

    Breve ripasso

    Per chi utilizza PuTTY dovrà semplicemente compilare il campo "Host Name" inserendo homeassistant.local oppure l'indirizzo IP del Raspberry Pi. Infine, dovrà cliccare su Open per avviare la connessione.

    Per chi utilizza il terminale del macOS o Linux, dovrà semplicemente digitare il seguente comando seguito dal tasto invio:

    SHELL
    ssh pi@homeassistant.local

    oppure, se conosciamo l'indirizzo IP del Raspberry Pi, digitiamo:

    SHELL
    ssh pi@indirizzo_ip_del_raspberry

    Dopo esserci collegati, partiamo con il primo punto:

    Mantenere il Sistema Operativo aggiornato

    Come abbiamo già affrontato in un video precedente, è importante mantenere aggiornato il sistema operativo nel tempo, perché questo può aiutarci a risolvere eventuali problematiche, migliorare la sicurezza del sistema e supportare nuove funzionalità e librerie. Un sistema aggiornato, infatti, rende la gestione della Smart Home, ma in generale del sistema operativo stesso, più stabile e pronta ad accogliere qualsiasi altra integrazione futura, che sia per la SmartHome o per altri progetti.

    Per aggiornare Raspberry Pi OS è necessario procedere dal terminale eseguendo i seguenti comandi uno alla volta seguiti dal tasto invio.

    SHELL
    sudo apt-get update
    sudo apt-get upgrade -y

    Nota:
    Il primo comando scarica la lista dei pacchetti aggiornati disponibili, preparando il sistema a ricevere le ultime versioni.

    Il secondo comando installa gli aggiornamenti per i pacchetti già presenti sul sistema, utilizzando la lista scaricata in precedenza e senza richiedere conferma, grazie al flag -y.

    Una volta eseguiti, vedremo scorrere a video una serie di LOG. Questo processo potrebbe richiedere diversi minuti, attendiamo che finisca.

    Al termine del processo, è sempre bene riavviare il sistema operativo per consentire al Raspberry Pi di finalizzare gli aggiornamenti. Quindi eseguiamo il seguente comando seguito dal tasto invio:

    SHELL
    sudo reboot

    Per chi se lo stesse chiedendo, la procedura di aggiornamento può essere resa automatica e schedulandola a qualsiasi ora, preferibilmente durante le ore notturne, quando il sistema è meno utilizzato.
    Personalmente preferisco e vi consiglio di gestire gli aggiornamenti manualmente per avere il pieno controllo su quali aggiornamenti installare e quando. Questo approccio ci permette di valutare se un aggiornamento è necessario in un determinato momento oppure no, evitandoci di installare qualcosa che potrebbe comportare malfunzionamenti per motivi di incompatibilità con altri elementi del nostro setup.

    Ricordiamo infatti che aggiornare un sistema non equivale sempre ad apportare migliorie. Alle volte potrebbero insorgere dei problemi, magari per via di un bug o semplicemente per dipendenze o librerie nuove non compatibili con determinati elementi del nostro setup, che potrebbero creare disservizi. Per questo motivo, preferisco essere consapevole di cosa e quando aggiorno.

    Al momento, per non complicare troppo le cose, ci concentreremo solamente sull'esecuzione manuale degli aggiornamenti del sistema operativo. Questo vi permetterà di acquisire dimestichezza e consapevolezza dei comandi appena discussi, rendendovi, oltretutto, parte attiva nella gestione del sistema. Il motivo di questa scelta didattica, se cosi possiamo definirla, è per ricordarvi che è buona pratica aggiornare periodicamente il vostro setup. Pertanto, la manualità iniziale aiuterà a sviluppare sicuramente maggiori competenze. Più avanti vedremo come schedulare e automatizzare l'esecuzione di qualsiasi comando utilizzando uno strumento molto conosciuto e potente.

    Come gestire e mantenere aggiornati i container

    Detto questo passiamo ai principali comandi di Docker e DockerCompose che utilizzeremo con maggiore frequenza per gestire e mantenere i nostri container o micro servizi.

    Vi ricordo che tutti i container, come accennato in un video precedente, li installeremo utilizzando il tool Docker Compose, incluso in Docker. Per chi si fosse perso la lezione 10, consiglio di recuperarla sul mio profilo Instagram o direttamente su dm-smartech.it.

    Per chi è già allineato, invece, saprà che Docker Compose richiede la creazione di un file di configurazione appositamente strutturato, che consente di installare e gestire contemporaneamente molteplici container/micro servizi all'interno di un unico file.

    In questo file, ogni container è identificato con un nome univoco rappresentato dal nodo principale. Sotto al nodo principale troviamo tutti i parametri di configurazione che servono a Docker Compose per installare, configurare e avviare quel determinato container. Ad esempio, nel nostro caso, il servizio di Home Assistant, l'unico attualmente presente nella nostra configurazione, è identificato con il nome home_assistant e al suo interno contiene tutti i suoi parametri di configurazione che servono a DockerCompose per inizializzarlo. home_assistant, quindi, è il nome univoco identificativo del servizio all'interno di Docker e che noi stessi utilizzeremo per identificare il servizio ed eseguire comandi specifici per quel container. Ovviamente lo stesso concetto vale per qualsiasi altro container che installeremo: ognuno avrà un nome univoco identificativo.

    La formulazione di tale identificativo è a nostra discrezione, nel senso che possiamo essere noi stessi a definirlo, senza vincoli, all'interno del file di configurazione di DockerCompose. Quindi, ad esempio, anziché di usare home_assistant come nome identificativo, potremo usare home-assistant o utilizzare qualsiasi altro nome di vostra preferenza. Da quel momento il servizio Home Assistant verrà identificato e riconosciuto da DockerCompose con il nuovo nome assegnato

    Il file di configurazione di cui parlo è docker-compose.yaml che, per chi ha seguito la configurazione da me esposta nei video precedenti, dovrebbe essere contenuto all'interno del seguente percorso:

    SHELL
    /home/pi/homeassistant_hub/docker-config

    Vi ricordo, quindi, prima di poter eseguire qualsiasi comando di Docker Compose è necessario spostarsi all'interno di questo percorso, utilizzando il comando cd da linea di comando. Precisamente, dobbiamo eseguire il seguente comando seguito dal tasto Invio:

    SHELL
    cd /home/pi/homeassistant_hub/docker-config

    così facendo saremo entrati all'interno della cartella docker-config. Per accertarcene, digitiamo il comando pwd seguito dal tasto invio. Il terminale dovrebbe confermarci che siamo nella cartella giusta.

    SHELL
    /home/pi/homeassistant_hub/docker-config

    In caso contrario sarà necessario rieseguire il comando cd e riprovare.

    Dopo aver verificato di essere nel percorso corretto, ovvero quello contenente il file di configurazione YAML di Docker Compose, possiamo iniziare ad analizzare i comandi principali che ci servono per gestire i nostri container. Ricordo che tutti i comandi che vedremo d'ora in poi potranno essere eseguiti solo dopo essere entrati nel percorso appena citato.

    Inizializzare i container

    Il primo comando lo abbiamo già visto quando abbiamo installato il container di Home Assistant. Come si può intuire, il comando che sto per mostrarvi nuovamente serve a indicare a Docker Compose di scaricare (se non già presenti), creare e avviare tutti i container definiti nel file di configurazione docker-compose.yaml, eseguendoli in background. Ricapitolando, abbiamo un file di configurazione in cui definiamo tutti i container o micro servizi che vogliamo installare con Docker Compose. Una volta definito o modificato il file docker-compose.yaml, sarà sufficiente eseguire il seguente comando seguito dal tasto invio per consentire a Docker Compose di capire come procedere.

    SHELL
    sudo docker compose up -d

    In linea di massima, quando diremo a Docker Compose di analizzare il nostro file di configurazione mediante il comando appena visto:

    1. Se l'intero setup in configurazione è già avviato e installato, Docker Compose non farà nulla.
    2. Se vengono individuati nuovi micros ervizi configurati ma non installati, Docker Compose li installerà, scaricando le immagini necessarie, e li avvierà.
    3. Se trova container non avviati, Docker Compose li riavvierà.

    Se invece vogliamo che il comando appena visto agisca solamente su un determinato micro servizio del nostro file di configurazione, possiamo eseguire lo stesso comando seguito dal nome univoco identificativo del container che abbiamo specificato nel file di configurazione stesso. Ad esempio, nel caso di Home Assistant il comando da eseguire sarà:

    SHELL
    sudo docker compose up -d home_assistant

    In questo modo il comando scaricherà, creerà, o avvierà solamente il container specificato (Home Assistant in questo caso), tralasciando tutti gli altri. Utile quando vogliamo solamente agire su un solo container.

    Rimuovere i container

    Al contrario, quando vogliamo rimuovere tutti i container presenti in configurazione da Docker, possiamo eseguire il seguente comando seguito dal tasto invio:

    SHELL
    sudo docker compose down

    Se invece vogliamo rimuovere tutti i container presenti in configurazione insieme a tutti i volumi e le immagini correlate, come se non fossero mai stati eseguiti e installati, possiamo farlo eseguendo il seguente comando seguito dal tasto invio:

    SHELL
    sudo docker compose down --volumes --rmi all

    Se invece vogliamo che il comando appena visto agisca solamente su un determinato micro servizio del nostro file di configurazione, possiamo eseguire lo stesso comando seguito dal nome univoco identificativo del container. Ad esempio, nel caso di Home Assistant possiamo eseguire il seguente comando seguito dal tasto invio:

    SHELL
    sudo docker compose down home_assistant

    oppure per rimuovere anche immagini e volumi possiamo eseguire il seguente comando seguito dal tasto invio:

    SHELL
    sudo docker compose down home_assistant --volumes --rmi all

    Nota:
    In merito a immagini e volumi, cerchiamo di fare un po’ di chiarezza per capire cosa sono. Quando installiamo un container, questo viene creato a partire da un’immagine predefinita, scaricata in locale e inizializzata da Docker. Possiamo pensare alle immagini come a un pacchetto di installazione del micro servizio. Successivamente all'installazione, quando un container viene avviato, Docker crea dei volumi, che sono essenzialmente lo spazio di archiviazione usato dal container per i dati che genera e utilizza durante l’esecuzione. Ogni Container ovviamente avrà il suo volume dedicato.

    Ricapitolando
    Le immagini Docker contengono tutto il necessario per eseguire un'applicazione, inclusi il sistema operativo di base, le librerie e il codice dell'applicazione.

    I volumi, invece, sono la memoria persistente del container, attiva una volta che il container è avviato e in funzione.

    Conoscere l’esistenza e la differenza di questi dati è utile per stabilire, al momento della rimozione di un container, se vogliamo eliminare anche le immagini e i volumi associati. Questo ci permette di liberare spazio e mantenere il sistema più pulito e snello.

    Detto questo possiamo proseguire.

    Riavviare i container

    Quando abbiamo la necessità di stoppare, avviare o riavviare tutti i container del file di configurazione, possiamo procedere con uno dei seguenti comandi:

    SHELL
    sudo docker compose start
    sudo docker compose stop
    sudo docker compose restart

    Se invece vogliamo agire su un determinato container, ad esempio Home Assistant, possiamo procedere con uno dei seguenti comandi:

    SHELL
    sudo docker compose start home_assistant
    sudo docker compose stop home_assistant
    sudo docker compose restart home_assistant

    I comandi appena visti dovrebbero essere molto esplicativi, start avvia, stop ferma e restart riavvia il o i container

    Aggiornare i container

    Quando invece vogliamo aggiornare tutti i container indicati nel nostro file di configurazione, basterà eseguire i seguenti comandi uno alla volta seguiti dal tasto invio:

    SHELL
    sudo docker compose pull
    sudo docker compose up -d
    sudo docker image prune -f

    In particolare, il primo comando scarica le immagini aggiornate dei container, se ci sono, il secondo comando li inizializza da zero con gli aggiornamenti scaricati, e il terzo comando esegue una pulizia rimuovendo tutte le immaginin non più utilizzate.

    Se invece vogliamo aggiornare un solo container, e non tutti quelli presenti nel file di configurazione, possiamo eseguire gli stessi comandi, uno alla volta, seguiti dal nome del container che desideriamo aggiornare, ad esempio Home Assistant:

    SHELL
    sudo docker compose pull home_assistant
    sudo docker compose up -d home_assistant
    sudo docker image prune -f

    In breve, questo comando è utile per aggiornare i nostri microservizi all'ultima versione disponibile. Ad esempio, ogni volta che uscirà una nuova versione di home assistant, dovremo servirci di questi comandi per aggiornalo.

    Verificare i log di un determinato container

    Alle volte potrebbe capitare di dover monitorare i log di un container per verificare o debuggare eventuali malfunzionamenti o, semplicemente, l'operatività del container stesso. Per fare questo possiamo analizzare il log di uno specifico container, ad esempio Home Assistant, eseguendo il seguente comando seguito dal tasto invio:

    SHELL
    sudo docker container logs home-assistant -f

    Cosi facendo verrà visualizzato a video un aggiornamento in tempo reale dei LOG memorizzati dal micro servizio.
    Per uscire dal LOG è sufficiente premere in sequenza e mantenere premuti CTRL + C

    Entrare nel terminale dei container

    Per ultimo, vi ricordo che i container sono ambienti isolati, simili a versioni ridotte di un sistema operativo. In molte circostanze, è utile poter accedere direttamente al terminale del container e lavorare al suo interno per impostare permessi, installare pacchetti o effettuare altre configurazioni. Nelle prossime tappe vedremo degli esempi concreti di quanto appena detto.

    Per entrare dentro la shell di un container è sufficiente eseguire il seguente comando seguito dal tasto invio:

    SHELL
    sudo docker exec -it nome_del_container sh

    Per uscire dal terminale di un container e tornare al terminale del sistema principale, sarà sufficiente eseguire il seguente comando seguito dal tasto invio:

    SHELL
    exit

    oppure premere in sequenza e mantenere premuti CTRL + A + D

    Bene per oggi è tutto, nei prossimi video inizieremo ad analizzare in dettaglio le singole schermate di HomeAssistant.
    Come sempre se vi fa piacere seguitemi per altri tutorial, attivare la campanelina e lasciate un like al video.

    Visualizza questo post su Instagram

    Un post condiviso da Dario Montalbano (@dm.smartech)

    Share. Facebook Twitter LinkedIn WhatsApp Email
    Previous ArticlePanoramica delle schermate di Home Assistant!
    Next Article Dispositivi e Servizi – Parte 1

    Related Posts

    Home Assistant 2025.5: Due milioni di installazioni e tante novità

    13 Maggio 2025

    Home Assistant 2025.4: Dashboard Intelligenti, Conversazioni Più Naturali e Nuove Integrazioni

    2 Aprile 2025

    Automazioni e Scenari – Parte 2

    28 Marzo 2025

    Automazioni e Scenari – Parte 1

    3 Marzo 2025
    Informazioni su questo sito

    Questo può essere un buon posto per presentare te stesso ed il tuo sito o per includere alcuni crediti.

    Created by Dario Montalbano © 2025

    Type above and press Enter to search. Press Esc to cancel.