A utilização de ficheiros package no Home Assistant permite condensar num só ficheiro vários componentes de configuração diferentes, tais como sensor, switch, light, groups, automation, etc.
Para que o HA aceite estes ficheiros, deve ser incluído no configuration.yaml o seguinte:
homeassistant:
packages: !include_dir_named packages/
Com a configuração acima, o HA vai procurar na pasta packages todos os ficheiros com a extensão .yaml. Isto permite-nos ter vários ficheiros dentro da pasta packages, cada um para uma finalidade diferente. Por exemplo electricidade.yaml para os contadores de electricidade, portas_janelas.yaml para a detecção de portas e janelas ou quarto1.yaml para todos os equipamentos de um quarto.
Os componentes aceites no ficheiro packages são os seguintes:
scriptshell_commandautomationinput_textinput_selectinput_booleaninput_numberinput_datetimerest_commandsensorbinary_sensorswitchlightalertgroupcustomizetimer
EDIT 2020-08-19: Com as alterações que o HA tem sofrido ao longo do tempo existem agora mais componentes aceites nos packages. A saber:
Todas as plataformas baseadas em integrações podem ser usadas,
Componentes cujas entidades sejam identificadas por uma
keyque represente umaentitie_id({key: config}) têm de terkeysúnicas em cada package e na configuração principal. Por exemplo, se utilizarem o código abaixo num package, o nomemy_inputnão poderá ser usado numinput_boolean:de outro package.
input_boolean:
my_input:
A estrutura do ficheiro deverá seguir as normas gerais do HA e YAML, com os itens ordenados e encadeados com dois espaços. Existem vários tipos de include que obrigam a diferentes formatações dos ficheiros e este exemplo corresponde ao tipo !include_dir_named. Para outras formatações consultem o link no final desta publicação.
script:
radio_play_zone:
alias: Play Zone
...
automation:
- alias: 'Ajustar o volume do Rádio'
trigger:
...
input_select:
estacoes_de_radio:
name: 'Selecciona a Estação de Radio:'
options:
...
input_number:
volume_radio:
name: Volume
icon: mdi:volume-high
...
sensor:
- platform: template
sensors:
kodi_servidor:
...
group:
radio:
name: Rádio
control: hidden
...
homeassistant:
customize:
script.radio_play_zone:
friendly_name: Tocar na Zona Seleccionada
icon: mdi:play
...
Sabe mais em: