Konfiguracja HA wraz ze wzrostem liczby urzadzeń i automatyzacji w pewnym momencie staje się mało czytelna, rozwiązaniem tego jest uzupełnienie konfiguracji o tzw. package. Najprościej to opisać jako zbiór osobnych plików konfiguracyjnych HA, które razem tworzą całość. Każdy plik musi spełniać zasady konfiguracji pliku configuration.yaml.
Mój plik konfiguracyjny configuration.yaml po zakończeniu migracji na package (bo to chciałem osiągnąć) zawiera tylko to:
homeassistant:
# In the packages directory you can store any number of packages in a YAML file but not subfolders (use: packages: !include_dir_merge_named packages/)
packages: !include_dir_named packages
# List of folders that can be used as sources for sending files.
allowlist_external_dirs:
- /config
# Configure a default setup of Home Assistant (frontend, api, etc)
default_config:
# Text to speech
tts:
- platform: google_translate
# -- start default config
group: !include groups.yaml
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
# -- stop default config
# https://www.home-assistant.io/integrations/time_date/
sensor:
- platform: time_date
display_options:
- 'date'
- 'time'
- 'date_time'
- 'date_time_utc'
- 'date_time_iso'
- 'time_utc'
python_script:
# https://www.home-assistant.io/integrations/logger/
logger:
default: info
reszta jest w osobnych plikach yaml w katalogu \config\packages\. Jak widać nadal korzystam z plików groups.yaml, automations.yaml.
W ten sposób każdy nowy pomysł w HA realizuje od stworzenia nowego pliku z testową konfiguracją np. printer_test.yaml, dopiero po testach i akceptacji rozwiązania zmieniam nazwę pliku na printer.yaml. W przypadku problemów lub porzucenia tematu usuwam plik testowy, w prosty sposobów usuwam wszystkie testowe zmiany w HA.
Jeden z wielu przykładów takiego podejścia do konfiguracji HA:
Gorąco polecam skorzystanie z takiej konfiguracji Home Assistanta.
Rozwiązanie z użyciem packages jest moim zdaniem nie do przebicia. Szczególnie gdy masz rozbudowaną konfigurację, korzystasz często z templates i tym podobne. Dodając cokolwiek nowego do HA tworzysz po prostu kolejny plik yaml nadając mu charakterystyczną nazwę i w nim zawierasz wszystko co nowego dotyczy. Niezwykle łatwo się w tym wszystkim jest później odnaleźć i w razie potrzeby dokonywać zmian.
Wolę wszystko co dotyczy np. pralki np. input_select, sensor, utility_meter, automation, notify umieścić w jednym pliku pralka.yaml niż “skakać” między kilkoma plikami. Dokonując zmian, robię to w jednym pliku, jak coś nie działa przywracam z kopii tylko jeden plik. Nic i nikt nie przekona mnie do innej konfiguracji HA .