Guida ai packages in Home Assistant e alla loro creazione

Guida ai packages in Home Assistant e alla loro creazione

di Antonio Mario Longo

08 Gennaio 2021

Home Assistant

Antonio Mario Longo

I packages, tradotti in italiano "pacchetti", nascono per dare un modo alternativo di raggruppare la configurazione di diversi componenti. I metodi di configurazione dei dispositivi richiedono la creazione tramite apposite keyword all'interno del file configuration.yaml

I packages vengono usati soprattutto per creare ordine nel proprio sistema e quindi di conseguenza rendono le configurazioni molto più semplici da leggere e automaticamente gestibili in maniera corretta.

Nei packages quindi potremmo avere la dichiarazione di tutti gli elementi base presenti nel sistema come switch, light binaty_sensor, automation, script e tanto altro.

Configurazione in Home Assistant

Affinchè questi file, contenenti le varie configurazioni, possano essere riconosciuti all'interno del nostro sistema dovrete eseguire i seguenti passaggi:

  • Collegatevi in Home Assistant tramite Ftp o Samba
  • Recatevi nella cartella config e aprite il file configuration.yaml
  • Modificate immettendo sotto la riga contenente la keyword homeassistant: la stringa packages: !include_dir_named packages spostata di due spazi da destra verso sinistra, in modo tale da avere un risultato simile:
    Configuration
  • Dopo aver salvato e chiuso il file, create nella cartella config una sottocartella chiamata packages che includerà tutti i nostri file yaml ordinati con le nostre configurazioni.
  • Riavviate Home Assistant per rendere effettive le modifiche

Creazione di un packages

Dirigetevi nella nuova cartella packages situata nella sottocartella config e iniziate a creare un file yaml denominandolo con un nome a vostra scelta, ex: prova.yaml 

config packages prova.yaml
All'interno del file potrete aggiungere le entità come di solito eseguite nel file configuration.yaml sotto le quali potrete configurarle secondo gli schemi dettati da Home Assistant, ma attenzione le entità vanno dichiarate solo una volta.
errore dichiarazione entità
Come potrete vedere dall'immagine qui sopra riportata, le entità light sono dichiarate due volte alla riga 1 e alla riga 14, e la stessa cosa per le automation anch'esse dichiarate alla riga e alla riga 38. Lo schema corretto invece è quello esposto nell'immagine sottostante: 
packages corretto
Le entità possono essere dei dispositivi dei sensori, dei gruppi ma anche degli input boolean delle scene o degli scripts.

Commenti e Esempio Pratico

Una piccola parte che consiglio, ma che non è obbligatoria, sono i commenti, ovvero nel vostro file yaml potrete inserire qualcosa che indirizzi sia voi stessi che un altro programmatore a compiere eventuali modifiche future. Per eseguire questa operazione basta semplicemente anteporre alle vostre note il simbolo del cancelletto(#).

Esempio di commento
Terminato il tutto consiglio di riavviare il sistema in modo da far riconoscere tutte le entità inserite nel pagkage.

Esempio Finale

In  questa parte potrete vedere un package che riassume molto brevemente la struttura dei packages che crea semplicemente dei timer tramite automazioni alle luci precedentemente dichiarate e esposte tramite una configurazione mqtt con delle semplici automazioni: 

# INTEGRAZIONI LUCI AD HOME ASSISTANT
light:
- platform: mqtt
  name: "Luce Corridoio" # NOME ASSEGNATO ALLA PRIMA LUCE
  state_topic: "stat/Luce_Corridoio/RESULT"
  value_template: "{{ value_json.POWER }}"
  command_topic: "cmnd/Luce_Corridoio/POWER"
  availability_topic: "tele/Luce_Corridoio/LWT"
  qos: 1
  payload_on: "ON"
  payload_off: "OFF"
  payload_available: "Online"
  payload_not_available: "Offline"
  retain: false

- platform: mqtt
  name: "Luce Disimpegno"
  state_topic: "stat/luce_disimpegno/RESULT"
  value_template: "{{ value_json.POWER }}"
  command_topic: "cmnd/luce_disimpegno/POWER"
  availability_topic: "tele/luce_disimpegno/LWT"
  qos: 1
  payload_on: "ON"
  payload_off: "OFF"
  payload_available: "Online"
  payload_not_available: "Offline"
  retain: false
# CREAZIONE AUTOMAZIONI
automation:
- alias: Timer Disimpegno
  initial_state: 'on'
  trigger:
    platform: template
.Potrete scaricare il file per dare un occhiata o per modificarlo a vostro piacere dal seguente link

Se la guida è poco chiara spero di rimuovere i vostri dubbi con il video a seguire

Produrre e aggiornare contenuti su vincenzocaputo.com richiede molto tempo e lavoro. Se il contenuto che hai appena letto è di tuo gradimento e vuoi supportarmi, clicca uno dei link qui sotto per fare una donazione.

Disqus loading...