123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- \section{Node-RED - Allgemein}
- \label{kevin:node-red-allgemein}
- Node-RED ist ein Werkzeug für die datenflussbasierte visuelle Programmierungmiteinerbrowser-basierte Entwicklungsumgebung.
- Mit Node-RED ist es möglich verschiedene Geräte, APIs (Programmierschnittstellen)und Onlinedienste in einer grafischen Oberflächeauf einfache Weise virtuell zu verbinden.
- Dadurch ist es unter der Verwendung der bereits vorinstallierten „Packages“ (Pakete mit bestimmten Funktionsweisen) Datenflüsse logisch miteinander zu verknüpfen.
- Zusätzlichbesteht die Möglichkeit eigene Nodes in JavaScript zu programmieren oder mithilfe des bereits integrierten Palletten Manager benötigte Nodes nachträglich zu installieren.
- Da Node-RED sehr leichtgewichtig ist, eignet es sich ideal für die Nutzung auf kostengünstiger Hardware wie dem Raspberry Pi.
-
- \subsection{Node-RED Vorteile}
- \label{kevin:node-red-vorteile}
- \begin{itemize}
- \item Einfache Handhabung via Drag and Drop
- \item Ideal für die Implementierung von einfachen Abläufen
- \item Einfach zu erweitern
- \item Schnelle Gestaltung von interessanten Weboberflächen
- \item plattformübergreifend, da Node.js als Runtime
- \end{itemize}
-
- \subsection{Node-RED in der Projektarbeit}
- \label{kevin:node-red-in-projektarbeit}
- \begin{figure}[H]
- \centering
- \includegraphics[width=.75\textwidth]{images/anwendungsschema-node-red.png}
- \caption{Anwendungsschema von Node-RED in der Projektarbeit}
- \label{fig:anwendungsschema-node-red}
- \end{figure}
- Das Tool Node-RED wird auf einem Raspberry Pi installiert, welcher als Webserver für die Erstellung des Dashboards dient.
- In der Entwicklungsoberfläche werden die logischen Programmabläufe via „Drag and Drop" erstellt und Funktionsabläufe in der Programmiersprache JavaScript entwickelt.
- Die Sensordaten werden von den Modulen (HomeMatic und eigene Sensoren) an den Raspberry weitergleitet und abschließend in Node-RED verarbeitet und visualisiert.
-
- \subsection{Node-RED Installation/Inbetriebnahme}
- \label{kevin:node-red-installation}
- Die Installation von Node-RED wird in Abschnitt \ref{lenny:node-red-installation} auf Seite \pageref{lenny:node-red-installation} beschrieben.
-
- \subsection{Browserbasierte Entwicklungsoberfläche}
- \label{kevin:node-red-oberflaeche}
- \begin{figure}[H]
- \centering
- \includegraphics[width=.75\textwidth]{images/ss-node-red.png}
- \caption{Aufbau der Entwicklungsoberfläche in Node-RED}
- \label{fig:ss-node-red}
- \end{figure}
- Nach der Installation ist die Node-RED Oberfläche im Browser unter folgender URL zu erreichen:
- \begin{lstlisting}
- http://ip-des-raspberry:1880
- \end{lstlisting}
- Die schlicht gehaltene Node-RED-Entwicklungsoberfläche lässt sich in drei Bereiche einteilen.
-
- Im 1. Bereich (gelbe Markierung) ist die Node-Palette welche die mitgelieferten Nodes enthält.
-
- Der 2. Bereich beschreibt den eigentlichen Arbeitsbereich, dieser Bereich wird Flow, Arbeitsblatt oder Workspace genannt.
- Hier werden die logischen datenflussbasierten Abläufe und Funktionen mittels Drag \& Drop der Nodes aus der Node-Palette erstellt.
- Durch das Plus-Zeichen in der oberen rechten Ecke im roten Bereich können mehrere Arbeitsblätter erstellt werden.
-
- Im letzten 3. Bereich befindet sich das Informations-bzw. Debug-Panel.
- Dort werden Info-Texte zu den einzelnen Nodes und Anleitungen für die Konfiguration angezeigt.
- Der Debug-Tab zeigt die Ausgaben der Debug-Nodes und listet interne Fehler auf.
- Durch die rote Schaltfläche „Implementieren“ oben rechts, werden alle Flows in den Raspberry Pi geladen und ausgeführt.
-
- \subsection{Visualisierung inNode-RED}
- \label{kevin:node-red-visualisierung}
- In der Grundausstattung sind bereits einige nützliche Nodes installiert.
- Werden für die Nutzung noch weitere Nodes benötigt, können diese direkt in der Web-Oberfläche nachinstalliert werden.
- Hier kann nach neuen Nodes gesucht und diese per Mausklick installiert werden.
-
- Für die Anzeige von Visualisierungen in dem Dashboard wird das „node-red-dashboard“ Package benötigt.
- Für die Installation wird der Menüpunkt „Palette verwalten“ im Drop Down Menü oben rechts (3 horizontale Striche) ausgewählt.
- Durch die Eingabe „dashboard“ in die Suchleiste, wird das notwendige Package angezeigt.
- Mit der Bestätigung „installieren“ werden die benötigten Module in Node-RED hinzugefügt.
- \begin{figure}[H]
- \centering
- \includegraphics[width=.75\textwidth]{images/pakete-verwalten-node-red.png}
- \caption{Palette verwalten Dienst für nachträgliche Package-Installationen}
- \label{fig:pakete-verwalten-node-red}
- \end{figure}
-
- \subsection{Node-RED Bedienoberfläche}
- \label{kevin:node-red-bedienoberflaeche}
- Aufgerufen wird die Web-Oberflächemit folgender URL:
- \begin{lstlisting}
- http://ip-des-raspberry:1880/ui
- \end{lstlisting}
- Der Aufbauder Gruppen innerhalb des User Interfaces kann über das Dashboard-Panel, welches als weiterer Tab im Info-/Debug-Panel angezeigt wird, vorgenommen werden.
- In der Konfiguration können die Elemente auf mehrere Tabs und in Gruppen aufgeteiltwerden.
- Gehören Elemente der gleichen Gruppe an, teilen sie sich eine Kachel in der Bedienoberfläche.
- \begin{figure}[H]
- \centering
- \includegraphics[width=.75\textwidth]{images/ss-node-red-dashboard.png}
- \caption{Bedienoberfläche im Webbrowser}
- \label{fig:ss-node-red-dashboard}
- \end{figure}
-
- Für die Projektarbeit wurde das Dashboard in vier logisch zusammenhängende Gruppen eingeteilt.
- Jede einzelne Gruppe repräsentiert eine Auswertung von Sensordaten mit visueller Darstellung.
- Dabei wurde zwischen kommerziellen und den selbstgebauten Sensoren differenziert.
-
- \paragraph{}
- Durch die beiden Gruppen \emph{HomeMatic Präsenz \& Tür Sensor} und \emph{HomeMatic Powermeter} werden die kommerziellen Sensoren von HomeMatic vertreten, darunter ist der Präsenz Melder, die Steckdose und der Tür Sensor.
- Die verschiedenen Sensoren von HomeMatic wurden von dem Kommilitonen Sebastian Dohle angelernt und angebracht.
- Innerhalb der \emph{HomeMatic Powermeter} Gruppe werden die Sensordaten der Steckdose angezeigt, darunter auch ein grafischer Verlauf der Netzspannung und des Stroms in einer Time-Chart.
- Bei \emph{HomeMatic Präsenz \& Tür Sensor} werden die Standard-Ausgabewerte der Sensorenangezeigt.
- Darunter der aktuelle Status des Tür-Sensors, also ob offen oder zu und die aktuelle Präsenzmeldung.
-
- \paragraph{}
- Hinsichtlich der Gruppe \emph{Dashbaord} (links) sind die grafischen Auswertungen der eigenen Sensordaten dargestellt.
- Hierbei ist in der oberen Hälfte der Ultraschall Sensor visualisiert.
- Es werden nur die vereinfachten Werte 1 oder 0 angezeigt.
- Das gleiche gilt für den PIR Sensor in der unteren Hälfte.
- Die Sensordaten 1 oder 0 zeigen an ob der jeweilige Sensor ausgelöst hat oder nicht.
- Rechts dazu in der \emph{Eigene Sensoren} Gruppe steht die textuelle Auswertung und eine logische Auswertung mit „Person(en) im Raum“ oder „Keine Person(en) im Raum“.
|