Ich weiß nicht ob Dashboards DAS (eine) Mittel sind um das Herz eines Nerds höher schlagen zu lassen, aber ganz sicher sind sie ein Mittel um das Nerd-Herz höher schlagen zu lassen. Wer mit StarTrek und Co. groß geworden ist für den sind Dashboard-ähnliche Übersichten in Form von Diagrammen und Grafiken der inbegriff von Technologie. Dieses Feeling kann man sich mit NodeRed dank bestimmter Nodes nun selber bereiten.
Denn, hat man sein SmartHome erst mal so weit, dass es alle möglichen Daten über die eigenen vier Wände sammelt möchte man diese natürlich auch präsentieren. Aber wie? Immerhin kann man sich diese Daten nicht einfach wie die letzten Urlaubsfotos in ein Fotoalbum kleben.
Ein einfacher und dazu noch informativer und dekorativer Weg ist die vorhandenen Daten über die Dashboard-Node für NodeRed zu präsentieren. Diese bietet neben diversen Anzeigelementen auch die Möglichkeit mit Eurem SmartHome System zu interargieren. So könnt Ihr Werte einstellen, virtuelle Schalter umlegen, Aktionen auslösen und gleichzeitig deren Status überwachen.
Eine Übersicht zu den verschiedenen Funktionen der Dashboard-Node findet Ihr im folgenden Artikel
Voraussetzungen
Hilfreiche Artikel: Damit Ihr neue Nodes installieren könnt sollte NodeRed natürlich schon installiert sein. Wie ihr einen RaspberryPi dazu vorbereitet und dann NodeRed darauf installiert ist in den folgenden Artikeln beschrieben.
Übersicht über die verfügbaren Ein- und Ausgabe-Nodes
Durch die Installation der Dashboard-Nodes erhaltet Ihr ein ganzes Paket an zusätzlichen Nodes die sich zur Anzeige und Eingabe verschiedener Werte eignen. Diese werden Euch wie gewohnt in der Node-Palette im linken Bereich des Konfigurationsmenüs angezeigt. Details zu den einzelnen Nodes sind im folgenden aufgelistet.
Button-Node und Positionierung der Elemente im Dashboard
Die erste und simpelste Node ist die “Button-Node”. Mithilfe dieser könnt Ihr auf Eurem Dashoard einen Taster positionieren. Dieser funktioniert dann wie ein Taster in der realen Welt. Wird er angeklickt sendet er einen einstellbaren Wert und ein einstellbares Topic an die verknüpfte Node.
Button-Nodes lassen sich zum Beispiel sehr gut dazu nutzen Aktionen auszulösen. So könnt Ihr zum Beispiel Lampen Ein- und Ausschalten.
Bevor Ihr die Button-Node nutzen könnt, muss diese aber zunächst auf dem Layout-Gitter des Dashboards positioniert werden.
Denn neben den Funktionen der eigentlich Nodes, lässt sich für jede auch die Positionierung auf dem Layout des späteren Dashboards konfigurieren. Das Dashboard ist also eine separate Webseite die Zentral über die Dashboard-Konfiguration verwaltet werden kann.
Durch die Installation der Dashboard-Nodes wurde im linken Konfigurationsbereich nämlich ein neuer Reiter hinzugefügt. Ihr erkennt Ihn an dem an ein Balkendiagramm angelehntem Icon. Klickt auf dieses um die Grundkonfiguration des Dashboards zu öffnen.
Hier seht Ihr im oberen Bereich die verschiedenen Reiter “Layout”, “Theme” und “Site. Rechts daneben ist wird noch ein nach oben-rechts zeigender Pfeil angezeigt. Klickt Ihr diesen an werdet Ihr auf die Webseite des Dashboards weitergeleitet.
Alternativ könnt Ihr die Dashboard-Seite aber auch direkt anwählen. Dazu müsst Ihr der Adresse zu Eurer NodeRed-Konfigurationsseite lediglich ein “/ui/” anhängen. Lautet die Adresse zu Eurer NodeRed Konfigurationsseite zum Beispiel https:// 192.168.172.5:1880 dann lautet die Adresse zu Eurem Dashboard https:// 192.168.172.5:1880/ui/
Zunächst geht es um die Aufteilung des Layouts. Mit dessen Hilfe Ihr die jeweiligen Eingabe- und Ausgabe-Elemente (Dashboard-Nodes) fast frei auf dem Dashboard positionieren könnt. Das Dashboard bietet dabei die Möglichkeit einzelne Dashboard-Nodes in Gruppen zusammenzufassen. Die Anzeige-Reihenfolge dieser Nodes lässt sich dann auf dem Dashboard einstellen. Zusätzlich können bzw. müssen diese gruppierten Nodes einem bestimmten “Tab” zugewiesen werden.
Neben dem “Home”-Tab lassen sich nämlich noch weitere Tabs erstellen. Dies ist zum Beispiel praktisch um in einem Smart-Home System die Elemente in verschiedenen Räumen auch virtuell voneinander zu trennen. So könnt Ihr alle Sensoren und Aktoren des Wohnzimmers auch in einem Tab mit dem Namen “Wohnzimmer” zusammenfassen. Dies erleichtert die Übersicht und bringt Struktur in die oft schnell zunehmende Anzahl von Nodes.
Dies ist auch das was man im Reiter “Layout” der Dashboard-Konfiguration sehen und einstellen kann. Dort werden Euch alle Tabs und die zugehörigen Gruppen angezeigt. Im nachfolgenden Screenshot
Ein weiteres Beispiel:
Die Button-Node
Die Button-Node ist eine der sehr einfachen Nodes. Mit Ihr lassen sich virtuelle Tasten bauen. Zieht die Button-Node dazu von der Node-Palette auf die NodeRed-Konfigurationsfläche. Wenn Ihr nun doppelt auf die Node klickt lassen sich folgende Optionen konfigurieren.
Dropdown-Node
Die Dropdown-Node ist eine Node mit der Ihr auf dem Dashboard eine Auswahlliste erstellen könnt. Zum Beispiel könnt Ihr so eine Liste verfügbarer Temperaturen für einen Heizkörper erstellen. Es lassen sich aber auch allerhand andere Einträge mit den verschiedensten Namen und den dazugehörigen Werten definieren.
Zieht dazu eine Dropdown-Node aus der Node-Palette auf die Node-Red-Konfigurationsoberfläche und klickt doppelt auf diese.
Switch-Node
Die Switch-Node entspricht im Prinzip einem virtuellen Schalter. Dieser kann dazu benutzt werden um Schaltsignale zu senden oder aber um Schaltzustände anzuzeigen.
Zieht dazu die Switch-Node aus der Node-Palette auf die Node-Red-Konfigurationsoberfläche und klickt doppelt auf diese.
Slider-Node
Die Slider-Node eignet sich hervorragend um Zahlen in einem gewissen Bereich festzulegen. Ein guter Usecase ist zum Beispiel die Verwendung als Dimmer einer Lampe.
Um die Slider-Node nutzen zu können müsst Ihr sie zunächst wieder aus der Node-Palette auf die Node-Red-Konfigurationsoberfläche ziehen und deren Einstellungsmenü durch einen Doppelklick öffnen.
Numeric-Node
Die Numeric-Node ist eine weitere Möglichkeit um Zahlenwerte zur Verarbeitung an Node-Red zu übergeben.
Um diese zu konfigurieren zieht Ihr eine Numeric-Node aus der Node-Palette auf die Node-Red-Konfigurationsoberfläche.
Text Input-Node
Die Text-Input-Node ist – wie der Name schon vermuten lässt – eine Node um Texteingaben zu ermöglichen.
Date Picker-Node
Die Date-Picker-node macht im Prinzip genau das was der Name schon vermuten lässt: Hiermit könnt Ihr ein gewisses Datum auswählen und damit zur Weiterverarbeitung an NodeRed übergeben.
Colour-Picker-Node
Die Colour-Picker-Node eignet sich hervorragend zur Farbeinstellung einer angeschlossenen RGB-Lampe. Natürlich könnt Ihr damit aber auch für alle anderen Fälle Farben zur Weiterverarbeitung an Node-Red übergeben.
Form-Node
Mit der Form-Node habt Ihr die Möglichkeit ein typisches Formular zu konfigurieren. Dadurch lassen sich verschiedene Eingabemöglichkeiten zusammenfasse. Das eignet sich zum Beispiel perfekt um ein Formular für eine Adresseingabe oder ähnlichem zu konfigurieren.
Text-Output-Node
Die Text-Output-Node eignet sich hervorragend um Text einfach nur anzuzeigen. So könnt Ihr zum Beispiel Messwerte von Sensoren anzeigen lassen. Der Nutzer hat dabei keine Möglichkeit den angezeigten Text zu bearbeiten.
Gauge-Node
Die Gauge-Node eignet sich perfekt um Messwerte visualisiert darzustellen. So können die Messwerte optisch direkt eingeordnet werden. Dazu lassen sich auch Zahlen-Intervalle festlegen in denen sich die Farbe der angezeigten Skala verändert. So könnt Ihr zum Beispiel hohe/gefährliche Temperaturen durch eine rote Farbe darstellen. Temperaturen im Normalbereich werden dagegen mit einer grünen Skala dargestellt. Dies ermöglich mit einem schnellen Blick einen Eindruck zu bekommen ob die angezeigten Messwerte in Ordnung sind oder nicht. Davon abgesehen sieht es auch einfach recht cool(/Star Trek-mäßig) aus. 🙂
Chart-Node
Die Chart-Node eignet sich um Wert-Verläufe darzustellen. Dadurch könnt Ihr zum Beispiel der Verlauf einer Temperatur über einen festgelegten Zeitraum speichern lassen und darstellen. Leider werden die Werte aktuell nur temporär gespeichert. Das heißt sollte Euer NodeRed-Server abstürzen oder sonst wie neu gestartet werden, gehen alle zuvor angezeigten Werte verloren.
Audio-Out-Node
Die Audio-Out-Node ist wieder eine dieser Nodes die genau das macht, was Ihr Name vermuten lässt. Sie gibt Text als gesprochene Sprache aus.
Notification-Node
Die Notification-Node ermöglicht es Euch auf dem geöffneten Dashboard Notifications – also Benachrichtigungen – einzublenden. Diese können dabei als Information am Rand oder auch zentriert in der Mitte des Bildschirms inklusive Bestätigungs-Button angezeigt werden.
UI-Control-Node
Mit der UI-Control-Node könnt Ihr das Aussehen und Verhalten der Dashboard-Ansicht steuern. Hiermit lassen sich zum Beispiel das angezeigte Tab wechseln, Gruppen “ein- und ausklappen”. Auch könnt Ihr mit dieser Node darauf reagieren, ob ein Benutzer das das Dashboard geöffnet oder geschlossen hat.
Template-Node
Die Template-Node ist eine sehr vielseitige Node. Mit Ihr könnt Ihr eigenen HTML-Code auf dem Dashboard einbinden. Dieser kann dann individuell auf die empfangenen Nachrichten der angeschlossenen Nodes reagieren und auch selber wieder Nachrichten senden.
thztjz
Weitere Beispiele
Im folgenden findet Ihr eine kleine Liste der Artikel in der ich auch die Dashboard-Nodes verwende. Vielleicht ist ja auch für Euch etwas dabei. 🙂
Ich hoffe bei euch hat alles wie beschrieben funktioniert. Falls nicht oder ihr Fragen oder Anregungen habt lasst es mich in den Kommentaren bitte wissen. Ich trage dies dann ggf. in den Artikel nach. Auch Ideen für neue Projekte sind immer gerne willkommen. 🙂
P.S. Viele dieser Projekte - besonders die Hardwareprojekte - kosten viel Zeit und Geld. Natürlich mache ich das weil ich Spaß daran habe, aber wenn Du es cool findest, dass ich die Infos dazu mit Euch teile, würde ich mich über eine kleine Spende an die Kaffeekasse freuen. 🙂
Hallo, super Artikel. Eine Frage dazu: Wie schafft man es Elemente innerhalb einer Gruppe nebeneinander anzuordnen, wie z.B. in deienr LED stripe Gruppe der On und der Off button?
Hallo Andreas,
danke 🙂
Das müsste eigentlich automatisch passieren, sobald beide Elemente nebeneinander in die Gruppe passen. Dazu musst du die Breite der Elemente (Beim LED Stripe die Taster) zum Beispiel auf 3 einstellen, damit sie in die Gruppe (hier “LED Stripe”) mit der Breite 6 nebeneinander passen. 🙂
Las mich gerne wissen ob es geklappt hat. 🙂
Beste Grüße
Fab
klasse Artikel, hat mir super weitergeholfen. Habe trotzdem noch eine allgemeine Frage zu einem Node-Red dashboard.
Ich habe mir ein solches aufgebaut und lese mir somit Daten eines Temperatursensors über Node-Red aus. Diesen habe ich an den RPi angeschlossen. (Node-red läuft auf dem RPi bei mir).
Dieses Dashboard ist auch einfach aufrufbar über den Browser den ich nutze. Jedoch nur wenn ich in dem selben Netzwerk bin, wie der raspberry Pi selbst.
Von meinem Smartphone internet Netz habe ich keinen Zugriff auf das Dashboard.
Kennst du eine Möglichkeit, wie ich auch aus dem “Öffentlichen” Netz Zugriff, bzw. aus anderen Internetverbindungen als mein W-Lan zu Hause, auf das Dashboard bekomme?
Hi Lennard,
danke dir. 🙂
Die (einzige einigermaßen) sichere Variante ist, dass du dich über ein VPN mit deinem Heimnetzwerk verbindest und so auf den RaspberryPi in deinem Netzwerk zugreifst.
Mittlerweile können viele Router (z.B. auch die Fritzbox) als VPN Server konfiguriert werden.
Leider habe ich dazu kein Tutorial fertig, aber vllt. findest du dazu ja was. 🙂
Beste Grüße
Fabian
Hallo,
arbeite seit ein paar Tagen mit dem Node-Red auf dem Raspy-400. Ein AD Wandler (ADS1115) liefert mir auch saubere Ergenisse. Ich möchte gerne bei den Dashboard-Nodes die Schriftgöße verändern. Ist das möglich? Auf anderen Seiten sind irgendwelche Codes veröffentlicht, welche aber nicht funktionieren. Habt ihr mir ein Bsp. ( z.Bsp. für Gauge ) wie das zu bewerkstelligen ist?
Im vorhinaus möchte ich mich schonmal bedanken, alleine schon wegen des Dashboard Artikels.
MfG
H.Härle
Hi Horst,
ein Beispiel habe ich leider nicht dafür, aber vllt. einen “Schubs” in die richtige Richtung. In der Node Beschreibung für die gauge node ist folgender Hinweis enthalten:
If a Class is specified, it will be added to the parent card. This way you can style the card and the elements inside it with custom CSS. The Class can be set at runtime by setting a msg.className string property.
Das heißt du müsstest das Aussehen der einzelnen Bestandteile der gauge node eigentlich mit CSS code bearbeiten können.
Ich hoffe das hilft dir weiter. 🙂
Beste Grüße
Fab
Hallo, super Artikel. Eine Frage dazu: Wie schafft man es Elemente innerhalb einer Gruppe nebeneinander anzuordnen, wie z.B. in deienr LED stripe Gruppe der On und der Off button?
Viele Grüße
Andreas
Hallo Andreas,
danke 🙂
Das müsste eigentlich automatisch passieren, sobald beide Elemente nebeneinander in die Gruppe passen. Dazu musst du die Breite der Elemente (Beim LED Stripe die Taster) zum Beispiel auf 3 einstellen, damit sie in die Gruppe (hier “LED Stripe”) mit der Breite 6 nebeneinander passen. 🙂
Las mich gerne wissen ob es geklappt hat. 🙂
Beste Grüße
Fab
Thanks 🙂
Guten Morgen,
klasse Artikel, hat mir super weitergeholfen. Habe trotzdem noch eine allgemeine Frage zu einem Node-Red dashboard.
Ich habe mir ein solches aufgebaut und lese mir somit Daten eines Temperatursensors über Node-Red aus. Diesen habe ich an den RPi angeschlossen. (Node-red läuft auf dem RPi bei mir).
Dieses Dashboard ist auch einfach aufrufbar über den Browser den ich nutze. Jedoch nur wenn ich in dem selben Netzwerk bin, wie der raspberry Pi selbst.
Von meinem Smartphone internet Netz habe ich keinen Zugriff auf das Dashboard.
Kennst du eine Möglichkeit, wie ich auch aus dem “Öffentlichen” Netz Zugriff, bzw. aus anderen Internetverbindungen als mein W-Lan zu Hause, auf das Dashboard bekomme?
Danke dir und Viele Grüße, Lennard
Hi Lennard,
danke dir. 🙂
Die (einzige einigermaßen) sichere Variante ist, dass du dich über ein VPN mit deinem Heimnetzwerk verbindest und so auf den RaspberryPi in deinem Netzwerk zugreifst.
Mittlerweile können viele Router (z.B. auch die Fritzbox) als VPN Server konfiguriert werden.
Leider habe ich dazu kein Tutorial fertig, aber vllt. findest du dazu ja was. 🙂
Beste Grüße
Fabian
Hallo,
arbeite seit ein paar Tagen mit dem Node-Red auf dem Raspy-400. Ein AD Wandler (ADS1115) liefert mir auch saubere Ergenisse. Ich möchte gerne bei den Dashboard-Nodes die Schriftgöße verändern. Ist das möglich? Auf anderen Seiten sind irgendwelche Codes veröffentlicht, welche aber nicht funktionieren. Habt ihr mir ein Bsp. ( z.Bsp. für Gauge ) wie das zu bewerkstelligen ist?
Im vorhinaus möchte ich mich schonmal bedanken, alleine schon wegen des Dashboard Artikels.
MfG
H.Härle
Hi Horst,
ein Beispiel habe ich leider nicht dafür, aber vllt. einen “Schubs” in die richtige Richtung. In der Node Beschreibung für die gauge node ist folgender Hinweis enthalten:
Das heißt du müsstest das Aussehen der einzelnen Bestandteile der gauge node eigentlich mit CSS code bearbeiten können.
Ich hoffe das hilft dir weiter. 🙂
Beste Grüße
Fab