node-red - programm.froscon.de · node-red der fluss der dinge oder klick dir dein internet der...
TRANSCRIPT
Uwe Berger; 2018 2
Node-Red
Uwe Berger
● Beruf: Softwareentwickler● Freizeit: u.a. mit Hard- und
Software rumspielen● Linux seit ca. 1995● BraLUG e.V.● [email protected]
Uwe Berger; 2018 3
Node-Red
Das Problem...
...Internet of Things (IoT)...:● Jedes neue „Ding“ bringt eine neue API mit...● Jeder neue Dienst bringt eine neue API mit...● Für eine IoT-Lösung müssen diese (vielen) unterschiedli-
chen Dinge und Dienste verknüpft werden…!
Es kostet Zeit, immer wieder darüber nachzudenken, wie man das Zusammenspiel vieler unterschiedlicher Schnittstel-len implementiert!
Uwe Berger; 2018 4
Node-Red
...eine Lösung
Ein Baukasten...:● ...in dem die APIs bereits implementiert und untereinander
„normalisiert“ sind...● ...und in dem man die „Dinge“ einfach nur noch
zusammenstecken muss...
→ Node-Red könnte da eine Lösung sein!
Uwe Berger; 2018 5
Node-Red
Hääää,… Baukasten…?
...ich bin doch ein Programmier-Nerd...?#!.+?!...?
Uwe Berger; 2018 6
Node-Red
Inhalt● Was ist Node-Red?● Installation, Konfiguration von Node-Red● Arbeiten mit Node-Red...
Uwe Berger; 2018 7
Node-Red
Node-Red („Kennzahlen“)● Erstes Release: 2013● IBM; Nick O‘Leary, Dave Conway-Jones● mittlerweise Open Source (Apache License 2.0)● Basiert auf Node.js (damit auch plattformübergreifend)● Browser-basierte Entwicklungsumgebung● Konzept der Datenflussprogrammierung...
Uwe Berger; 2018 8
Node-Red
...Datenflussprogrammierung...
Uwe Berger; 2018 9
Node-Red
Node-Red ist...● ein Baukasten zum Zusammensetzen von Anwendungen...● ...via Drag and Drop● Ideal für Prototyp-Entwicklung (proof of concept)● Ideal zur Implementierung von einfachen Abläufen● einfach zu erweitern● mehr als ein Baukasten zum Zusammenstellen von
Weboberflächen!
Uwe Berger; 2018 10
Node-Red
Node-Red ist...● ...keine Laufzeitumgebung für unternehmenskritische
Anwendungen
Uwe Berger; 2018 11
Node-Red
Node-Red installieren...● Node.js und npm (node package manager) via apt instal-
lieren● Node-Red via npm installieren
$ sudo apt-get install nodejs npm…
$ sudo npm install -g --unsafe-perm node-red…
Uwe Berger; 2018 12
Node-Red
Node-Red konfigurieren...
● Datei settings.js (Reihenfolge der Suche)● über Kommandozeilenparameter● in /home/<user>/.nodered/● im Installationsverzeichnis von Node-Red
● Was kann konfiguriert werden?● Ports, Verzeichnisse● Sicherheitseinstellungen(!)● ...etc. (originale settings.js ist gut kommentiert und/oder
RTFM)
Uwe Berger; 2018 13
Node-Red
Node-Red starten...● Kommandozeile:$ whereis node-rednode-red: /usr/local/bin/node-red
$ node-red…
● …oder als Dienst:● RTFM…● ...mit systemd z.B.:
→ https://diyprojects.io/node-red-installation-configuration-ubuntu-16-04-lts/
Uwe Berger; 2018 14
Node-Red
http://localhost:1880/
Uwe Berger; 2018 15
Node-Red
Nodes (Eingabe/Verarbeitung/Ausgabe)
Uwe Berger; 2018 16
Node-Red
...viele weitere Nodes
...für Raspberry Pi gibt es da auch was…!
Uwe Berger; 2018 17
Node-Red
Nodes nachinstallieren...
Uwe Berger; 2018 18
Node-Red
Hilfe zu Nodes
Uwe Berger; 2018 19
Node-Red
Message-Objekt...● In der Regel immer:
● msg.topic● msg.payload
● ...plus node-spezifische Eigenschaften
Uwe Berger; 2018 20
Node-Red
Live… - ein „Hello World!“
Uwe Berger; 2018 21
Node-Red
Dashboard● ...nachinstallieren… (node-red-dashboard)● u.a. diverse Ein-/Ausgabe-Elemente für
Weboberflächen (mit Node-Red)● http://localhost:1880/ui/
Uwe Berger; 2018 22
Node-Red
Live… ein kleines Dashboard
Uwe Berger; 2018 23
Node-Red
Stichworte für eigene Experimente...
Arbeiten mit Flows● Export/Import von Flows● Subflows
Programmieren● Function-Nodes (die mit eigenem JavaScript-Code „befüllt“
werden können)● Variablenreichweite:
● Node-weit: context.set(), context.get(), ...● Flow-weit: flow.set(), flow.get(), ...● Node-Red-weit: global.set(), global.get(), ...
Uwe Berger; 2018 24
Node-Red
Function-Node
Uwe Berger; 2018 25
Node-Red
Beispiel: Computer
Uwe Berger; 2018 26
Node-Red
Beispiel: Computer (Flow)
Uwe Berger; 2018 27
Node-Red
Beispiel: Wettervorhersage
Uwe Berger; 2018 28
Node-Red
Beispiel: Wettervorhersage (Flow)
Uwe Berger; 2018 29
Node-Red
Beispiel: Wetter
Uwe Berger; 2018 30
Node-Red
Beispiel: Wetter (Flow)
Uwe Berger; 2018 31
Node-Red
Beispiel: Sensoren
Uwe Berger; 2018 32
Node-Red
Beispiel: Sensoren (Flow)
Uwe Berger; 2018 33
Node-Red
Weiterführende Informationen● https://nodered.org/● https://github.com/node-red/node-red
Uwe Berger; 2018 34
Node-Red
Fragen, Feedback...?