community italiana di domotica personale
 
“configuration.yaml”: come suddividere il file di configurazione di Home Assistant (file “sidecar”)

“configuration.yaml”: come suddividere il file di configurazione di Home Assistant (file “sidecar”)

Scopi della guida
Concetti affrontati:
  • configurazione software
Componenti software utilizzate:
Prerequisiti
GUIDA INDICATA A UTENTI CON ISTALLAZIONE:
Ambienti Home Assistant HassOS-Supervised-Core
NOTE E DISCLAIMER
  • qualsiasi eventuale modifica agli impianti domestici dev'essere progettata e realizzata SOLO da personale qualificato;
  • qualsiasi modifica non prevista attuata in proprio è a propria responsabilità personale nonché a proprio rischio e pericolo (i contenuti della presenta pagina hanno infatti puro scopo didattico) e fa decadere garanzia, omologazioni e certificazioni di qualità; dei dispositivi interessati;
  • tutte le tecniche descritte si intendono applicate a software e firmware aggiornati alle ultime versioni disponibili;
  • gli articoli di inDomus sono totalmente indipendenti e non sponsorizzati. Se mai questo cambiasse, verrà segnalato chiaramente sulle pagine oggetto di sponsorizzazione;
  • questa pagina è materialmente scritta e manutenuta da più individui: non ci si aspetti né si pretenda un supporto personale. In caso di difficoltà, chiedere supporto alla community sul nostro forum o sulla nostra chat;
  • se hai bisogno di orientarti, c'è la mappa.

Abstract

Home Assistant basa per intero la propria configurazione – quindi i componenti, le automazioni, le configurazioni e altro – presso un file capofila chiamato “configuration.yaml” basato, per l’appunto, sul formato di serializzazione dati YAML.

Presso tale file l’amministratore di Home Assistant definisce direttamente o indirettamente tutte le entità presenti domotica, intese come dispositivi (luci, interruttori, termostati) ma anche integrazioni, automazioni, script e quant’altro questo potente HUB personale preveda.

Con il crescere della configurazione cresce anche la lunghezza del file, il quale può diventare ostico da padroneggiare e manutenere, sopratutto a fronte di ripetute modifiche date dall’eventuale evoluzione della propria domotica. In nostro soccorso interviene la possibilità di suddividere la configurazione in più file .yaml, con “configuration.yaml” quale file capofila e tutti gli altri ad esso collegati.

Strategia

L’idea è quella di suddividere – per fasi – le varie sezioni già definite nel proprio file di configurazione in diversi file.

Poniamo il caso di avere già definito in configurazione un blocco “luci” (di tipo MQTT, nello specifico) come segue:

mqtt:
  light:
  - name: "Tavolo"
    state_topic: "stat/Tavolo/POWER"
    command_topic: "cmnd/Tavolo/POWER"
    availability_topic: "tele/Tavolo/LWT"
    qos: 1
    payload_on: "ON"
    payload_off: "OFF"
    payload_available: "Online"
    payload_not_available: "Offline"
    retain: false

  - name: "Abat-jour"
    state_topic: "stat/abatJour/POWER"
    command_topic: "cmnd/abatJour/POWER"
    availability_topic: "tele/abatJour/LWT"
    qos: 1
    payload_on: "ON"
    payload_off: "OFF"
    payload_available: "Online"
    payload_not_available: "Offline"
    retain: false

Creiamo ora (nella stessa directory di del file “configuration.yaml“) un file “lights.yaml” nel quale inserire il copia-incolla di tutto il blocco luci, esclusa l’apertura dello stesso, ovvero “light:

  - name: "Tavolo"
    state_topic: "stat/Tavolo/POWER"
    command_topic: "cmnd/Tavolo/POWER"
    availability_topic: "tele/Tavolo/LWT"
    qos: 1
    payload_on: "ON"
    payload_off: "OFF"
    payload_available: "Online"
    payload_not_available: "Offline"
    retain: false

  - name: "Abat-jour"
    state_topic: "stat/abatJour/POWER"
    command_topic: "cmnd/abatJour/POWER"
    availability_topic: "tele/abatJour/LWT"
    qos: 1
    payload_on: "ON"
    payload_off: "OFF"
    payload_available: "Online"
    payload_not_available: "Offline"
    retain: false

Rimuoviamo ora da “configuration.yaml” tutto il blocco contenuto sotto “light:” sostituendolo con:

light: !include lights.yaml

A questo punto salvare entrambi i file (“configuration.yaml” e “lights.yaml“) e riavviare Home Assistant.

Se tutto sarà stato fatto come spiegato, non dovrebbe succedere nulla, nel senso che Home Assistant dovrebbe aver mantenuto la precedente configurazione, con la piccola sostanziale differenza di possedere ora una configurazione distribuita su più file.

Blocchi tipici

Tramite la logica spiegata, i blocchi che principalmente si consiglia di realizzare sono:

#automazioni
automation: !include automations.yaml

#personalizzazioni
customize: !include customize.yaml
#raggruppamenti per gestione e visualizzazione su frontend
group: !include groups.yaml

#scene
scene: !include scenes.yaml

#luci
light: !include lights.yaml
#interruttori
switch: !include switches.yaml

#sensori
sensor: !include sensors.yaml

Package

Un’altra tecnica interessante per il raggruppamento delle configurazioni – non per componente, ma per funzione – è quella dei cosiddetti package. La spieghiamo in dettaglio su questa scheda.

⚠️ Se di Home Assistant ne sai poco ma sei interessato a capirne di più, ti suggeriamo di partire da qui.

Questa pagina è redatta, manutenuta e aggiornata dallo staff di inDomus, un gruppo di persone molto diverse tra loro che trovi, per domande e supporto, sul forum e sulla chat del sito. Alcuni link sono taggati in qualità di affiliati Amazon e riceviamo un compenso dagli acquisti idonei, utile al sostenimento del sito, ma le nostre recensioni sono tutte indipendenti e non sponsorizzate. Se ti sei perso, a tua disposizione c'è la mappa.