Home Assistant: Dashboard per il Raspberry PI

Home Assistant: Dashboard per il Raspberry PI

Realizziamo, come prima cosa, una dashboard per il Raspberry PI: il nostro Raspberry deve essere tenuto a sua volta sotto controllo, o no? 🙂

Perché creare una dashboard di controllo?

Come già anticipato, Home Assistant sarà il cervello che controllerà tutta la nostra casa domotica, quindi è fondamentale tenere sotto controllo i parametri operativi e di funzionamento del Raspberry PI sul quale lo abbiamo installato e, perché no, in futuro creare delle automazioni che ci avvisino quando qualcosa non funziona come dovrebbe o se qualche parametro raggiunge (o supera) i livelli di guardia.

Quali parametri vogliamo monitorare?

Come prima cosa è necessario definire l’elenco dei parametri che vogliamo tenere sotto controllo.
I principali parametri di interesse sono:

  • Temperatura processore (Minimo/Massimo/Media)
  • Percentuale utilizzo processore (Minimo/Massimo/Media)
  • Ultimo avvio
  • Utilizzo disco (Generale/Database di Home Assistant)
  • Memoria (Utilizzo corrente/Minimo/Massimo/Media)

Di cosa abbiamo bisogno?

Per raggiungere il nostro scopo avremo bisogno di:

  • System monitor: integrazione nativa di Home Assistant che consente di monitorare utilizzo del disco, della CPU, processi attivi etc
  • File sensor: integrazione nativa di Home Assistant che consente di utilizzare un file come fosse un sensor per estrarne informazioni di varia natura

Installare l’add-on File Editor

La configurazione di queste entità richiede di dover modificare i file di configurazione di Home Assistant (non è una cosa complessa, tranquilli).
Il modo più semplice per modificare la configurazione di Home Assistant è agire direttamente sui file YAML che la compongono tramite l’add-on ufficiale File Editor. Sul web si possono trovare deciso di guide (e video guide) passo passo per l’installazione. Qui di seguito riporto per comodità i passaggi:

  • Andare su Impostazioni
  • Selezionare Componenti Aggiuntibi
  • Selezionare Raccolta di Componenti Aggiuntivi
  • Nella sezione Official Add-Ons cercare File Editor
  • Selezionare Install
  • Consigliato: dopo l’installazione, selezionare il flag Show in sidebar per avere il link rapido di accesso nella barra laterale di sinistra

Configurare System Monitor

La configurazione di System Monitor richiede semplicemente l’aggiunta nel file /config/configuration.yaml dell’elenco delle risorse che si vogliono monitorare ed esporre come sensori.
Personalmente, anziché andare ad inserire tutte le configurazioni all’interno del file configuraiton.yaml, preferisco utilizzare gli include quindi creare un file YAML dedicato per ogni sezione.
In questo modo la configurazione risulta essere più leggibile e più facilmente mantenibile.

Apriamo quindi il file configuration.yaml e andiamo ad aggiungere (se già non presente) la seguente riga:

sensor: !include sensors.yaml

In altre parole, stiamo dicendo a Home Assistant che le configurazioni per quanto riguarda i sensori non saranno presenti in questo file, ma saranno riportate nel file sensors.yaml.

Creiamo ora il file sensors.yaml dal file editor (se già non presente), posizionandolo nella medesima folder del file configuration.yaml e andiamo a popolarlo con il seguente codice:

- platform: systemmonitor
  resources:
  - type: disk_use_percent
  - type: disk_use
  - type: disk_free
  - type: memory_free
  - type: memory_use_percent
  - type: memory_use
  - type: swap_use_percent
  - type: swap_use
  - type: swap_free
  - type: processor_use
  - type: processor_temperature
  - type: last_boot

Configurare il File Sensor

Per configurare il File Sensor apriamo il file configuration.yaml ed andiamo ad aggiungere la seguente porzione di codice che dice ad Home Assistant di consentire lo scan nella cartella config.

homeassistant:
  allowlist_external_dirs:
    - /config

Successivamente, sempre nel file sensors.yaml aggiungiamo:

sensor:
  - platform: filesize
    file_paths:
      - /config/home-assistant_v2.db

Il file /config/home-assistant_v2.db è il file di database di default di Home Assistant. In pratica stiamo aggiungendo un sensore sul file di database, così da poterne monitorare la dimensione.
Per impostazione di default questo sensore viene aggiornato ogni 30 secondi.

Creiamo la Dashboard di controllo

É arrivato il momento di visualizzare i nostri dati: creiamo quindi una view (nel mio caso, con sfoggio di fantasia, l’ho chiamata Raspberry) ed iniziamo a giocare con quelli che sono le schede di Home Assistant.
Non farò (come già detto) guide su come creare le view o le schede (il web ne è già pieno) ma mi limiterò a mostrarvi quella che è la view che più si adatta ai miei gusti e alle mie esigenze.

I grafici ad indicatore sono utilissimi perché consentono inoltre di impostare i 3 livelli di soglia (basso/medio/alto) in modo molto rapido da interfaccia consentendoci così di avere anche un supporto visivo a colpo d’occhio sullo stato del sistema.

Per il momento la view soddisfa le necessità che mi sono posto… ma tanto sappiamo tutti che molto presto ci rimetterò le mani! 🙂

Qui di seguito, il codice YAML per la creazione della view:

title: Casa
views:
  - theme: Backend-selected
    title: Raspberry
    path: raspberry
    icon: mdi:raspberry-pi
    badges: []
    cards:
      - type: vertical-stack
        cards:
          - type: gauge
            entity: sensor.processor_use
            severity:
              green: 0
              yellow: 35
              red: 70
            name: Utilizzo processore %
          - type: entities
            entities:
              - entity: sensor.processor_temperature
                name: Temperatura processore
              - entity: sensor.last_boot
                name: Ultimo avvio
            title: Processore
          - chart_type: line
            period: 5minute
            days_to_show: 1
            type: statistics-graph
            entities:
              - sensor.processor_use
            stat_types:
              - mean
              - min
              - max
          - chart_type: line
            period: 5minute
            days_to_show: 1
            type: statistics-graph
            entities:
              - sensor.processor_temperature
            stat_types:
              - mean
              - min
              - max
              - sum
      - type: vertical-stack
        cards:
          - type: gauge
            entity: sensor.disk_use_percent
            severity:
              green: 0
              yellow: 35
              red: 70
            name: Utilizzo disco %
          - type: entities
            entities:
              - entity: sensor.disk_use
                name: Utilizzo disco /
              - entity: sensor.home_assistant_v2_db_size
                name: DB Home Assistant
                icon: mdi:database
            title: Disco
      - type: vertical-stack
        cards:
          - type: gauge
            entity: sensor.memory_use_percent
            needle: false
            severity:
              green: 0
              yellow: 35
              red: 60
            name: Utilizzo memoria %
          - type: entities
            entities:
              - entity: sensor.memory_use
                name: Utilizzo memoria
              - entity: sensor.swap_use
                name: Utilizzo memoria swap
              - entity: sensor.swap_use_percent
                name: Utilizzo memoria swap %
            title: Memoria
          - chart_type: line
            period: 5minute
            days_to_show: 1
            type: statistics-graph
            entities:
              - sensor.memory_use
              - sensor.swap_use
            stat_types:
              - mean
              - min
              - max
              - sum

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *