Smart-Home am Beispiel der Präsenzerkennung im Raum Projektarbeit Lennart Heimbs, Johannes Krug, Sebastian Dohle und Kevin Holzschuh bei Prof. Oliver Hofmann SS2019
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1_node-red_allgeimein.tex 6.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. \section{Node-RED - Allgemein}
  2. \label{kevin:node-red-allgemein}
  3. Node-RED ist ein Werkzeug für die datenflussbasierte visuelle Programmierungmiteinerbrowser-basierte Entwicklungsumgebung.
  4. Mit Node-RED ist es möglich verschiedene Geräte, APIs (Programmierschnittstellen)und Onlinedienste in einer grafischen Oberflächeauf einfache Weise virtuell zu verbinden.
  5. Dadurch ist es unter der Verwendung der bereits vorinstallierten „Packages“ (Pakete mit bestimmten Funktionsweisen) Datenflüsse logisch miteinander zu verknüpfen.
  6. 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.
  7. Da Node-RED sehr leichtgewichtig ist, eignet es sich ideal für die Nutzung auf kostengünstiger Hardware wie dem Raspberry Pi.
  8. \subsection{Node-RED Vorteile}
  9. \label{kevin:node-red-vorteile}
  10. \begin{itemize}
  11. \item Einfache Handhabung via Drag and Drop
  12. \item Ideal für die Implementierung von einfachen Abläufen
  13. \item Einfach zu erweitern
  14. \item Schnelle Gestaltung von interessanten Weboberflächen
  15. \item plattformübergreifend, da Node.js als Runtime
  16. \end{itemize}
  17. \subsection{Node-RED in der Projektarbeit}
  18. \label{kevin:node-red-in-projektarbeit}
  19. \begin{figure}[H]
  20. \centering
  21. \includegraphics[width=.75\textwidth]{images/anwendungsschema-node-red.png}
  22. \caption{Anwendungsschema von Node-RED in der Projektarbeit}
  23. \label{fig:anwendungsschema-node-red}
  24. \end{figure}
  25. Das Tool Node-RED wird auf einem Raspberry Pi installiert, welcher als Webserver für die Erstellung des Dashboards dient.
  26. In der Entwicklungsoberfläche werden die logischen Programmabläufe via „Drag and Drop" erstellt und Funktionsabläufe in der Programmiersprache JavaScript entwickelt.
  27. Die Sensordaten werden von den Modulen (HomeMatic und eigene Sensoren) an den Raspberry weitergleitet und abschließend in Node-RED verarbeitet und visualisiert.
  28. \subsection{Node-RED Installation/Inbetriebnahme}
  29. \label{kevin:node-red-installation}
  30. Die Installation von Node-RED wird in Abschnitt \ref{lenny:node-red-installation} auf Seite \pageref{lenny:node-red-installation} beschrieben.
  31. \subsection{Browserbasierte Entwicklungsoberfläche}
  32. \label{kevin:node-red-oberflaeche}
  33. \begin{figure}[H]
  34. \centering
  35. \includegraphics[width=.75\textwidth]{images/ss-node-red.png}
  36. \caption{Aufbau der Entwicklungsoberfläche in Node-RED}
  37. \label{fig:ss-node-red}
  38. \end{figure}
  39. Nach der Installation ist die Node-RED Oberfläche im Browser unter folgender URL zu erreichen:
  40. \begin{lstlisting}
  41. http://ip-des-raspberry:1880
  42. \end{lstlisting}
  43. Die schlicht gehaltene Node-RED-Entwicklungsoberfläche lässt sich in drei Bereiche einteilen.
  44. Im 1. Bereich (gelbe Markierung) ist die Node-Palette welche die mitgelieferten Nodes enthält.
  45. Der 2. Bereich beschreibt den eigentlichen Arbeitsbereich, dieser Bereich wird Flow, Arbeitsblatt oder Workspace genannt.
  46. Hier werden die logischen datenflussbasierten Abläufe und Funktionen mittels Drag \& Drop der Nodes aus der Node-Palette erstellt.
  47. Durch das Plus-Zeichen in der oberen rechten Ecke im roten Bereich können mehrere Arbeitsblätter erstellt werden.
  48. Im letzten 3. Bereich befindet sich das Informations-bzw. Debug-Panel.
  49. Dort werden Info-Texte zu den einzelnen Nodes und Anleitungen für die Konfiguration angezeigt.
  50. Der Debug-Tab zeigt die Ausgaben der Debug-Nodes und listet interne Fehler auf.
  51. Durch die rote Schaltfläche „Implementieren“ oben rechts, werden alle Flows in den Raspberry Pi geladen und ausgeführt.
  52. \subsection{Visualisierung inNode-RED}
  53. \label{kevin:node-red-visualisierung}
  54. In der Grundausstattung sind bereits einige nützliche Nodes installiert.
  55. Werden für die Nutzung noch weitere Nodes benötigt, können diese direkt in der Web-Oberfläche nachinstalliert werden.
  56. Hier kann nach neuen Nodes gesucht und diese per Mausklick installiert werden.
  57. Für die Anzeige von Visualisierungen in dem Dashboard wird das „node-red-dashboard“ Package benötigt.
  58. Für die Installation wird der Menüpunkt „Palette verwalten“ im Drop Down Menü oben rechts (3 horizontale Striche) ausgewählt.
  59. Durch die Eingabe „dashboard“ in die Suchleiste, wird das notwendige Package angezeigt.
  60. Mit der Bestätigung „installieren“ werden die benötigten Module in Node-RED hinzugefügt.
  61. \begin{figure}[H]
  62. \centering
  63. \includegraphics[width=.75\textwidth]{images/pakete-verwalten-node-red.png}
  64. \caption{Palette verwalten Dienst für nachträgliche Package-Installationen}
  65. \label{fig:pakete-verwalten-node-red}
  66. \end{figure}
  67. \subsection{Node-RED Bedienoberfläche}
  68. \label{kevin:node-red-bedienoberflaeche}
  69. Aufgerufen wird die Web-Oberflächemit folgender URL:
  70. \begin{lstlisting}
  71. http://ip-des-raspberry:1880/ui
  72. \end{lstlisting}
  73. Der Aufbauder Gruppen innerhalb des User Interfaces kann über das Dashboard-Panel, welches als weiterer Tab im Info-/Debug-Panel angezeigt wird, vorgenommen werden.
  74. In der Konfiguration können die Elemente auf mehrere Tabs und in Gruppen aufgeteiltwerden.
  75. Gehören Elemente der gleichen Gruppe an, teilen sie sich eine Kachel in der Bedienoberfläche.
  76. \begin{figure}[H]
  77. \centering
  78. \includegraphics[width=.75\textwidth]{images/ss-node-red-dashboard.png}
  79. \caption{Bedienoberfläche im Webbrowser}
  80. \label{fig:ss-node-red-dashboard}
  81. \end{figure}
  82. Für die Projektarbeit wurde das Dashboard in vier logisch zusammenhängende Gruppen eingeteilt.
  83. Jede einzelne Gruppe repräsentiert eine Auswertung von Sensordaten mit visueller Darstellung.
  84. Dabei wurde zwischen kommerziellen und den selbstgebauten Sensoren differenziert.
  85. \paragraph{}
  86. 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.
  87. Die verschiedenen Sensoren von HomeMatic wurden von dem Kommilitonen Sebastian Dohle angelernt und angebracht.
  88. 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.
  89. Bei \emph{HomeMatic Präsenz \& Tür Sensor} werden die Standard-Ausgabewerte der Sensorenangezeigt.
  90. Darunter der aktuelle Status des Tür-Sensors, also ob offen oder zu und die aktuelle Präsenzmeldung.
  91. \paragraph{}
  92. Hinsichtlich der Gruppe \emph{Dashbaord} (links) sind die grafischen Auswertungen der eigenen Sensordaten dargestellt.
  93. Hierbei ist in der oberen Hälfte der Ultraschall Sensor visualisiert.
  94. Es werden nur die vereinfachten Werte 1 oder 0 angezeigt.
  95. Das gleiche gilt für den PIR Sensor in der unteren Hälfte.
  96. Die Sensordaten 1 oder 0 zeigen an ob der jeweilige Sensor ausgelöst hat oder nicht.
  97. 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“.