bewährte Vorgehensweisen in der Configuration

Frama

Member
Hallo,
ich bin jetzt seit einigen Tagen dabei mich mit Home Assistant auseinander zu setzen. Da ich bisher keine nennenswerten Vorkentnisse habe versuche ich mir die Antworten für meine Fragen soweit wie möglich im Internet zusammen zu suchen. Da ich keine (deutschen) Bücher über Home Assistant gefunden habe , hoffe ich das ich hier etwas Unterstützung bekommen kann.
Ich möchte gerne weiter einsteigen und versuchen über "learning to doing" weiter zu kommen.
Hierbei ist mir aufgefallen da man schnell den Überblick verlieren kann wenn hier und da ein wenig experimentiert wird und im File Editor Codes reinkopiert und geschrieben wird.
Gibt es ein empfehlenswertes (bewährtes) System um von Anfang an Ordnung in den Dateien zu behalten um nicht den Überblick zu verlieren und auch noch nach ein paar Monaten zu wissen welche Codezeilen für welchen Einsatz gebraucht wurden?

1.) Ist es z.b. in /config/configuration.yaml möglich eine Art Beschriftung ein zu tragen mit der man sich eigene Infos reinschreiben kann?
2.) Ist es möglich einen Zeilenumbruch zu machen damit die Zeilen nicht ewig lange werden?
3.) Gibt es generell eine empfohlene Vorgehensweise um die Configurationen "sauber" zu halten um nicht durch experimentieren und ausprobieren immer mehr Codeleichen zu produzieren.

Ich möchte einnfach versuchen von Anfang an sauber und übersichtlich zu arbeiten so das ich auch noch nach einigen Wochen wieder den Anschluss finde weiter zu machen. Denn ich denke wenn einmal das Grundgerüst steht sind nur noch ab und zu Änderungen und Anpassungen notwendig.
Wäre schön wenn mir der ein oder andere "Erfahrene" mir ein paar Tipps geben kann wie er den Einstieg in Home Assistant geschafft hat.
 

Nival

-
Moderator
Wenn Du mit "Beschriftung" Kommentare im Code meinst, ja, das ist möglich - einfach eine # voranstellen, so beispielsweise:
YAML:
  #Dieser Sensor gibt Datum und Temperatur der Wettervorhersage aus.
  - platform: template
    sensors:
      forecast:
        value_template: >-
            {% for entry in state_attr('weather.home', 'forecast') %}
            {{ entry.datetime }} {{ entry.temperature }}
            {% endfor %}
        friendly_name: Vorhersage

Zeilenumbruch kommt auf den genauen Ort an, beispielsweise bei value_template ist das möglich, indem > zu >- ergänzt wird bzw. gibt es dafür drei verschiedene Varianten:
YAML:
        value_template: "{{ 'Hier nur einzeilig' }}"
YAML:
        value_template: >
            {{ "Hier auch nur einzeilig" }}
YAML:
        value_template: >-
            {{ "Hier" }}
            {{ "kann man mehrzeilig arbeiten" }}

Zwecks "sauber halten" bietet es sich an, die verschiedenen Elemente in einzelne Dateien auszugliedern. Das ist jetzt zwar auch englisch, aber ich denke, für einen kleinen Überblick passt das: https://www.home-assistant.io/docs/configuration/splitting_configuration/
 

alexamend

Active member
Ich persönlich habe mir angewöhnt in der configuration.yaml die einzelnen Gruppen/Integration etc. Immer mit # Benamung zu trennen in etwa so
YAML:
.
.
# Miele Waschmaschine
miele:
   client_id: !secret miele_id
   client_secret: !secret miele_login
   lang: de
.
.

Was zugleich auch zeigt das alle meine Personen bezogen Daten/Informationen/Passwörter nicht in der configuration.yaml ersichtlich sind, diese werden separat in der secrets.yaml gespeichert, dort natürlich nach selbigen Prinzip

INFO: Dies hat den Vorteil das man bei Problemen seine komplette configuration.yaml anderen zur Verfügung stellen kann, andernfalls müsste man sich die Mühe machen und diese Informationen entfernen.

YAML:
.
.
# Miele Waschmaschine
miele:
   client_id: !secret miele_id
   client_secret: !secret miele_login
   lang: de
.
.

Dies lässt sich auf Sensoren, Template, Gruppen usw. ausdehnen, hier muss berücksichtigt werden das diese in der configuration.yaml geladen werfen müssen, dies sollte (meines Erachtens nach) ganz oben in der configuration.yaml stehen, der Übersicht wegen <muss aber nicht>

YAML:
# include
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
sensor: !include sensors.yaml
group: !include groups.yaml
usw...
Diese müssen separat angelegt und befüllt werden.
 
Oben