ioBroker Alias – Was und wozu?
Kennst du den Begriff Alias? Vermutlich schon, denn wir sind immer mal wieder davon umgeben. Trotzdem wissen manche Menschen nicht, was ein Alias überhaupt ist und geschweige denn, wozu er in der IT benutzt wird. Das Thema ioBroker Alias ist daher kaum verwunderlicher Weise ein Thema, was den einen oder anderen abschreckt oder das er bewusst ausklammert.
Dabei ist gerade in ioBroker die Funktion des Alias sehr hilfreich und in vielen Fällen auch ein wahrer Segen. Wer gerne Skripte austauscht wird das vielleicht auch schon wissen. Und für all diejenigen, die das Thema ioBroker Alias bisher ausgeklammert haben, kommt in diesem Artikel endlich eine tolle Erläuterung zur Funktionsweise und dem sinnvollen Einsatz.
Was ist ein Alias?
Als Alias bezeichnet man in gewisser Weise einen Alternativnamen. Ein Pseudonym, um genauer zu sein. Zum Beispiel ist dein Spitzname ein Alias zu deinem richtigen Namen. Und wir alle haben oder hatten doch schon einmal einen Spitznamen.
In der IT – und gerade bei ioBroker – ist das sehr ähnlich. Man kann einen Alias für einen Datenpunkt erstellen und in einem Skript oder in der Visualisierung wird dann statt dem richtigen Namen einfach der Alias benutzt. Das bietet den Vorteil, dass deinem Skript oder deiner Visualisierung völlig egal ist, was sich hinter dem Alias verbirgt. Tauschst du den Datenpunkt dahinter aus, interessiert sich das Skript dafür gar nicht. Sofern du natürlich die gleichen Daten lieferst wie zuvor.
Wer sich schon einmal mit dem Thema E-Mail und insbesondere Exchange-Servern beschäftigt hat, kennt den Begriff Alias vielleicht aber auch daher. So lässt sich für ein Postfach ein Alias erstellen und schon können auch darunter E-Mails empfangen werden. Das kann Unternehmen in vielen Fällen helfen, zum Beispiel wenn sich die E-Mailadresse nach der Hochzeit (oder Scheidung, je nachdem) ändert.
Apropos Hochzeit und Scheidung. Wenn du in ioBroker deinem Alias-Datenpunkt einen richtigen Datenpunkt lieferst, ist das in gewisser Weise auch wie eine Hochzeit. Denn hier wird ein Paar erstellt, das systemweit zusammenarbeiten soll. Bei der Scheidung wird dann die Verbindung zwischen den beiden wieder gekappt.
Ist die Informatik nicht romantisch? 😉
Etwas technischer erklärt
Blicken wir auf das Thema etwas technischer, dann klingt es schon komplizierter. Aber im Kern ist es die gleiche Aussage, die ich eben getroffen habe.
Ein Alias ist eine Abstraktion und Entkopplung zwischen deinem Skript und dem eigentlichen Datenpunkt. Verknüpfen wir in einem Skript einen Datenpunkt, dann gibt es eine direkte Verbindung zwischen diesem Datenpunkt und diesem Skript. Verweisen wir in unserem Skript allerdings auf einen Datenpunkt, dann besteht diese direkte Verbindung nicht. Stattdessen führen wir eine zusätzliche Schicht ein und können alles darunter austauschen, wie wir gerade lustig sind.
Nehmen wir als Beispiel einen Datenpunkt für die aktuelle Temperatur. Du integrierst eine Schnittstelle aus dem Internet und ein Alias zeigt auf den Temperaturwert, der daraus gelesen wird. Einige Monate später entscheidest du dich dazu, eine Wetterstation anzuschaffen. Oder du hast von einem Bekannten eine Wetterstation zum Testen bekommen. Nun sagst du deinem Alias einfach, dass er nicht mehr den Wert aus der Schnittstelle beinhalten soll, sondern den Wert aus der Wetterstation.
Das Geniale daran ist, dass es deinem Skript völlig egal ist. Es weiß noch nicht einmal was davon. Doch warum funktioniert das?
Im Grunde ist es sehr simpel. Wir müssen dem Alias immer die Daten liefern, die er erwartet beziehungsweise für die er erschaffen wurde. In unserem Fall wäre das eine Zahl. Solange wir also immer wieder einen Datenpunkt mit einer Zahl auswählen, wird dein Skript weiter funktionieren. Würdest du aber stattdessen auf einmal einen Text liefern, könnte das zu Problemen führen.
Du kannst also nur Datenpunkt gegen gleichwertige Datenpunkte austauschen. Ansonsten verändert sich die Semantik deines Datenpunkts.
ioBroker Alias Manager
Damit du nicht völlig hilflos durch dein Smart Home laufen musst, gibt es für ioBroker einen passenden Adapter. Dieser Adapter nennt sich Alias Manager und unterstützt dich dabei, verschiedene Pseudonyme zu erstellen. Die Bedienung ist im Grunde recht simpel und wir werden exemplarisch mal einen Alias zusammen erstellen.
Nach der Erstellung eines Alias, kannst du diesen natürlich jederzeit bearbeiten und entfernen. Beachte dabei jedoch, dass du möglicherweise Skripte hast, die auf deinen Alias verweisen und dann nicht mehr funktionieren. Hier kann es dir helfen, wenn du dir zum Beispiel eine Übersicht erstellst, welches Skript auf welchen Alias zurückgreift. Oder du arbeitest eben nach dem Motto „try and error“.
Alle deine erstellen Aliase sind übrigens im Objektbaum sichtbar. Wenn du in der Navigation zu Objekten wechselst und dort den Ordner alias aufklappst, findest du alle Aliase. Dort solltest du jedoch in erster Linie keine Änderungen vornehmen. Deine Änderungen erfolgen durch den Alias Manager, den du dir als Adapter installierst.
ioBroker Alias erstellen
Nun wollen wir aber durchstarten. Nach der Installation des Adapters Alias Manager, erstellen wir unseren ersten Alias für einen Datenpunkt. Ich habe mich dazu entschieden, den aktuellen Stromverbrauch meiner Steckdose für die Solar-Ladestation zu nehmen. Welchen Datenpunkt du nimmst, das bleibt dir überlassen.
Ich klicke also im Alias Manager oben auf Aliase editieren. Dort wähle ich nun Neuer Alias aus. Nun werde ich von meinem Browser gefragt, wie ich diesen Alias nennen möchte. Ich gebe folgendes ein: alias.0.SolarLadestation
Nun vergebe ich die gewünschte Rolle an den Alias. In meinem Fall werde ich socket als Wert auswählen.
Als nächstes müssen wir unseren Datenpunkt auswählen, der mit dem Alias verknüpft werden soll. Da es für meinen Fall bereits einen Datenpunkt gibt, klicke ich auf den Button Alias-Datenpunkt aus bestehendem Datenpunkt hinzufügen. Es öffnet sich unser Objektbaum und ich navigiere zum gewünschten Datenpunkt.
Nachdem wir nun die Änderungen gemacht haben, können wir den Button Alle Änderungen speichern anklicken. Danach ist unser Alias erstellt worden und befindet sich im Objektbaum unter dem Ordner alias.
Einen Alias bearbeiten
Nun kann es vorkommen, dass wir mit einigen Einstellungen nicht so zufrieden sind und diese ändern wollen. Wie du bei mir siehst, wird die Einheit mA angegeben, was mir persönlich nicht gefällt. Zwar kann es sein, dass ich in meinem Szenario den falschen Datenpunkt gewählt habe, doch das ist erstmal zweitrangig.
Ich will also nun gerne den Alias bearbeiten, weil ich einen Fehler festgestellt habe. Dazu navigiere ich wieder in den Alias Manager und klicke oben wieder auf Aliase editieren. Nun werde ich dazu aufgefordert, meinen Alias auszuwählen.
Ich wähle hier selbstverständlich den Alias aus, den ich eben erstellt habe. Genau diesen will ich nun an dieser Stelle bearbeiten.
Es öffnet sich nun wieder die Ansicht von eben, in der wir sämtliche Einstellungen des Alias beeinflussen können. Ich wähle nun allerdings ganz unten meinen Alias aus und klappe die verfügbaren Einstellungen auf.
Hier kannst du sehen, dass wir verschiedene Einstellungen vordefinieren und ändern können. Unter anderem können wir hier die Einheit ändern oder auch den Datentyp. Selbstverständlich könntest du an dieser Stelle nun auch die Verknüpfung zwischen Alias und Datenpunkt aufheben. Danach besteht erneut die Möglichkeit, einen Datenpunkt zu verknüpfen.
Die Verwaltung ist also durchaus ziemlich simpel.
ioBroker Alias vs Linked Devices
Pfiffige Nutzer entdecken nun natürlich schnell, dass es einen weiteren Adapter gibt, der ähnliches tut. Ich habe mich daher mal auf die Spurensuche begeben, worin der Unterschied zwischen beiden Adaptern liegt. An der Stelle sei außerdem erwähnt, dass ich selbst nur den Adapter Alias Manager verwende und nicht Linked Devices.
Im Kern tun beide Funktionen wohl gleiche Dinge. Sie legen Aliase im entsprechenden Ordner im Objektbaum ab. Devices nutzt jedoch die internen Aliase des ioBrokers, während der Adapter Alias Manager einen anderen weg geht (Quelle: ioBroker Forum).
Linked Devices legt seine Datenpunkte in einen anderen Ordner ab und spiegelt die jeweiligen Werte beziehungsweise Eigenschaften (Quelle: ioBroker Forum).
Alias als mächtiges Werkzeug
Abschließend zu diesem spannenden Artikel und dieser Funktion in ioBroker bleibt mir eigentlich nur zu sagen, dass Aliase definitiv ihre Daseinsberechtigung haben. Sie erfüllen mitunter sehr wichtige Aufgaben im Smart Home und tragen dazu bei, eine Entkopplung zu schaffen.
Durch die richtige Verwendung eines Alias, können Skripte von den Geräten entkoppelt werden. Dadurch wird es möglich, Geräte einfach auszutauschen und nur den jeweiligen Datenpunkt umzubiegen. Du musst also nicht in jedes Skript navigieren und die entsprechenden Stellen finden, an denen auf das Gerät verwiesen wird.
Seine Stärke kann der Alias Manager also vor allem dort ausspielen, wo es immer mal wieder Änderungen bei den Geräten gibt. Hast du stattdessen sehr wenige Änderungen bei den Geräten, wird dir der Adapter nicht unbedingt so viel weiterhelfen.
Ich persönlich sehe die Stärke für meine Anwendungsfälle vor allem darin, dass ich bei Produkttests ganz schnell an einem Ort die Datenpunkte ändere und ein neues Gerät integriert habe. Das macht es mir persönlich sehr einfach in meinem Smart Home neue Dinge auszuprobieren, ohne dass ich hierfür eine Masse an Skripten ändern muss.
Allerdings – und das muss ich dazu sagen – kam ich sehr lange Zeit auch ohne Aliase aus und verwende sie noch heute eher selten. Dennoch haben sie einen großen Einfluss und können mitunter Stunden an Arbeit sparen, wenn man sie richtig verwendet.
Wie bei so vielen Dingen im Leben ist es aber aus meiner Sicht ratsam, damit mal etwas auszuprobieren. So bekommst du schnell ein Gefühl für die Funktionsweise und kannst für dich selbst einschätzen, wo der Einsatz eventuell Sinn ergeben könnte. Schlussendlich kennt einfach niemand dein Smart Home so gut wie du selbst. Und das ist auch gut so.
10 Kommentare
Tratschcafe · 24. Oktober 2024 um 12:20
Hallo
ich beschäftige mich mit dem Problem das ich den Inhalt einen Textfeldes im iob farblich ändern möchte wenn ein Wert sich ändert.
Im Hilfeforum von iob habe ich diese Seite her bekommen.
Der Link zu dem Beitrag ist hier zu finden –> https://forum.iobroker.net/post/1212642
Vielleicht können Sie mir da weiterhelfen da ich überhaupt keine Ahnung von dieser Materie habe.
Vielen Dank im Voraus
Lukas · 25. Oktober 2024 um 07:37
Hallo,
also in der alten VIS war das relativ einfach zu lösen. Du kannst bei jedem Element eine CSS-Klasse hinterlegen. Diese musst du zuvor in der VIS im Reiter CSS (findest du rechts unter dem Wort Eigenschaften) anlegen.
Der einfachste Fall wäre:
.rot {
color: red;
}
Ein weiterer Fall wäre:
.blau {
color: blue;
}
Und zur Sicherheit nochmal eine:
.gelb {
color: yellow;
}
Nun kannst du im Feld CSS-Klasse folgendes machen:
{v:userdata_0.0.MeinOrder.MeinStatus; v > 90 ? "rot" : ((v > 50 ? "blau" : "gelb"))}
Nun sollte deine Zahl entsprechend angezeigt werden. Achte nur darauf, dass du in den Objekten bereits eine Zahl speicherst. Ansonsten musst du den Wert noch in eine Zahl umwandeln.
Hat dir das weitergeholfen?
Smarte Grüße
Gerd · 21. Oktober 2023 um 06:07
Super beschrieben. Ich verwende Aliase auch eher für die Zukunft. Wenn das Gerät mal ersetzt werden muss. Dazu gruppiere ich Alias aber nicht in Geräten, sondern in Funktionen (Schalten, Temperatur, Power, …). So könnte ich später mal mein Shelly plus 1 pm mit Adon (wenn es den nicht mehr gibt) durch ein separates Temperaturmessgerät, Schalter + Energiemessgerät ersetzen.
Gibt es eine Möglichkeit danach zu suchen, welche Alias alle auf shelly.0.shellyplus1pm#80646fe5230c#1 verweisen?
Im Moment ist das kein Problem. Da bin ich noch nah dran. Was aber in zwei Jahren, wenn ich mehr Geräte habe?
Lukas · 21. Oktober 2023 um 08:43
Hallo Gerd,
vielen Dank für dein positives Feedback. Darüber freue ich mich persönlich sehr.
Mir persönlich ist kein Weg bekannt, wie das aktuell ermittelt werden kann. Ist auch in meinen Augen noch ein gewisses Manko, da so ein Teil der Übersichtlichkeit fehlt.
Was man versuchen könnte, dass die Entwickler des Alias Manager darauf aufmerksam gemacht werden. Eventuell gibt es direkt im Code vom Adapter oder ioBroker eine entsprechende Möglichkeit.
Guter Gedanke von dir!
Smarte Grüße
Volker · 9. Oktober 2023 um 08:31
Hallo,
danke für die Info. Leider kann ich nicht per Skript die Daten (zB Temperatur) lesen. Ich kann sie ändern, aber nicht lesen. Gibt es hier einen Tip?
Lukas · 10. Oktober 2023 um 08:17
Hallo Volker,
nutzt du für dein Skript Blockly oder JavaScript?
Grundsätzlich empfehle ich dir in einem solchen Fall, den Debug-Modus einzuschalten. Da kannst du dann genau nachvollziehen, was in deinem Objekt steht.
In einem Skript aktivierst du ihn oben rechts. Danach solltest du zumindest für den Test den Trigger anpassen, so dass dein Skript einmal ausgeführt wird.
Bei einem klassischen JavaScript musst du auf jeden Fall noch das .val bedenken.
Smarte Grüße
Volker · 12. Oktober 2023 um 07:42
Hallo Lukas,
danke für die Antwort. Ich habe den Fehler gefunden.
Lukas · 12. Oktober 2023 um 08:03
Hallo Volker,
super! Das freut mich sehr.
Falls du magst, kannst du gerne deine Lösung mit uns teilen. Vielleicht profitiert so der eine oder andere auch noch von deiner Erkenntnis.
Smarte Grüße
Uwe Hermann · 21. September 2023 um 08:10
Vielen Dank für den tollen und hilfreichen Artikel!
Gruß Uwe Hermann
Lukas · 21. September 2023 um 10:55
Hallo Uwe,
vielen Dank für dein positives Feedback und deinen Besuch bei mir im Blog.
Smarte Grüße