ich habe eine Frage zu den YAML-Dateien bzw. vielleicht hat auch jemand den passenden Link für mich…
Bislang habe ich ziemlich „schmale“ Kenntnisse dazu. Ich kämpfe mich durch diverse Tutorials und habe auch schon ein paar Sachen hinbekommen.
Probleme tauchen bei mir öfters auf, wenn ich die Formatierung nicht korrekt beachte, zum Beispiel so wie auch hier beschrieben: Wie in YAML Einfügen?
Was ich gerne hätte: Eine Übersicht in der wirklich mal genau genannt wird, um wieviel Leerzeichen man jede entsprechende Zeile einrücken muss. Das geht nämlich irgendwie nirgends raus hervor.
Auch so Hinweise wie zwischen Bindestrich und “sensor” gehört (k)ein Leerzeichen. Copy&Paste hat bei mir irgendwie noch nie geklappt und wenn ich anfange Leerzeichen abzuzählen, dann kommt auch immer was anderes raus.
Zudem sieht man ja auch immer die Struktur wie zB ein Template-Sensor auszusehen hat, aber nicht, wie eine template.yaml mit mehreren Sensoren auszusehen hat. Das „template“ steht da nur einmal am Anfang, oder?
Das untergeordnete Element sollte 2 (oder ein Vielfaches von 2) Leerzeichen zum übergeordneten Element eingerückt werden. Elemente der gleichen Ebene stehen untereinander.
Krass. Habe das gerade mal mobil getestet, das ist ja echt wild. Mit Hinweisen was falsch ist, ne korrigierte Version und ne Info was geändert wurde!? Testen muss ich das zuhause dann mal.
Also eigentlich funktioniert dafür fast jeder online YAML prettyfier wenn man sich unsicher über die Einrückungen ist.
Man kopiert den code rein, und er zeigt dann die Zeile an an der etwas nicht stimmt. Weiss man nicht ob es nun zu wenig oder zu viel eingerückt war probiert mans bis der Fehler in der Zeile nicht mehr angezeigt wird und ggf. eine weitere Zeile mit nem Einrückungsfehler angezeigt wird.
@h2sop Wenn ich in HA mal mit den Ergebnissen aus ChatGPT herumspiele, kann ich dann vorher die Yaml duplizieren, die bisherige mit dem Zusatz “OLD” versehen, so dass ich bei Problemen einfach wieder auf die bisherige yaml zurück wechseln kann?
Oder funktioniert sowas in HA nicht?
Ich habe nun mal den Code von ChatGPT verbessern lassen und auch die Sensoren und Templates in einzelne Dateien ausgelagert. Es scheint zu funktionieren, zumindest läuft alles nach einem Neustart. Ob die “Balkonkraftwerksensoren” noch funktionieren werde ich wohl erst morgen feststellen. Abwarten.
Allerdings ist noch eine Frage aufgetaucht: Bislang hatte ich in meiner alten Configuration.yaml folgenden Teil zu Anfang, der auch nie ein Problem machte. Müsste auch von vornherein so ausgesehen haben:
# Loads default set of integrations. Do not remove.
default_config:
# Load frontend themes from the themes folder
frontend:
themes: !include_dir_merge_named themes
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
ChatGPT hatte daran nix zu meckern. Aber wenn ich Prettify YAML - Online YAML Tools nutze. so bekomme ich da die Meldung “Can’t convert an Error occured”:
Error: YAMLException: unknown tag !<!include_dir_merge_named> at line 6, column 42:
... !include_dir_merge_named themes
Wenn ich hierzu bei Google suche, so finde ich ein paar Infos dir mir aber nicht gut weiterhelfen. Das hier noch am ehesten, allerdings schon 4 Jahre alt:
Home Assistant selbst wirft mir keinen Fehler dazu aus.
Jemand ne Idee?
by HarryP:Zusammenführung Doppelpost (bitte “bearbeiten” Funktion nutzen)
Da hast du auch verschiedene Beispiele, wie etwas auszusehen hat und dazu auch wie es falsch wäre.
Vllt bringt es dich ja nen bissel weiter.
Ich finde es schwierig, es von einer KI machen zu lassen, ohne dass man es selbst versteht.
Wenn man sich dann nach erfolgreicher Hilfe den Code ansieht und versucht es zu verstehen ist es natürlich etwas anderes.
Ich vermute aber (nicht auf dich bezogen), dass viele einfach nur den Code rein kopieren und dann ist es egal, wie das funktioniert.
Das hier bedeutet, dass grundsätzlich die Ordnerstrukturen von Themes ausgelesen werden ohne diese extra angeben zu müssen.
# Load frontend themes from the themes folder
frontend:
themes: !include_dir_merge_named themes
Hier werden die 3 .yaml Dateien eingebunden, in denen die Automationen, Scripts und Szenen hinterlegt sind.
Und ja, das ist schon als Standart in der configuration.yaml drin gewesen.
Man kann sich auch noch eine für z.B. Sensoren anlegen in der du die Sensoren auslagern kannst um die configuration.yaml sauber zu halten, müsste man dann da noch mit dazu schreiben.
Das auslagern habe ich schon gemacht, scheint auch zu funktionieren. Tatsächlich erklärt ChatGPT sogar auch noch nach Angabe des Codes, was dieser macht. Also lernen ist damit auch möglich.
Dass die ersten Befehle dazu dienen weitere externe yamls zu laden ist mir auch bekannt. Die Frage ist da eher, wieso der Prettifier da nen Fehler zu dem Befehl “dir_merged_names” Themes auswirft obwohl es sich um einen Standardbefehl in der default congig.yaml handelt?