Od bardzo niedawna używam HA, przenosząc swoje “smarty” z Domoticza. Jako początkujący wszystkie konfiguracje wykonywałem w pliku configuration.yaml. Obecnie jest on dla mnie już nieczytelny, mało przejrzysty, skorzystałem z rad @artpc z tego wątku. W zasadzie wszystko udało mi się poprawnie przenieść wykorzystując !include filename.yaml
Mam jednak problem z przeniesieniem liczników utility_meter. Moje próby są daremne i generują błąd przy sprawdzeniu konfiguracji, proszę o wskazanie jak poprawnie dokonać takiej migracji.
@krskrab mam ‘#’ bo nie wiem czy to co robię jest ok, dlatego zakomentowałem.
Liczniki, które pokazujesz pochodzą z pliku configuration.yaml, który nawet wyjaśniałeś tu i ja mam je tak samo (zobacz 1 mój obraz), one działają już dość długo. Chcę je przenieść albo jako utility_meter !include utility_meter.yaml albo np. packages: !include_dir_named packages ale nie potrafię ich przenieść z pliku configuration.yaml do docelowego np. utility_meter.yaml stąd prośba o pomoc. Tego sposobu też próbowałem i lipa błąd konfiguracji.
`Sprawdzanie konfiguracji
Kliknij Sprawdź konfigurację, jeśli wprowadziłeś ostatnio zmiany, aby upewnić się, że jest ona prawidłowa.
Konfiguracja nieprawidłowa!
Invalid config for [utility_meter]: expected a dictionary for dictionary value @ data['utility_meter']['cycle']. Got 'monthly'
expected a dictionary for dictionary value @ data['utility_meter']['gas_monthly_kwh']. Got None
expected a dictionary for dictionary value @ data['utility_meter']['source']. Got 'sensor.gas_m3_na_kwh'. (See /config/configuration.yaml, line 27).`
Edit:
Usunięcie z configuration.yaml wpisu utility_meter !include utility_meter.yaml oraz odkomentowanie packages: !include_dir_named packages
i zawartość pliku utility_meter.yaml w katalogu packages identyczna jak na screeenie i powyżej nie generuje błędu przy sprawdzaniu konfiguracji.
O to chodziło @fronteri , po poprawieniu tych nieszczęsnych dla mnie wcięć sprawdzenie również bez błędu przeszło.
Reasumując: wpis w configuration.yaml taki utility_meter: !include utility_meter.yaml
i zawartość pliku utility_meter.yaml taka:
!include_dir_named packages/
Ładuje wszystko to co się znajduje w katalogach packages łącznie z katalogami
przykłady:
Katalogi
snmp
climate
mobile
itd.
Wszystkie pliki *.yaml zostaną załadowane.
Można też odwoływać do plików nie zawartych w katalogu packages
np. Katalog packages plik automation.yaml
zawartość:
odwołuje się do katalogu entities/binary_sensors i zawartych w nim plikach.
Warto sobie porozdzielać pliki i umieszczać je w katalogach.
Zawartość katalogu packages można przeładować poleceniami z Narzędzia developerskie YAML
Ja też sie pogłubiłem w Twojej konfiguracji a przecież wszystko musi być proste, proponuję Package w Home Assistant i podejście nie per encja tylko per projekt, np. wszystko co dotyczy “gazu” (encje, liczniki, itp.) jest w jednym pliku gas.yaml.
Dziękuję @artpc i @macek , z uwagą czytam Wasze rady i odpowiedzi w wielu wątkach i są one dla mnie cenne. Proszę jeszcze o wyjaśnienie, który wpis jest poprawny:
!include_dir_named packages/
!include_dir_named packages
To jest coś co chciałbym osiągnąć, póki co jestem szczęśliwy, że pozbyłem się mnóstwa linijek z pliku configuration.yaml
Czyli tutaj:
nazwa pliku zamiast utility_meter.yaml może być bardziej dowolna, przyjazna dla mnie np. gaz.yaml a dopiero w zawartości tego pliku deklaruję co to jest czyli tak jak wyżej plus mogę tam wrzucić wszystkie inne “template” i encje dotyczące gazu np. w taki sposób ?