Seleziona una pagina

I packages in Home Assistant forniscono un modo per raggruppare diverse configurazioni di integrazione insieme. Con i pacchetti abbiamo un modo per includere diverse integrazioni o diverse parti di configurazione utilizzando una qualsiasi delle !include direttive introdotte nello splittare la configurazione.

Può essere specificato in linea o nel file di configurazione (configuration.yaml) utilizzando !include

homeassistant:

packages:
pack_1: !include my_package.yaml

Nella configurazione prendono il formato di un nome di pacchetto (senza spazi, tutto minuscolo) seguito da un dizionario con la configurazione del pacchetto. Ad esempio, il pacchetto pack_1
Esistono alcune regole per i pacchetti che verranno uniti:

  1. Le integrazioni basate sulla piattaforma ( light, switch, ecc.) possono sempre essere unite.
  2. Le integrazioni in cui le entità sono identificate da una chiave che rappresenterà l’entità_id ( {key: config}) devono avere “chiavi” univoche tra i pacchetti e il file di configurazione principale.
  3. Qualsiasi integrazione che non sia una piattaforma [1] o dizionari con chiavi Entity ID [2] può essere unita solo se le sue chiavi, ad eccezione di quelle per gli elenchi, sono definite una sola volta.

Un modo per organizzare i pacchetti è creare una cartella denominata “packages” nella directory di configurazione di Home Assistant. Nella directory dei pacchetti, puoi archiviare qualsiasi numero di pacchetti in un file YAML. Questa voce nel tuo configuration.yaml caricherà tutti i file YAML in questa cartella dei packages e nelle sue sottocartelle:

homeassistant:
packages: !include_dir_named packages

Il vantaggio di questo approccio è quello di estrarre tutte le configurazioni necessarie per integrare un sistema in un unico file, piuttosto che tenerle distribuite su più file. Puoi usare altri !includemetodi per i pacchetti; per esempio !include_dir_merge_named. Tuttavia, a differenza di !include_dir_merge_named, il !include_dir_named utilizza la stessa indentazione di “configuration.yaml”. Ciò significa che puoi copiare e incollare elementi dal file di configurazione. Con !include_dir_named, il nome del file viene utilizzato come nome del pacchetto. I nomi dei file devono essere univoci.

Con il !include_dir_merge_named, il nome del pacchetto deve essere incluso nel file. La configurazione seguente deve quindi essere rientrata di conseguenza. Ciò significa che non è possibile copiare e incollare direttamente dal file di configurazione.

homeassistant:
packages: !include_dir_merge_named packages/