Automations.yaml aufteilen

Hallo zusammen,
meine erste Frage hier :slight_smile:
Homeassistant habe ich nun seit einigen Monaten laufen und die automations.yaml wächst stetig. Also kam bei mir der Wunsch auf das ganze übersichtlicher zu machen. Beim lesen hier und da wurde vom aufteilen geschrieben. Machte mich nicht glücklich, weil immer die Rede von der configuration.yaml war.
Scheint so, als würde ich es nicht verstehen, nicht intuitiv genug, was auch immer.
Ich habe es mit !include in der configuration.yaml versucht, die auf Dateien mit Automationen verweisen sollten, das ging wohl schief.
Meine Frage also:
kann ich meine Automationen auf Dateien aufteilen und wenn ja wie?

Gruß und Danke!

Das immer die Rede davon ist die configuration.yaml aufzuteilen liegt daran das man in dieser über einen include-Befehl halt auch andere *.yaml-Dateien aufrufen bzw. einbinden kann. Ohne es jetzt genau zu wissen, aber da hier Automation YAML - Home Assistant nichts von Aufteilung und include der automations.yaml selber steht, vermute ich mal das das auch nicht möglich ist.

Was ich auch nicht so ganz verstehe ist das Thema “übersichtlicher machen”. Im WebGUI von HA sind unter Einstellungen → Automatisierungen & Szenen doch alle Automatisierungen übersichtlich zu sehen und zu bearbeiten. Incl. dem jeweiligen YAML-Code. Auch lassen sich da die Automatisierungen auch noch filtern und sortieren.
HA_Autom_Filter

Ich für meinen Teil mache mit der automations.yaml Datein eigentlich gar nichts.

VG Jim

Du hast recht, ich könnte auch über Einstellungen/Automatisierungen gehen.
Im Gegensatz zu dir und vielen anderen vermutlich, schreibe ich den Code direkt in die automations.yaml. Dafür komme ich mit Automatisierung erstellen über das Webinterface nicht gut klar.
Eigentlich will ich wirklich nur wissen, ob aufteilen möglich ist. Glaube aber allmählich auch, das es nicht geht.

Nein geht nicht. Da die automations.yaml quasi schon die Auslagerung ist.

Danke dir, meine Suche hat ein Ende :slight_smile:

Das Du Deine Automatisierungen direkt “zu Fuß” in der automations.yaml erstellst hatte ich mir schon fast gedacht. Wenn Dir das so lieber ist dann ist das halt so. :slightly_smiling_face: Bezüglich nicht gut klar: Das Du das gleiche aber auch über das WebGUI machen kannst weißt Du aber, oder?


D.h. da wird nichts anderes gemacht als die automations.yaml “geöffnen”, bzw. beim speichern darauf zugegriffen und dann wird der YAML-Code den Du da erstellst da reingeschrieben.

VG Jim

Ja, das weiß ich und werde mal gucken, ob ich mich da umgewöhne.

Danke für die Antworten und ein schönes Wochenende!!!

Danke und Dto. :slightly_smiling_face:

Das wird schon. M.M.n. auch noch besser als - sofern es möglich gewesen wäre - auf x verschiedene automations.yaml Dateien zugreifen zu müssen und irgendwie im Hinterkopf haben zu müssen welche Automatisierung jetzt in welcher automations.yaml Datei steht. :wink:

VG Jim

Meine Idee war, Automatisierungen nach z.B. Räumen aufzuteilen. Die Dateien wären nach Räumen benannt und somit leicht aufzufinden.
Aber vielleicht würde es auch der Performance schaden, wenn verschiedene Dateien einzulesen sind.

Ah ok - stimmt so schlecht ist/wäre die Idee gar nicht mal. :slightly_smiling_face: Aber ich denke auch das eine Datei - unter dem Strich gesehen - ggf. vorteilhafter ist. Was das Thema “übersichtlicher” betrifft kannst Du ja bei dem WebGUI dann nach Bereich filtern, sofern ein Bereich dann auch einem Raum entspricht.

VG Jim

Oder die Automatisierungen entsprechend benennen, z. B. so, dass sie mit dem Raumnamen beginnen.

1 „Gefällt mir“

Wie hatten ähnliche Themen hier schon mal.
Oft wird mit einem Präfix gearbeitet:
Light: …
Switch: …
Notification: …

Oder halt auch Räumen.

Hallo zusammen,

ich möchte das Thema gerne noch einmal aufgreifen, insbesondere weil zuletzt erwähnt wurde, dass es hier bereits ein ähnliches Thema, Stichwort „Präfixe“ gab.

Ich wollte meine automations.yaml etwas strukturieren und hatte konkret die Idee, zwei separate Dateien zu nutzen:

  • In der Standarddatei (automations.yaml) sollen alle Automationen liegen, die ich schnell über das Frontend (FE) anlege.

  • In einer zweiten Datei (automations_devmat.yaml) sollen Automationen gespeichert werden, die ich (mit Unterstützung einer KI) direkt in eine YAML-Datei schreibe.

Sobald ich meine configuration.yaml jedoch wie folgt anpasse:

automation:   
  - !include automations.yaml   
  - !include automations_devmat.yaml

kann ich die Automationen nicht mehr über das FE einsehen oder bearbeiten. Wenn ich im Frontend zu den Automationen navigieren möchte, wird mir die Standardansicht angezeigt: „Lege deine erste Automation an“.

Hat jemand eine Idee, was ich falsch mache oder wie ich das Problem lösen kann?

VG, devmat

Warum der ganze Aufstand?
Du kannst doch alles so lassen wie es ist. Kannst über die GUI den Visuellen Editor verwenden und bei Bedarf in die YAML Ansicht wechseln.

Kannst deine KI generierten Yaml Code aus der Zwischenablage sowohl im visuellen Editor als auch in der YAML Ansicht einfügen.

Wenn Du Deine Automationen ordnen möchtest, verwende die Kategorien.

Gruß Osorkon

Bisher habe ich meine Automationen über das Frontend angelegt. Nun möchte ich mich etwas besser mit YAML vertraut machen.

Dabei ist mir aufgefallen, dass die automations.yaml sehr umfangreich ist. Um dort keine unnötigen Fehler zu machen und mich nicht ständig durch den Code wühlen zu müssen, würde ich die von mir manuell geschriebenen Automationen gerne in separate Dateien auslagern.

Wie von Osorkon schon erwähnt, kannst du deinen Yaml auch in die Automation einfügen, da brauchst du kein extra File öffnen und bearbeiten.

Kannst Du doch, ohne die GUI zu verlassen.

Dadurch werden deine so erstellten Automation nur noch ausschließlich über den Yaml bearbeitbar.
Also keine Möglichkeit mehr den visuellen Editor für die Automationen zu nutzen.

Gruß Osorkon

@maxe Ja, aber ich muss aber bei meinen “handgeschriebenen” yaml automationen eine eigene id wählen. Das wird schnell unübersichtlich werden, wenn die von Home Assistant automatisch angelegten Automatisierungen mit ihren IDs und die manuell erstellten Automatisierungen in einer Datei gemischt werden.

Anyway…

Mir ging es mit meiner Frage auch nicht um ein alternatives Vorgehen, sondern um die Frage, ob jemand Erfahrungen mit dem von mir beschriebenen Problem hat. Ich glaube allerdings, dass ich inzwischen selbst eine Lösung gefunden habe:

In der configuration.yaml kann ich einfach eine zusätzliche, beschriftete Automatisierung integrieren, die dann eine separate YAML-Datei einbindet.

automation: !include automations.yaml
automation devmat: !include automations_devmat.yaml

Danke euch, ahoi

devmat

Zwecks Übersichtlichkeit nutzt man die Kategorien, zusätzlich kannst die Automationen einem Bereich zuordnen und auch noch Labels verwenden.

Wie lang die automation.yaml dann zum Schluss wird, ist zumindest mir schnuppe und sollte Dich auch nicht stören. :wink: Je weniger Du in den Untiefen der Konfiguration in den Yaml Dateien wurstelst, desto wenige kannst Du kaputt machen. :wink:

Das mit der ID‘s verstehe ich nicht.
Wenn Du in der GUI Deine Automationen erstellen tust, egal ob über den visuelle Editor oder den Yaml Editor, werden die ID‘s automatisch erstellt.

Wenn Du selbst Hand anlegen tust, und keine unique ID‘s vergeben tust, werden die Automationen erst gar nicht geladen.

Gruß Osorkon

Ich lege die YAML Dateien nicht übers HA-Frontend an, sondern erstelle und bearbeite die Dateien mit VS Code via Samba direkt auf dem Server. Ich finde das Frontend von HA zum schreiben von YAML diesbezüglich nicht so gut.

Wenn ich eine eigene Automation anlege, kann ich dieser eine ID geben:

- id: devmat-0001
  alias: Heizölverbrauch berechnen (bei OilFox Update)
  description: Berechnet den Heizölverbrauch seit der letzten Messung
  triggers:
    - entity_id: sensor.oilfox_filllevelquantity
- id: devmat-0002
  alias: ""
  ...
- id: devmat-0003
  alias: ""
  ...

So kann ich für mich sauber trennen. Automationen, die ich schnell via Klick im Frontend anlege laufen in die automations.yaml

Automationen die ich von Hand schreibe lege ich in der automations_devmat.yaml an.

Das funktioniert jetzt wunderbar. Die Automationen die ich von Hand geschrieben habe, tauchen in der Übersicht zwar auf, aber ich kann diese nicht via HA bearbeiten, da sie eben nicht in der großen automations.yaml sind, was für mich fein ist.