3.1 Das technische Konzept
Bei den, für die Umsetzung des MVP, verwendeten Input-Daten, handelt es sich um Sensordaten des DigitalHHZ. In den Räumlichkeiten des HHZ sind verschiedene Sensoren aufgestellt, unter anderem Bewegungssensoren. Speziell für die Umsetzung des Konzepts wurden die Sensordaten des HHZ Vorlesungsraums 024 verwendet. In diesem Raum befinden sich drei Bewegungssensoren. Für die Umsetzung des MVP wurde der Sensor aus der Middle Area verwendet. Die Sensordaten beinhalten unterschiedliche Informationen über die Bewegung in dem Bereich des Sensors und senden jede halbe Minute Daten weiter. Im Rahmen des MVP wird nur die Information "occupancy" benötigt. Sie sagt aus, ob eine Belegung im Raum bzw. in dem Bereich vorzufinden ist, also ob eine Bewegung vorhanden ist. Ist dies der Fall, sendet der Sensor den boolean-Wert "true", ansonsten den Wert "false". Der Zugriff auf die Sensordaten ist über eine Verbindung zum zugehörigen MQTT-Broker möglich.
Um eine einfache Weiterverarbeitung der Daten zu ermöglichen, wurden die boolean-Werte mit einem Function-Node in Integer-Werte (0 und 1) umgewandelt. Die weitere Verarbeitung der Input-Daten in Node-RED ist in der nächsten Abbildung zu sehen.
HIER MUSS EIN NEUES BILD MIT DEM 15+1 MIN TIMER REIN!!!
Während des Flows, werden die Input-Daten gefiltert. Die Verzweigung unterscheidet dabei, ob der Wert der Message 1 oder 0 ist. Ist das Ergebnis eine 0, wird also keine Bewegung erkannt, geht der Flow in Richtung des Timers weiter. An dieser Stelle wurde eine Timer-Funktion umgesetzt, die 15 Minuten auf eine Änderung (von 0 zu 1) wartet und falls kein anderer Wert eintritt, eine Empfehlung ausspricht. Nach den 15 Minuten hat der Anwender zudem noch 1 Minute Zeit mittels manuellen Vorrang die Empfehlung über das Dashboard zu verhindern. Damit wird dem Flow mitgeteilt, dass sich doch noch jemand im Raum befindet und die Empfehlung nicht ausgesprochen werden soll. Die Empfehlung beinhaltet dabei den effizienten Tipp das Licht nach 15 bzw. 16 Minuten auszuschalten, falls inzwischen Zeit keine Bewegung erkannt wurde. Ist der Wert 1, wird also eine Bewegung von dem Sensor erkannt, geht der Prozess durch den Standard-Flow und es erscheint eine Information darüber, dass eine Bewegung erkannt wurde. Der Output besteht also aus einer Empfehlung, basierend auf den Input. Das dazu erstellte Node-RED Dashboard ist in der nächsten Abbildung zu sehen.
3.2 Das MVP unseres Prototypen
In diesem Abschnitt werden die verwendeten Technologien, deren Zusammenspiel und der Datenfluss beschrieben.
3.2.1 Technisches Setup und Technologien
Technologien, die im Rahmen des IoT-Projekts verwendet wurden, sind MQTT (Mosquitto), Node-RED und Node-RED Dashboard. Die Installation von Node-RED und dem MQTT-Broker erfolgte auf einem RaspberryPi 4. Auf den RaspberryPi wurde zuerst das Betriebssystem Raspbian installiert. Nach der erfolgreichen Installation kann eine SSH Verbindung hergestellt werden, damit der Zugriff auf die Raspberry auch z.B. über einen Windows Rechner möglich ist. Nachdem alle notwendigen Konfigurationen abgeschlossen sind, muss Node-RED auf den Pi installiert werden. Außerdem wurde Node-RED auf dem Pi als Service aktiviert, was bedeutet, dass Node-RED bei Systemstart des Raspberry automatisch startet. Anschließend kann Node-RED über den Browser mit http://:1880 gestartet werden. DEINE IP ist dabei die IP-Adresse der Pi. Für die Umsetzung des MVP muss dann noch das Node-RED Dashboard installiert werden. Dies ist über das Terminal oder direkt über Node-RED möglich. Zuletzt muss noch der MQTT-Broker Mosquitto auf den Pi installiert werden. Eine ausführliche Beschreibung zum Setup ist unter folgendem Link zu finden: https://ownsmarthome.de/2018/01/09/installation-von-node-red-und-mosquitto/
3.2.2 MQTT Kommunikation und Datenfluss
Der Prototyp läuft somit komplett auf dem RaspberryPi 4. Der Zugriff auf die Sensordaten findet über Node-RED statt, indem eine Verbindung zum MQTT-Broker aufgebaut wird. Dafür wird der "MQTT Input" Node in Node-RED verwendet. Dafür muss in den Konfigurationen des Nodes ein neuer Broker hinzugefügt werden und ein Topic festgelegt werden. Dieser Topic wird dann abonniert und so können die benötigten Daten vom Broker geholt werden. In Rahmen des Projekts sind folgende Eigenschaften für die Verbindung notwendig:
Server: broker.digitalhhz.smartlab.local
Port: 1883
user: HHZ
password: password
Wichtig ist dabei zu wissen, dass auf die Sensordaten nur zugegriffen werden kann, wenn man mit HHZ Netzwerk verbunden ist. Die Daten fließen anschließend, je nach Wert, entlang des Flows und gelangen zu den Output Nodes. Diese sind in diesem Fall, ein Pop-Up Fenster und die Empfehlung. Diese Informationen erscheinen dann auf dem Dashboard. Die umgesetzten Implementierungsaktivitäten sind in den folgenden Abbildungen dargestellt.
BILDER DASHBOARD AKTIVITÄTEN!!!!
Für den Fall, dass man nicht mit dem HHZ Netzwerk verbunden ist, haben wir eine Version des Flows erstellt, in der die Sensordaten mit dem Node "inject" simuliert werden. Je nach dem welchen inject-Node man betätigt, werden die Werte 1 oder 0 in den Flow weitergeleitet. Dadurch fällt hier der function-Node zu Beginn weg. Der Rest des Prozesses läuft dann wieder identisch ab.
BILD DES SIMULIERTEN FLOWS!!!!
Hier geht es zu den Codes der Node-RED Flows: Flow mit MQTT-Broker: LINK!!!! Flow mit simulierten Daten: LINK!!!!
Auf Funktionen beschränken, die zur Demonstration von IoT Konzepten wesentlich sind. MQTT Kommunikation demonstrieren. Berichten sie über technische Setup, die eingesetzten Technologien und Services, sowie deren Zusammenspiel, z.B. Datenfluss. Evtl. Unterüberschriften einbauen hier, da sehr viel Inhalt. Bilder / Fotos der Implementierungsaktivität und des MVP Prototypen einfügen.