ioBroker Aufzählungen einfach erklärt
Wer in einem großen und umfassenden Smart Home lebt, kennt es. Man hat unzählige Geräte und muss irgendwie den Überblick behalten und auf Veränderungen flexibel reagieren können. In meinem Smart Home helfen mir die ioBroker Aufzählungen dabei. Denn sie bieten nicht nur ein Konstrukt der Organisation, sondern darüber hinaus auch eine gute Möglichkeit, um Funktionen und Räume abzubilden.
In diesem Artikel schauen wir uns die Verwendung der ioBroker Aufzählungen etwas genauer an. Dazu möchte ich dir auch gerne erklären, wofür ich sie nutze und wie auch dir das helfen kann. Denn ich persönlich halte die Aufzählungen für ein mächtiges Werkzeug, das von vielen Nutzern völlig unterschätzt wird.
Lieber baut man (so wie ich am Anfang auch) große Regeln, die bis ins Detail durchdacht sind. Der große Nachteil besteht da jedoch darin, dass Regeln und Skripte viel zu starr sind, um sich an veränderte Gegebenheiten anzupassen. Zum Beispiel wenn du eine smarte Lampe tauschst. Oder einen neuen Thermostat für deine Heizung einbaust. Immer ist das mit einer Änderung an der Regel verbunden. Und genau das will man in einem einfachen Smart Home ja nicht unbedingt haben.
Übrigens sind Aufzählungen auch so ein Konstrukt, das vielen anderen Lösungen im Smart Home fehlt. Das macht diese Systeme weniger flexibel und sorgt dafür, dass es sich insgesamt alles etwas starrer anfühlt. Und auch ist.
Was sind ioBroker Aufzählungen?
Das Konstrukt von Aufzählungen in ioBroker beschreibt die sinnvolle Gruppierung von Geräten nach Funktion oder Raum. Zum Beispiel lassen sich so die Räume des Hauses abbilden oder Funktionen wie zum Beispiel „Kino“ anlegen, ähnlich wie in meinem Kino. Es lassen sich auch Untergruppen bilden, um das ganze Konstrukt noch flexibler zu machen.
Zu jeder Funktion oder jedem Raum wird dann ein Skript erstellt, welches die schlussendliche Automation darstellt. Welche Geräte sich dabei in der Funktion oder im Raum befinden, interessiert das Skript erstmal nicht. Wichtig ist nur, dass sie über die entsprechenden Datenpunkte verfügen, die angesteuert werden sollen.
Im Klartext heißt das, dass du nun Geräte nach Lust und Laune austauschen kannst, sofern die neuen Geräte noch über die gleichen Datenpunkte verfügen. Ob nun eine Lampe von Philips oder einem anderen Hersteller verbaut ist, interessiert das Skript in keinster Weise.
Aus genau diesem Grund eignen sich Aufzählungen in ioBroker besonders gut, um Geräte von der Logik zu entkoppeln. Anstatt also jedes Gerät mit seinem individuellen Namen in eine Regel zu packen, nutzt man zur Abstraktion die Aufzählungen. Dann lassen sich die Geräte auch im Nachgang austauschen, ohne dass hierfür die Regel angefasst werden muss.
Praktisches Beispiel für Aufzählungen
Nun klingt das Konstrukt für den einen oder anderen vielleicht etwas zu abstrakt. Daher will ich es etwas konkretisieren, um dir ein besseres Verständnis zu geben. Dazu blicken wir auf die Räume. Du kannst die nachfolgende Logik jedoch auch auf den Bereich Funktionen übertragen.
Für unser Szenario nehmen wir ein Einfamilienhaus mit zwei Etagen. In jeder Etage befinden sich mehrere Räume. Die Küche ist zusammen mit dem Essbereich ein großer Raum.
In den Räumen lassen sich nun die Stockwerke als eigener Raum anlegen. Innerhalb dieser Stockwerke können Untergruppen (bzw. Unterkategorien) mit den jeweiligen Räumen angelegt werden. Für das Erdgeschoss gibt es einen Raum, der Essbereich heißt. Unterhalb von diesem Raum befindet sich dann wieder ein Raum Küche und ein Raum Esszimmer.
Will man nun mit einem Skript den Essbereich steuern, greift das auch in die Unterkategorien ein. Denn hier werden alle Geräte zugewiesen, die im jeweiligen Raum zu finden sind. Im Raum Küche hingegen werden nur die Geräte zugeordnet, welche sich auch wirklich im Bereich der Küche befinden. In der Praxis entsteht so eine hierarchische Struktur deines Hauses, die du ganz gezielt in deinen Automationen verwenden kannst.
Darüber hinaus sorgen die Aufzählungen in ioBroker damit auch für Klarheit. Denn dir ist auf den ersten Blick sofort bewusst, wo sich welches Gerät befindet. Einziger Nachteil: Du musst die Geräte auch in deinem Smart Home umziehen, wenn sie einen neuen physischen Standort bekommen. Aber auch hier bleiben die Skripte dann davon unberührt. Du kannst also die Lampe im Schlafzimmer gegen die in der Küche austauschen und deinem Skript wird das nicht einmal auffallen.
So verwende ich die ioBroker Aufzählungen
Zu Beginn meiner ioBroker-Zeit, habe ich immer sehr starre Skripte erstellt. Ein klassisches Beispiel hierfür war, dass immer bestimmte Lampen eingeschaltet werden sollen, wenn ich ein Fenster öffne. So konnte ich gerade im Winter das Fenster nicht vergessen, da ich vom Smart Home visuell darauf hingewiesen wurde.
Mit der Zeit habe ich dann aber einzelne Lampen ausgetauscht. Das hat dazu geführt, dass ich jedes Mal die Skripte anfassen und anpassen musste. Ein sehr lästiges Geschäft, zumal die Skripte mit jeder zusätzlichen Lampe immer größer und länger wurde. Ein ganz schönes Chaos.
Irgendwann habe ich mir dann eine Aufzählung angelegt und sie entsprechend benannt. Das Skript habe ich daraufhin umgestellt und ihm gesagt, es soll für jede der enthaltenen Lampen die gleiche Logik ausführen. Das Skript konnte ich damit um mindestens 60 % kürzen und übersichtlicher gestalten. Ein Austausch einer Lampe war danach auch kein Problem mehr für mich. Und wenn ich mal eine Lampe nicht mehr als Hinweislicht nutzen möchte, entferne ich sie einfach aus der jeweiligen Aufzählung und sie wird im Skript nicht mehr beachtet.
Die Aufzählungen helfen mir außerdem bei den Batteriemeldungen. So kann ich mir in einem Skript den Namen des Raums ziehen und so in einem Text über Telegram sehr gezielt ausgeben, welcher Aktor/Sensor in welchem Raum eine neue Batterie braucht. Zieht der Sensor oder Aktor mal um, wird das bei der nächsten Benachrichtigung von meinem Smart Home beachtet.
ioBroker Aufzählungen erstellen
Doch kommen wir nun zur konkreten Umsetzung. Denn all die Theorie klingt super, in der Praxis muss man es jedoch auch anwenden können. Als erstes navigierst du in deinem ioBroker auf den Menüpunkt Aufzählungen (engl.: Enumerations) links im Menü.
Dort befinden sich bei mir die Kategorien Funktionen, Räume und Favorites. Über das Plus ganz links lassen sich weitere Kategorien hinzufügen. Für den Anfang sollte es jedoch mit den Kategorien getan sein.
In der Übersicht findest dann entweder schon vorgefertigte Gruppen oder kannst neue erstellen. Das passiert ganz einfach über das Plus-Zeichen. Das findest du rechts neben der Filterfunktion. Sobald du nun eine Gruppe erstellt hast, kannst du von der rechten Seite Datenpunkte hinzufügen. Dabei ist es wichtig zu beachten, was du genau machen möchtest. Denn gerade bei Lampen gibt es für Helligkeit und Farbe in der Regel verschiedene Datenpunkte. Du kannst in diesem Fall auch mehrere Datenpunkte für deine Geräte zur Gruppe hinzufügen. Ich habe mich dazu entschieden, den kompletten Ordner mit allen Datenpunkten in die jeweilige Gruppe hinzuzufügen. So stehen mir im Skript auch später alle Funktionen zur Verfügung, die ich möglicherweise brauchen werde.
Bei jeder Gruppe hast du unten rechts auch noch die Möglichkeit, Untergruppen hinzuzufügen. In diese Untergruppen kannst du dann auch wieder Geräte und Datenpunkte hinzufügen, die für die jeweilige Untergruppe von Bedeutung sind.
Aufzählungen in Skripten verwenden
Natürlich will ich dir nun auch noch zeigen, wie du Aufzählungen in ioBroker auch in deinen Skripten verwenden kannst. Dazu habe ich mir das Beispiel für die Hinweislichter herausgesucht. Es ist eine Aufzählung analog zur Gruppe Alarmlichter, die du auf dem vorherigen Screenshot gesehen hast. Dort siehst du auch, dass neben dem Namen noch die interne Bezeichnung enum.functions.Sicherheit.alarmlichter zu finden ist. Für die Skripte brauchst du dann die Bezeichnung Sicherheit.alarmlichter.
In diesem Beispiel wird der Zustand des Datenpunkts ausgelesen, welcher sich in der jeweiligen Gruppe befindet. Das passiert mit einer Schleife, die in diesem Fall grün hervorgehoben wurde. Da ich in dieser Gruppe auch nur die Zustände hinterlegt habe, ist das ziemlich simpel. Zum Manipulieren der Zustände verwende ich ein eigenes kleines JavaScript, das ich in das Skript oben eingefügt habe und mit dem ich dann den Zustand ändern kann.
Hierzu habe ich die JavaScript-Funktion schalten über den Block angelegt. Diese Funktion nimmt die Parameter zustand und device entgegen. Das Skript selbst sieht wie folgt aus:
setState(device, zustand);
Mit einem Rechtsklick auf den lila Block wähle ich dann Erzeuge „Aufruf schalten“, um das Gerät innerhalb der Schleife ansteuern zu können. Von Haus aus ist mir leider keine Funktion bekannt, die das in der Form so könnte.
Weitere Filterungsmöglichkeiten
Selbstverständlich gibt es zum Filtern der Aufzählungen noch weitere Funktionen in deinem ioBroker. Du kannst dazu den Selektor der jeweiligen Funktion anpassen. Ausgangspunkt ist immer der Block IDs vom Selektor $(). Die dortige Eingabe bestimmt dann, welche Geräte zurück kommen.
Beispiel 1: Alle Geräte mit dem Status on (z. B. Lampen)
state[id=*on](functions=lights)
Beispiel 2: Alle Geräte aus einer Liste
state[id=*](functions=lights)
Beispiel 3: Alle Lichter aus einem Raum
state[id=*on](rooms=roomKitchen)
Eine wirklich großartige Übersicht für solche Selektoren findest du bei machs-smart.de.
Aufzählungen sind tricky
Natürlich muss man nun auch dazu sagen, dass ioBroker Aufzählungen auf den ersten Blick eine tolle Möglichkeit für Gruppierungen sind. Doch in der Praxis machen vor allem die Selektoren manchmal so ihre Probleme. Das liegt vor allem daran, dass man das Konstrukt dahinter verstehen muss.
Mein Tipp ist an dieser Stelle, dass du es ausprobieren musst. Baue dir ein Testskript und spiele dort mit den verschiedenen Selektoren, um ein gutes Gefühl für die Handhabung zu bekommen. Denn sie sind ein großartiges Mittel zur Verwendung im Smart Home, brauchen aber Übung.
Ich selbst habe unzählige Stunden damit verbracht, die richtige Struktur und die perfekten Selektoren für mein Vorhaben zu erstellen. Denn auch wenn es sehr simpel aussieht, wird es in komplexeren Skripten schnell zur Herausforderung. Wichtig ist auf jeden Fall, dass du immer den richtigen Raum oder die richtige Funktion betrachtest. Denn sonst erhältst du in jedem Fall immer die falschen Geräte.
An dieser Stelle ist also jede Menge Durchhaltevermögen und Zeit gefragt. Die musst du leider investieren.
Sobald du dir jedoch die richtige Struktur zusammengestellt hast, lässt sich dein Smart Home wesentlich flexibler nutzen und du wirst sehen, dass auch deine Skripte an Umfang verlieren. Dadurch werden sie wiederum leichter wartbar.
Nachteile von Aufzählungen
Wo Licht ist, findet man auch Schatten. Das gilt nicht nur als Weisheit im alltäglichen Leben, sondern auch im Smart Home. Insbesondere bei den ioBroker Aufzählungen. Denn während eigene Skripte in der Regel sehr flexibel auf die jeweiligen Geräte reagieren (können), ist das bei Aufzählungen etwas anders.
Du trainierst dein Smart Home auf die Ausführung von gewissen Routinen. Basierend auf den Geräten oder Räumen, die du bestimmst. Das ist für die Komplexität und das Handling sehr angenehm, jedoch schaffst du auch eine Vereinheitlichung.
Konkret meine ich damit, dass du Geräte innerhalb einer Funktion oder eines Raums nicht mehr unterschiedlich behandelst. Jedes Licht ist ein Licht und dabei ist es völlig egal, ob es die Stehlampe oder eine Glühbirne ist. Willst du also die Stehlampe auf eine bestimmte andere Farbe setzen, musst du in deinem Skript wieder unterscheiden. Oder mehrere Aufzählungen erstellen. Andernfalls werden alle Geräte gleichwertig behandelt und eingestellt.
Die Frage ist also beim Einsatz von Aufzählungen ganz konkret, für welche Bereiche du diese Funktion nutzt. Sie mag auf den ersten Blick sinnvoll erscheinen, kann jedoch auch echt frustrierend sein. Deshalb solltest du im Voraus planen und erst dann zur Umsetzung fortschreiten, wenn du auch einen konkreten Plan hast.
Mein Fazit
ioBroker Aufzählungen sind mein Mittel der Wahl, wenn es um die flexible Zuweisung von Geräten zu einem bestimmten Skript geht. Ich kann meine Geräte gruppieren wie ich möchte und muss nicht jedes Mal meine Skripte anpassen.
Gleichzeitig klaue ich mir auch ein wenig Flexibilität, wenn ich nicht gut durchdachte Strukturen erstelle. Daher habe ich es mir zum Grundsatz gemacht, vorher eine Struktur zu planen, die ich dann umsetzen kann. Diesen Tipp gebe ich auch dir.
Es wird allerdings auch klar, wie mächtig Aufzählungen eigentlich sein können. Und vor allem zeigt es mir, dass genau dieses Konstrukt anderen Smart Home Systemen fehlt. Viele vorgefertigte Systeme haben nicht eine derartige Flexibilität eingebaut und können immer nur mit festen Geräten arbeiten. Gerade beim Austausch von Komponenten macht es dann eine Anpassung an mindestens einem Skript notwendig. Das lässt sich über diesen Weg umgehen.
In meinem eigenen Smart Home setze ich Aufzählungen noch sparsam ein. Weil ich auf der einen Seite zwar Flexibilität möchte, auf der anderen Seite aber auch sehr individuelle Automatisierungen erstelle. Es ist also immer eine Sache der Abwägung und der Frage, ob nun Flexibilität oder Individualität im Vordergrund steht.
Dennoch möchte ich die Aufzählungen nicht mehr missen. Ein solch starkes Werkzeug sollte in jedem Smart Home vorhanden sein.
0 Kommentare