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

2 minuti di lettura
Scopi della guida
Concetti affrontati:
  • configurazione software
Componenti software utilizzate:
Prerequisiti
GUIDA maggiormente indicatA per:

Tutti gli ambienti

Note e disclaimer
  • qualsiasi modifica all'impianto elettrico dev'essere effettuata da personale qualificato;
  • qualsiasi modifica attuata in proprio è a propria responsabilità personale nonché a proprio rischio e pericolo (la presente guida ha puro scopo didattico);
  • qualsiasi modifica attuata in proprio a un dispositivo ne fa decadere la garanzia.

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:

light:
  - platform: mqtt
    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

  - platform: mqtt
    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:

  - platform: mqtt
    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

  - platform: mqtt
    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

#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

Home Assistant Official LogoATTENZIONE: ricorda che sul nostro community FORUM c'è una sezione ad hoc dedica a Home Assistant, per qualsiasi dubbio, domanda, informazione nel merito specifico di queste componenti.

Please comment below