Inhaltsverzeichnis

Alle Kapitel aufklappen
Alle Kapitel zuklappen
Materialien zum Buch
15
Einleitung
17
1 Node-RED – das Setup: So starten Sie
23
1.1 Node-RED – das zentrale Element
23
1.2 Node-RED aufsetzen
25
1.2.1 Node-RED mit SenseTecnic FRED
25
1.2.2 Node-RED auf einem Android-Gerät
27
1.2.3 Node-RED auf einem Windows-PC
27
1.2.4 Node-RED auf einem Raspberry Pi
31
1.2.5 Node-RED auf einem Linux-System
33
1.2.6 Node-RED in der IBM-Cloud
34
1.3 Node-RED überall: Docker-Container starten
34
1.3.1 Docker auf einem Ubuntu-System
34
1.3.2 Docker auf dem Raspberry Pi
35
1.3.3 Node-RED in Docker ausführen
36
1.4 Die Ausgaben von Node-RED beim Start
38
1.5 Node-RED administrieren
39
1.5.1 Dateien und Ordner
39
1.5.2 Dateien unter Docker
41
1.5.3 Einstellungen von Node-RED ändern
41
1.6 Node-RED absichern
44
1.6.1 Passwortschutz für den Node-RED-Editor
44
1.6.2 HTTPS aktivieren
46
1.6.3 Sicherheit für den http-in-Node
50
1.7 Node-RED Projekte
51
1.8 Fazit
62
2 Das zentrale Tool: Der Node-RED-Editor
63
2.1 Den Node-RED-Editor in einem Browser öffnen
63
2.2 Die Kopfleiste
65
2.2.1 Die Schaltfläche »deploy«
65
2.2.2 Die Benutzerauthentifikation
67
2.2.3 Das Hauptmenü
67
2.3 Die Node-Palette
76
2.3.1 Der Reiter Nodes
77
2.3.2 Der Reiter Installieren
79
2.4 Der Arbeitsbereich
84
2.4.1 Die Verwaltungsleiste für die Flows
85
2.4.2 Der Flow-Design-Bereich
86
2.4.3 Die Fußleiste
90
2.5 Die rechte Seitenleiste
91
2.5.1 Der Reiter Info
91
2.5.2 Der Reiter Hilfe
93
2.5.3 Der Reiter Debugging
93
2.5.4 Der Reiter Konfiguration
94
2.5.5 Der Reiter Kontext
95
2.5.6 Der Reiter Dashboard
95
2.6 Der erste Flow
95
2.7 Gute Programmierung
97
2.7.1 Die Flow-Struktur
98
2.7.2 Das Message-Design
103
2.7.3 Die Dokumentation
104
2.8 Flows mit dem Flow-Debugger debuggen
105
2.9 Probleme mit nrlinter aufspüren
108
2.9.1 Installation
108
2.9.2 Mit nrlinter arbeiten
109
2.10 Fazit
111
3 Das Fundament: Die Basics von Node-RED
113
3.1 Das Message-Konzept von Node-RED
113
3.1.1 JSON – das Datenformat für den Datenaustauch
113
3.1.2 Messages in Node-RED
117
3.2 Die Geschwister inject-Node und debug-Node
121
3.2.1 Der inject-Node
121
3.2.2 Der debug-Node
123
3.3 Messages manipulieren: Der change-Node und seine Begleiter
124
3.3.1 Der switch-Node
125
3.3.2 Der change-Node
127
3.4 Dateiformate konvertieren
128
3.5 Auf Prozessereignisse reagieren
130
3.5.1 Der status-Node
130
3.5.2 Der complete-Node
131
3.5.3 Der catch-Node
132
3.6 Sequenzen (Folgen)
134
3.7 Fazit
140
4 Das Node-RED-Dashboard
141
4.1 Installation
141
4.2 Browser-Aufruf und Einstellungen
143
4.3 Der Schnelleinstieg: So erstellen Sie Ihre erste Dashboard-Ausgabe
143
4.3.1 Schritt 1: Den button-Node konfigurieren und eine Dashboard-Gruppe erstellen
144
4.3.2 Schritt 2: Den Dashboard-Tab festlegen
144
4.3.3 Schritt 3: Den trigger-Node einstellen
145
4.3.4 Schritt 4: Die Dashboard-Ausgabe starten
146
4.4 Das Dashboard-Design bestimmen
146
4.4.1 Icons
147
4.4.2 Die rechte Seitenleiste
148
4.4.3 Die Konfiguration von Tabs und Gruppen
152
4.5 Die Dashboard-Widgets in Aktion
154
4.5.1 Der button-Node
155
4.5.2 Der dropdown-Node
156
4.5.3 Der switch-Node
158
4.5.4 Der slider-Node
159
4.5.5 Der numeric-Node
160
4.5.6 Der text-input-Node
161
4.5.7 Der form-Node
162
4.5.8 Die beiden function-Nodes und der template-Node
163
4.6 Charts und Messanzeigen mit dem Raspberry Pi
164
4.6.1 Sensoren schalten und das benötigte Paket installieren
165
4.6.2 Die LEDs schalten
166
4.6.3 Wetterdaten erheben und ausgeben
167
4.7 Das Diagramm-Kaleidoskop
172
4.8 Fazit
174
5 Funktionen programmieren
175
5.1 Einsatz und Funktionsweise des function-Nodes
175
5.1.1 Eingangsnachrichten lesen
176
5.1.2 Nachrichten erstellen
178
5.1.3 Code zur Ausführung bei setup und close
182
5.1.4 Ereignisse loggen
182
5.1.5 Das Erscheinungsbild ändern
183
5.2 Programmierung mit JavaScript
183
5.2.1 Code-Editoren
183
5.2.2 Zeichen, Kommentare und Begriffe
184
5.2.3 Daten und Datentypen
187
5.2.4 Variablen und Konstanten
187
5.2.5 Ausdrücke und Operatoren
192
5.2.6 Das Array-Objekt (Tabellen)
200
5.2.7 Das Date-Objekt
202
5.2.8 Funktionen
206
5.2.9 Kontrollstrukturen
209
5.3 Programmbeispiele für den function-Node
217
5.3.1 Eine Zeichenfolge aufteilen
218
5.3.2 Eine Nachricht verzögern
218
5.3.3 Auf eine Umgebungsvariable zugreifen
219
5.3.4 Zusätzliche Module nachladen
220
5.3.5 Mit Kontextvariablen arbeiten
220
5.3.6 Nachrichten zusammenführen
222
5.3.7 Mit Puffern arbeiten
222
5.4 Externe Module laden
223
5.4.1 Den Hostnamen ausgeben
224
5.4.2 Den RGB-Farbwert prüfen
225
5.5 Der Monaco-Code-Editor
226
5.6 Fazit
227
6 Daten über Netzwerkprotokolle abrufen
229
6.1 Daten von einem Server im Netz abrufen
229
6.1.1 Grundlagen von HTTP-Verbindungen
230
6.1.2 Die Nodes nutzen
234
6.2 MQTT: Das IoT-Protokoll
257
6.2.1 Installation und ein Flow für den Einstieg
259
6.2.2 Einen eigenen MQTT-Broker aufsetzen
263
6.2.3 Node-RED an den Mosquitto-Broker anbinden
266
6.2.4 Der Sonoff-Basic-Universalschalter
266
6.3 Arduino & Co. über USB anbinden
272
6.4 Fazit
280
7 Daten mit Node-RED teilen
281
7.1 E-Mails versenden
281
7.1.1 Das E-Mail-Konto konfigurieren
282
7.1.2 Der E-Mail-Versand
283
7.1.3 Der E-Mail-Empfang
288
7.2 Instant-Messaging und Bots mit Telegram
292
7.2.1 Instant Messaging
292
7.2.2 Bots
293
7.2.3 Telegram
293
7.3 Auf die Twitter-API zugreifen
310
7.3.1 Tweets senden
310
7.3.2 Tweets empfangen
315
7.4 Geräte mit Pushbullet vernetzen
320
7.4.1 Pushbullet einrichten
321
7.4.2 Erste Schritte mit der Pushbullet-API
323
7.4.3 Pushbullet für Node-RED
326
7.5 Sprachsteuerung mit Alexa
331
7.6 Google-Dienste integrieren
337
7.7 Fazit
345
8 Daten speichern und archivieren
347
8.1 Kontextvariablen
347
8.1.1 Kontextvariablen vom Typ node
348
8.1.2 Kontextvariablen vom Typ flow
350
8.1.3 Kontextvariablen vom Typ global
352
8.1.4 Kontextvariablen im Dateisystem speichern
352
8.2 Daten in Dateien speichern
353
8.2.1 Messdaten speichern und wieder auslesen
355
8.2.2 Dateimanager
361
8.3 Node-RED und InfluxDB
365
8.3.1 InfluxDB, eine Time Series Database
365
8.3.2 InfluxDB installieren
367
8.3.3 Die ersten Schritte mit InfluxDB
369
8.3.4 Mit Node-RED Daten in InfluxDB speichern
374
8.3.5 Mit Node-RED Daten aus der InfluxDB auslesen
377
8.3.6 Die InfluxDB sauber halten
381
8.4 Node-RED und SQLite
385
8.4.1 Aufbau einer SQLite-Datenbank
385
8.4.2 SQLite installieren
388
8.4.3 Mit Node-RED Daten in der SQLite-Datenbank speichern
391
8.4.4 Mit Node-RED Daten aus der SQLite-Datenbank löschen
393
8.4.5 Mit Node-RED Daten aus der SQLite-Datenbank auslesen
394
8.5 Fazit
394
9 Node-RED-Hacks
395
9.1 Python-Skripte einbinden
395
9.2 Timer
397
9.2.1 Ausgaben
399
9.2.2 Timersteuerung
400
9.2.3 Erweiterte Möglichkeiten
400
9.3 »Himmelserscheinungen« auswerten
401
9.4 Wetterdaten mit OpenWeatherMap
404
9.4.1 Das openweathermap-Konto
404
9.4.2 Eine Wetteransage
405
9.4.3 Ein Frostwächter
407
9.5 Zeitangaben formatieren
408
9.5.1 Der Node Date/Time Formatter
408
9.5.2 Der humanizer-Node
410
9.6 Mit Bilddateien arbeiten
411
9.7 Einen QR-Code generieren
413
9.8 Geräte mit Ping orten
415
9.8.1 Anwesenheitsmitteilung senden
416
9.8.2 Alarmanlage aktivieren
417
9.8.3 Erreichbarkeit eines Servers überprüfen
418
9.9 Funktionalitäten einer FRITZ!Box nutzen
420
9.9.1 Anwesenheitsbenachrichtigung
421
9.9.2 Benachrichtigung bei Anrufen
423
9.9.3 Gastzugang schalten
424
9.10 FTP – Daten zwischen Rechnern übertragen
427
9.10.1 Einen FTP-Server aufsetzen
427
9.10.2 Das Verzeichnis mit Node-RED lesen
430
9.10.3 Node-RED-Konfigurationsdateien sichern
432
9.11 Fazit
434
10 Apps und externe Anbindung
435
10.1 Apps aus den App-Stores
435
10.2 Blynk
436
10.2.1 Mit Blynk auf den Raspberry Pi zugreifen
436
10.2.2 Blynk und Node-RED kommunizieren miteinander
444
10.3 Die Termux-App
450
10.3.1 Node-RED auf dem Android-Gerät
450
10.3.2 Die Termux:API
454
10.3.3 Die Termux:API-App mit Node-RED nutzen
456
10.4 Der »Überall-Zugriff« mit ngrok
459
10.5 Fazit
463
11 Dashboards für Fortgeschrittene
465
11.1 Dynamische Dashboard-Steuerung
465
11.2 Der template-Node (Widget)
467
11.2.1 Einfache (statische) HTML-Ausgaben mit dem ui-template-Node
468
11.2.2 Den Eingabeport nutzen
473
11.2.3 ui-template-Node – den Ausgabeport nutzen
481
11.2.4 Statusinformationen im Dashboard-Header ausgeben
483
11.3 Fazit
485
12 Node-RED in andere Dienste integrieren
487
12.1 ioBroker
487
12.1.1 Installation und Inbetriebnahme
488
12.1.2 ioBroker-Objekte: So schalten Sie eine LED
492
12.1.3 ioBroker und Node-RED
493
12.2 Node-RED versus externe Dienste
499
12.3 Fazit
501
13 Eigene Nodes erstellen
503
13.1 Anforderungen definieren
503
13.2 Arbeitsverzeichnis erstellen und ausgestalten
504
13.3 Die Datei package.json generieren
505
13.4 Die Datei <node>.js programmieren
506
13.4.1 Der Rahmen
506
13.4.2 Den Rahmen ausfüllen
507
13.5 Ein Icon erstellen
511
13.6 Die Datei basic-math.html generieren
511
13.7 Den Node basic-math in Node-RED testen
514
13.8 Ausblick
518
13.9 Fazit
519
Anhang
521
Index
535