Wenn das eigene Smarthome mit Home Assistant wรคchst, sollte man mรถglichst frรผh damit anfangen, die configuration.yaml in logische Einzeldateien aufzuteilen. Konkret meine ich: Schreibt nicht alles in die configuration.yaml hinein, da diese sonst elend lang und somit unรผbersichtlich wird! ๐
In Home Assistant gibt es die Mรถglichkeit aus einer YAML-Datei eine andere YAML-Datei aufzurufen, diese andere Datei also einzubinden. Technisch verhรคlt sich diese eingebundene YAML-Datei dann so, als wรคre sie gar keine eigene YAML-Datei, sondern direkter Bestandteil der configuration.yaml
Ein Beispiel hierfรผr findest du „ab Werk“ bereits in der automations.yaml. Diese Datei wird aus der configuration.yaml aufgerufen und dient einzig dem Zweck, die Automatisierungen nicht in die configuration.yaml schreiben zu mรผssen.
Nach diesem Beispiel kann und sollte man die eigene configuration.yaml mรถglichst schlank und รผbersichtlich halten und logische Trennungen in jeweils neue YAML-Dateien vornehmen.
Was meine ich damit?
Du magst Home Assistant? Dann abonniere kostenlos meine Beitrรคge mit Tipps, Tricks und Anleitungen rund um Home Assistant:
Follow Home Assistant
Garantiert kein Spam, keine Werbung und immer mit Abmelde-Link, solltest du es dir anders รผberlegen!
Ich habe zum Beispiel fรผr jede in YAML konfigurierte Integration eine separate YAML-Datei, welche dann in der Regel nicht viel mehr auฮฒer die relevanten Zugangsdaten fรผr diese Integration und ggf. ein paar Konfigurations-Einstellungen beinhaltet.
Ebenso habe ich fรผr eigene Sensoren eigene YAML-Dateien, so dass jede „Einheit“ fรผr sich getrennt gespeichert und gepflegt wird.
Ja, als Ergebnis werden die YAML-Dateien natรผrlich deutlich mehr. Aber fรผr die Fehlersuche ist dies von enormen Vorteil! Was ich damit meine, mรถchte ich an folgendem Beispiel erklรคren:
Angenommen ich fรผge eine neue Integration hinzu, welche nicht รผber die UI eingebunden wird, sondern komplett in YAML konfiguriert werden muss. Dann erstelle ich hierfรผr eine Datei MeineIntegration.yaml mit den notwendigen Zugangsdaten und binde diese in der configuration.yaml ein. Ebenso erstelle ich zu dieser neuen Integration auch noch neue Sensoren.
Diese Sensoren konfiguriere ich ebenfalls in einer neuen YAML-Datei und binde diese ein.
Habe ich nun mit der neuen Integration Probleme, muss ich mir nur die beiden hierfรผr relevanten Dateien anschauen und den Fehler finden. Ich laufe nicht mehr Gefahr, mich in einer elend langen configuration.yaml zu verlieren und den Wald vor lauter Bรคumen nicht zu sehen.
Es gibt mehrere Mรถglichkeiten Dateien in die configuration.yaml einzubinden. Home Assistant bietet hierfรผr folgende Funktionen:
- !include_dir_list Fรผgt den Inhalt eines Verzeichnisses als Liste ein, bei dem jede Datei ein Listen-Eintrag ist. Die Listenreihenfolge ist alphabetisch nach den Dateinamen innerhalb des Verzeichnisses. Jede Datei darf hierbei nur einen Eintrag beinhalten!
- !include_dir_named Fรผgt den Inhalt eines Verzeichnisses als „dictionary“, also assoziatives Feld, ein bei welchem der Dateiname dem Inhalt der Datei zugewiesen ist.
- !include_dir_merge_list Fรผgt den Inhalt eines Verzeichnisses (welche jeweils eine Liste beinhalten sollten) als eine groรe Liste ein.
- !include_dir_merge_named Fรผgt den Inhalt eines Verzeichnisses als ein groรes „dictionary“ ein!
- !include fรผgt eine einzelne, explizit benannte YAML-Datei ein.
Hier ein konkretes Beispiel, welches es hoffentlich etwas verstรคndlicher macht:
script: !include_dir_merge_named scripts
Mit dieser Zeile Code werden automatisch alle im Ordner „scripts“ abgelegten Dateien, welche bei mir aus logisch getrennten Scripten bestehen, geladen. Ich muss somit beim Hinzufรผgen eines neuen Scriptes per YAML dieses lediglich als neue Datei im Ordner „scripts“ speichern, und schon macht Home Assistant alles weitere von alleine!
Produktempfehlungen
Hey. Ich steige gerade in das Thema Home Assistant neu ein. Eine kurze Frage. Werden ab der aktuellen Version keinen configuration.yaml und co mehr angelegt? Hab schon DeConz und ein paar andere Sachen eingerichtet. Meine yaml Dateien sind aber alle leer … ist das richtig und normal?
Hi!
Nein, leere yaml-Dateien sind sehr sicher nicht richtig und/oder normal! Magst du einen Screenshot teilen?
VG
Olli