"Philosophische" Frage - Logik verteilt oder zentral

Ich frage mich, welcher Ansatz für die Automation grundsätzlich sinnvoller ist:

  • ich habe viele kleine Automatomationen, die sich um das Anschalten, Ausschalten, … jeweils einzeln kümmern. Damit habe ich viele kleine Dinge, die jeweils sehr übersichtlich sind, davon aber recht viele. (Morgens Rollo hoch, Abends Rollo runter, Wenn die Sonne drauf scheint runter, …)
  • oder ich habe größere Automationen, die viele unterschiedliche Trigger haben und dann eine sehr verzweigte Logik darunter, die auf die unterschiedlichen Situationen reagieren. Eine Automation somit sehr übersichtlich in den HA Listen, aber die Automation hat es dann in sich.

Was ist eure Erfahrung / Meinung?

Für meine Rollos habe ich ein komplexen Blueprint erstellt. Das liess sich dann besser auf die vielen Fenster übertragen als mehrere Automationen pro Fenster. Das Programmieren der Logik war aber nicht ohne. …zumal man bei den Templates ja keinen visuellen Editor hat.

Das muss wohl jeder für sich selber entscheiden. :man_shrugging:

Ich wähle “groß oder klein” je nach Aufgabenstellung, (logischer) Zugehörigkeit und Umfang.

Meine Heizungssteuerung ist eine große Automation. Für die Unterschrankleuchten in der Küche habe ich 2 Automationen - je eine für den virtuellen und den physischen Taster (genau gesagt steuert die für den physischen Schalter die für den virtuellen).

Ich bin ein Fan von “großen” Automationen - und Helfern.

Z.B.: Rollo

  • Helfer für Tag/Nacht
  • Helfer für Beschattung
  • Eine Automation mit diversen Triggern
  • “Auswahl” als Aktion

Man kann die Helfer zentral setzen und hat die gesamte Logik in EINER Automation.

Ich mache für jedes Bedinbare Gerät ein Automation, heißt alle Tasten und Tastendruckkombinationen(1fach / 2fach / lang etc. für Taste 1, 2, ..) von einem Taster sind in einer Automation.

Bei meinen Licht Automation habe ich immer An und Aus in der gleichen Automation.

Ja, das war bei meinem ersten ernsten Projekt auch der Ansatz:

  • Helfer für Wachzeit
  • Helfer für Berechnung “Sonne auf Fenster”
  • Boolean Helfer für “Wärmemanagement” (aktive Heizung, Wärmerückgewinnung, …)
  • Helfer für “Fenster ist auf” kommt dann noch

Ich glaube, hier hätte ich die Logik gar nicht mit mehr als einer Automation abbilden können.

Das ist ja auch eher der “große” Ansatz: mehrere Trigger zeigen auf die gleiche Logik.

Und DAS ist genau der Punkt, der mich interessiert! Welche Kriterien führen zu welcher Entscheidung?

Ich stehe z.B. gerade vor der Entscheidung, wie ich meine Lichtschaltungen organisiere. Neben dem normalen, getasteten An und Aus wollen ja auch ereignisgesteuerte Lichter (letzter geht) und zeitgestuerte Nachtlichter und … koordiniert werden.

Ich war anfangs ein Fan von groß aber mittlerweile kleiner bis klein und Kommentare. Kriterium ist Wartbarkeit. Wenn ich nach 1 Jahr etwas ändern wollte, brauchte ich gefühlt eine Ewigkeit, wieder alles zu verstehen. Und Verwendung einer Namenskonvention würde ich auch empfehlen, damit ich im Namen bereits ein Wo und Was erkennen/erahnen kann.

Ich bin eigentlich auch ein Fan von großen Automationen, also z. B. pro Taster eine. Aber manchmal mache ich, aus Gründen der Wartbarkeit, kleine.

Das entscheide ich meist, wenn ich überlege was alles passieren soll und wann.

Hah! Dazu hätte ich dann einen anderen Post aufgemacht!

Wie machst Du das? Für die Entitäten habe ich mir etwas überlegt, bei den Automationen, Helpern, Szenen, … noch nicht. Hast Du Tipps?

Ja, Namenskonventionen könnte ein eigenes Thema sein. Ich habe in der Firma erlebt, daß darüber leidenschaftlich gestritten werden kann.

Wichtig sind aus meiner Sicht für HA:

  • Es muß für einen persönlich passen
  • Es muß einen Zweck erfüllen
  • Einmal sich entschieden immer durchziehen egal was kommt (es sei denn man macht sich die Arbeit und ändert nochmal alles)

Hier meine Idee und Erfahrungen

  • Beispiel: om_aut_oben_stehlampe_szenen_govee
  • Erster Gedanke: Es geht um die Stehlampe oben und die Szenen Steuerung

Ich habe meine Automationen alle in Node-Red laufen.

Wenn man dem Motto ‘Größtmöglicher Nutzen bei kleinstmöglichem Aufwand’ treu bleibt, bleiben selbst große Flows (z.B. Heizung) durchaus übersichtlich und nachvollziehbar.

Das ist dann aber eher für Entitäten, oder?

Die habe ich wirklich sehr minimalistisch benannt: “Decke” statt “Licht Decke Wohnzimmer”, da in den anderen Metadaten Licht und Wohnzimmer sowieso noch einmal auftaucht. Und ich kann in den Dashboards direkt sehen, was Sache ist, weil ich ich 5x hintereinander idenisch “Lich ….” sehe und dann gar nicht weiss, welches das genau ist.

So, und jetzt habe ich wohl die Antwort für mich gefunden: Trigger IDs!

So werden sie definiert:

So werden sie dann genutzt:

Was finde ich so toll daran?
Sie vereinen das beste aus beiden Welten:

  • Keine Verkrautung
    Keine Verkrautung durch viele einzelne Skripte zum Ein-, Aus- und Umschalten, zum Prüfen und doich wieder zurückschalten und sonstwas. Es gitb eine Automation für die komplette Logik einer Entität.

  • Deutlich übersichtlicher
    Meine bisherige Logik hat einen komplexen Baum aufgespannt, in dem jeweils erstmal auf die unterschiedlichen Trigger geprüft wurde. Abhängig von der Trigger ID wird jetzt immer ein anderer Teil der Automation angesprochen. Es bleibt trotzdem ein einer Automation übersichtlich.

  • Querwirkungen können berücksichtigt werden
    Weil alles in einer Automation steckt, können die Querwirkungen viel leichter geprüft werden.

Ich bin einfach ein glücklicher Home Assistant User. :victory_hand:

2 „Gefällt mir“

Statt alles in einen Namen zu packen kann man auch mit Kategorien und Labels arbeiten. Simon hatte dazu auch mal ein Video gemacht:

5 TIPPS zur Home Assistant ORGANISATION - Kategorien & Labels

Ich weiß, nur als ich mit HA anfing, gab es das noch nicht.