Smart Home Home Assistant Konfiguration mit YAML

Smart Home – Home Assistant Konfiguration

In diesem Beitrag geht es um die Home Assistant Konfiguration. Dies ist der zweite Teil der Serie, zum Vergleich von openHAB 2 vs. Home Assistant. Primär geht es in diesem Beitrag um einen Vergleich der beiden Programmiersprachen der System. Sowohl openHAB 2 als auch Home Assistant nutzen hier eine eigene Syntax, die sich nicht jedem von vornherein erschließt. Im Beitrag Smart Home openHAB 2 Konfiguration könnt ihr nachlesen wie ihr Items konfiguriert und diese in eine Sitemap einbindet. Items und Sitemaps kennt Home Assistant nicht. Die Konfiguration von Home Assistant erfolgt in der Sprache YAML. YAML hieß ausgeprochen mal Yet Another Markup Language. Es steht aber inzwischen für YAML A’int A Markup Language, da es mehr als eine einfache Markup-Sprache wie z.B. HTML ist. Ob diese nun von Vorteil oder Nachteil ist, werde ich am Ende im Fazit beschreiben.

Home Assistant Konfiguration – Editor

Zur Konfiguration von Home Assistant wird ein einfacher Texteditor verwendet. Ich empfehle jedem Notepad++, da dies wesentlich komfortabler als das normale Notepad ist. Ihr könnt natürlich auch direkt bei nano oder vi auf dem PI editieren. Für mich ist das aber nichts =)

Wenn ihr dem Beitrag Home Assistant Raspberry Pi Installation gefolgt seid, könnt ihr das Verzeichnis des Raspberry Pi als Netzwerklaufwerk einbinden. Ruft hierfür im Explorer folgendes auf.

Nun macht eine Rechtsklick auf den Ordner „HOME ASSISTANT“ und wählt den Eintrag „Netzlaufwerk verbinden…“, so habt ihr das Laufwerk auch später für Konfigurationen im Zugriff. In diesem Verzeichnis liegt die Datei „configuration.yaml“. Diese wird Euch nun sehr sehr lange begleiten. Der Knaller ist, ihr könnt alles in diese eine Datei schreiben. Ich kann dies aber keinem empfehlen, da ihr Euch ansonsten durch tausende Zeile scrollen müsst. Entscheiden müsst ihr es allerdings selbst und ein aufteilen in mehrere Dateien ist später immer noch möglich.

Was ich bei dieser Möglichkeit wirklich gut finde ist, dass ihr so Eure eigene Struktur anlegen könnt und dies nicht vorgeben ist. Mir fallen dazu spontan mehrere alternative Ideen ein.

  • Eine Technologie in eine Datei z.B. KNX.yaml die sowohl die Konfiguration als auch die gesamten Gewerke enthält.
  • Alle Gewerke Technologie übergreifend in einer Datei. Alle Schalter wie KNX, Z-Wave, ZigBee … in eine schalter.yaml
  • Die Gesamte Konfiguration aller Komponenten in einer Datei. KNX, Hue Emulation etc in konfiguration.yaml

Die Dateien werden später in die „configuration.yaml“ per include integriert. Was das ganze wirklich enorm flexibel macht, ist dass integrieren ganzer Verzeichnisse. Das heißt, ihr legt die Dateien x.yaml und y.yaml in ein Unterverzeichnis und bindet das gesamte Verzeichnis ein.

Nichts verstanden? Keine Angst, ich habe das anfangs auch nicht verstanden. Daher mal ein Beispiel. Anfangs sieht die Datei z.B. so aus (schon durch mich reduziert):

Nachdem ich die ersten beiden KNX Geräte integriert habe, sieht die Datei so aus. Wie das ganze bei mehr als 50 KNX Komponenten aussieht, könnt ihr euch denken. Laaaaang =)

Also nehmen wir nun den Teil der KNX Konfiguration und lagern diesen in einen Unterordner „includes“ in eine Datei KNX.yaml aus. Der Inhalt wird sich daraufhin wie folgt ändern.

Dieser ganze Teil wandert in die Datei.

Euch ist die KNX Datei immer noch zu groß? Dann könnt ihr diese auch in mehrere Dateien aufteilen und diese in einen eigenen Unterordner „knx“ legen. Als Beispiel:

  • knxconf.yaml => enthält die KNX Konfiguration
  • knxeg.yaml => enthält alle EG Gewerke oder
  • knxlights.yaml => enthält alle Lichtquellen

Diese Dateien könnt ihr nun alle mittels folgender Zeile in die Konfiguration einbinden.

Doch was ist denn eigentlich mit einer syntaktischen Prüfung wie im Smart Home Designer? Tja, die fehlt leider. Aber es gibt ja fasst alles und daher könnt ihr den YAML Code unter folgender Adresse prüfen.

Ein Tipp am Ende. Solltet ihr mal die Meldung … ‚\t‘ that cannot start any token … im Log haben. YAML mag keine Tabs. Sucht nach diesen und enfernt sie entsprechend. Arbeitet nur mit Leerzeichen!
Werbung

Home Assistant Konfiguration – YAML Syntax

YAML arbeitet mit einer eigenen Syntax und eigenen Elementen. Es lassen sich grob folgende Elemente unterscheiden.

  • Komponenten
    • sind das Hauptelement und bilden eine logische Bündelung von Plattformen
    • sind ähnlich wie Bindings in OH2 und bieten die Anbindung von Technologien (KNX, Z-Wave) oder Services (Nachrichten wie Telegram, Sprache wie Google Home, Alexa)
    • werden auch zur Bündelung von Gewerken wie z.B. Schalter mit den Plattformen (KNX, Z-Wave) verwendet
  • Plattformen
    • sind quasi eine Unterkategorie von den Komponenten.
    • Die Komponente für Nachrichten kann so für die unterschiedlichsten Plattformen genutzt werden (Telegram, Slack, Twitter und und und)
    • Die Komponente für Schalter wird anhand der Plattformen KNX, Z-Wave usw. unterteilt.

Hmm, auch wieder nicht ganz einfach. Daher auch hierfür mal eine einfaches Beispiel anhand von Hue und KNX. Wir möchten sowohl ein KNX als auch ein Z-Wave Schalter integrieren.

Hierfür definieren wir zuerst den Zugriff auf unsere Schnittstellen Z-Wave über den Pfad zum Z-Wave Modul und KNX über den Zugriff auf die IP Schnittstelle.

Weiterhin müssen wir nun die Schalter-Komponente integrieren. Dies machen wir wie folgt.

Warum ist bei Z-Wave nichts? Die Komponenten werden angeblich automatisch erkannt und eine Konfiguration entfällt. Dies solle ja auch einer der großen Vorteile gegenüber openHAB 2 sein. Ich bin gespannt, ob es wirklich so ist.

Home Assistant Konfiguration – openHAB 2 vs Home Assistant

Die Home Assistant Konfiguration bewerte ich im Verlgeich zu openHAB 2 wie folgt.

Vergleich openHAB 2 Home Assistant Begründung
Struktur der Konfiguration 2 1 In beide Konfigurationen muss man sich ohne Frage einarbeiten und verstehen wie die Struktur aufgebaut ist. Ich gebe Home Assistant eine 1, da ich den freien Ansatz sehr gut finde. openHAB 2 gibt vieles vor, was sicher nicht verkehrt ist. Aber hier kann sich ein Anfänger auch mal verlaufen, da viele Bindings ihre eigene Konfiguration haben.
Syntaxprüfung 1 3 Ich finde den Smart Home Designer einen wirklich großen Vorteil gegenüber der reinen Kodierung in Notepad++ oder anderen Werkzeugen.

Wie geht es weiter? Ich werde wie hier bereits angedeutet meine KNX Installation integrieren. Hier plane ich insbesondere einen Vergleich der Integration verschiedener Gewerke. Weiterhin werde ich – wenn ich es hinbekomme – ein Video zu den Reaktionszeiten drehen.

Werbung
1 Comment
  1. […] Die Konfiguration und Einbindung Eurer KNX Schnittstelle könnt ihr wie folgt vornehmen. Öffnet die Datei configuration.yaml in Notepad++ und ergänzt folgende Einträge. Ihr wisst nicht was YAML ist, dann lest den Beitrag Smart Home Home Assistant Konfiguration mit YAML. […]

Hinterlasse einen Kommentar

One Smart Home - Ein Smart Home Blog

Music

NUR FÜR KURZE ZEIT!

3 Monate

für nur 0,99 €

 

Jederzeit

kündbar!

WERBUNG

AMAZON

Weitere Details auf der Aktionsseite