Inhaltsverzeichnis

Alle Kapitel aufklappen
Alle Kapitel zuklappen
Materialien zum Buch
14
Einleitung
15
1 Node-RED – das Setup: So starten Sie
21
1.1 Node-RED – das zentrale Element
21
1.2 Node-RED aufsetzen
23
1.2.1 Node-RED auf einem Android-Gerät
24
1.2.2 Node-RED auf einem Windows-PC
24
1.2.3 Node-RED auf einem Raspberry Pi
28
1.2.4 Node-RED auf einem Linux-System
30
1.2.5 Node-RED in der IBM-Cloud
31
1.3 Node-RED überall: Docker-Container starten
31
1.3.1 Docker auf einem Ubuntu-System
31
1.3.2 Docker auf dem Raspberry Pi
32
1.3.3 Node-RED in Docker ausführen
33
1.4 Die Ausgaben von Node-RED beim Start
35
1.5 Node-RED administrieren
36
1.5.1 Dateien und Ordner
36
1.5.2 Dateien unter Docker
38
1.5.3 Einstellungen von Node-RED ändern
38
1.6 Node-RED absichern
40
1.6.1 Passwortschutz für den Node-RED-Editor
41
1.6.2 HTTPS aktivieren
42
1.6.3 Sicherheit für den http-in-Node
47
1.7 Node-RED Projekte
47
1.8 Fazit
57
2 Das zentrale Tool: Der Node-RED-Editor
59
2.1 Den Node-RED-Editor in einem Browser öffnen
59
2.2 Die Kopfleiste
61
2.2.1 Die Schaltfläche »deploy«
61
2.2.2 Die Benutzerauthentifikation
63
2.2.3 Das Hauptmenü
63
2.3 Die Node-Palette
73
2.3.1 Der Reiter Nodes
74
2.3.2 Der Reiter Installieren
76
2.4 Der Arbeitsbereich
81
2.4.1 Die Verwaltungsleiste für die Flows
82
2.4.2 Der Flow-Design-Bereich
83
2.4.3 Die Fußleiste
89
2.4.4 Das Context-Menü
90
2.5 Die rechte Seitenleiste
90
2.5.1 Der Reiter Info
91
2.5.2 Der Reiter Hilfe
92
2.5.3 Der Reiter Debugging
93
2.5.4 Der Reiter Konfiguration
94
2.5.5 Der Reiter Kontext
94
2.5.6 Der Reiter Dashboard
94
2.6 Der erste Flow
95
2.7 Gute Programmierung
96
2.7.1 Die Flow-Struktur
97
2.7.2 Das Message-Design
104
2.7.3 Die Dokumentation
105
2.8 Flows mit dem Flow-Debugger debuggen
105
2.9 Probleme mit nrlinter aufspüren
109
2.9.1 Installation
109
2.9.2 Mit nrlinter arbeiten
110
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
125
3.3.1 Der switch-Node
126
3.3.2 Der change-Node
128
3.4 Der delay-Node
129
3.5 Dateiformate konvertieren
130
3.6 Auf Prozessereignisse reagieren
132
3.6.1 Der status-Node
132
3.6.2 Der complete-Node
133
3.6.3 Der catch-Node
134
3.7 Sequenzen (Folgen)
135
3.8 Fazit
141
4 Das Node-RED-Dashboard
143
4.1 Installation
143
4.2 Browser-Aufruf und Einstellungen
145
4.3 Der Schnelleinstieg: So erstellen Sie Ihre erste Dashboard-Ausgabe
145
4.3.1 Schritt 1: Den button-Node konfigurieren und eine Dashboard-Gruppe erstellen
146
4.3.2 Schritt 2: Den Dashboard-Tab festlegen
146
4.3.3 Schritt 3: Den trigger-Node einstellen
147
4.3.4 Schritt 4: Die Dashboard-Ausgabe starten
148
4.4 Das Dashboard-Design bestimmen
148
4.4.1 Icons
149
4.4.2 Die rechte Seitenleiste
150
4.4.3 Die Konfiguration von Tabs und Gruppen
154
4.5 Die Dashboard-Widgets in Aktion
156
4.5.1 Der button-Node
157
4.5.2 Der dropdown-Node
158
4.5.3 Der switch-Node
160
4.5.4 Der slider-Node
161
4.5.5 Der numeric-Node
162
4.5.6 Der text-input-Node
163
4.5.7 Der form-Node
164
4.5.8 Die beiden function-Nodes und der template-Node
165
4.6 Charts und Messanzeigen mit dem Raspberry Pi
166
4.6.1 Sensoren schalten und das benötigte Paket installieren
167
4.6.2 Die LEDs schalten
168
4.6.3 Wetterdaten erheben und ausgeben
169
4.7 Das Diagramm-Kaleidoskop
174
4.8 Fazit
176
5 Funktionen programmieren
177
5.1 Einsatz und Funktionsweise des function-Nodes
177
5.1.1 Eingangsnachrichten lesen
178
5.1.2 Nachrichten erstellen
180
5.1.3 Code zur Ausführung bei setup und close
184
5.1.4 Ereignisse loggen
184
5.1.5 Das Erscheinungsbild ändern
185
5.2 Programmierung mit JavaScript
185
5.2.1 Code-Editoren
185
5.2.2 Zeichen, Kommentare und Begriffe
186
5.2.3 Daten und Datentypen
189
5.2.4 Variablen und Konstanten
189
5.2.5 Ausdrücke und Operatoren
194
5.2.6 Das Array-Objekt (Tabellen)
202
5.2.7 Das Date-Objekt
204
5.2.8 Funktionen
208
5.2.9 Kontrollstrukturen
211
5.3 Programmbeispiele für den function-Node
219
5.3.1 Eine Zeichenfolge aufteilen
220
5.3.2 Eine Nachricht verzögern
220
5.3.3 Auf eine Umgebungsvariable zugreifen
221
5.3.4 Zusätzliche Module nachladen
222
5.3.5 Mit Kontextvariablen arbeiten
222
5.3.6 Nachrichten zusammenführen
224
5.3.7 Mit Puffern arbeiten
224
5.4 Externe Module laden
225
5.4.1 Den Hostnamen ausgeben
226
5.4.2 Den RGB-Farbwert prüfen
227
5.5 Der Monaco-Code-Editor
228
5.6 Fazit
229
6 Daten über Netzwerkprotokolle abrufen
231
6.1 Daten von einem Server im Netz abrufen
231
6.1.1 Grundlagen von HTTP-Verbindungen
232
6.1.2 Die Nodes nutzen
236
6.2 MQTT: Das IoT-Protokoll
259
6.2.1 Installation und ein Flow für den Einstieg
261
6.2.2 Einen eigenen MQTT-Broker aufsetzen
265
6.2.3 Node-RED an den Mosquitto-Broker anbinden
268
6.2.4 Der Sonoff-Basic-Universalschalter
268
6.3 Arduino & Co. über USB anbinden
274
6.4 Fazit
282
7 Daten mit Node-RED teilen
283
7.1 E-Mails versenden
283
7.1.1 Das E-Mail-Konto konfigurieren
284
7.1.2 Der E-Mail-Versand
285
7.1.3 Der E-Mail-Empfang
290
7.2 Instant-Messaging und Bots mit Telegram
294
7.2.1 Instant Messaging
294
7.2.2 Bots
295
7.2.3 Telegram
295
7.3 Auf die Twitter-API zugreifen
312
7.3.1 Tweets senden
312
7.3.2 Tweets empfangen
317
7.4 Geräte mit Pushbullet vernetzen
322
7.4.1 Pushbullet einrichten
323
7.4.2 Erste Schritte mit der Pushbullet-API
325
7.4.3 Pushbullet für Node-RED
328
7.5 Sprachsteuerung mit Alexa
333
7.6 Google-Dienste integrieren
339
7.7 Fazit
347
8 Daten speichern und archivieren
349
8.1 Kontextvariablen
349
8.1.1 Kontextvariablen vom Typ node
350
8.1.2 Kontextvariablen vom Typ flow
352
8.1.3 Kontextvariablen vom Typ global
354
8.1.4 Kontextvariablen im Dateisystem speichern
354
8.2 Daten in Dateien speichern
355
8.2.1 Messdaten speichern und wieder auslesen
357
8.2.2 Dateimanager
363
8.3 Node-RED und InfluxDB
367
8.3.1 InfluxDB, eine Time Series Database
367
8.3.2 InfluxDB installieren
369
8.3.3 Die ersten Schritte mit InfluxDB
371
8.3.4 Mit Node-RED Daten in InfluxDB speichern
376
8.3.5 Mit Node-RED Daten aus der InfluxDB auslesen
379
8.3.6 Die InfluxDB sauber halten
383
8.4 Node-RED und SQLite
387
8.4.1 Aufbau einer SQLite-Datenbank
387
8.4.2 SQLite installieren
390
8.4.3 Mit Node-RED Daten in der SQLite-Datenbank speichern
393
8.4.4 Mit Node-RED Daten aus der SQLite-Datenbank löschen
395
8.4.5 Mit Node-RED Daten aus der SQLite-Datenbank auslesen
396
8.5 Fazit
396
9 Node-RED-Hacks
397
9.1 Python-Skripte einbinden
397
9.2 Timer
399
9.2.1 Ausgaben
401
9.2.2 Timersteuerung
402
9.2.3 Erweiterte Möglichkeiten
402
9.3 »Himmelserscheinungen« auswerten
403
9.4 Wetterdaten mit OpenWeatherMap
406
9.4.1 Das openweathermap-Konto
406
9.4.2 Eine Wetteransage
407
9.4.3 Ein Frostwächter
409
9.5 Zeitangaben formatieren
410
9.5.1 Der Node Date/Time Formatter
410
9.5.2 Der humanizer-Node
412
9.6 Mit Bilddateien arbeiten
413
9.7 Einen QR-Code generieren
415
9.8 Geräte mit Ping orten
417
9.8.1 Anwesenheitsmitteilung senden
418
9.8.2 Alarmanlage aktivieren
419
9.8.3 Erreichbarkeit eines Servers überprüfen
420
9.9 Funktionalitäten einer FRITZ!Box nutzen
422
9.9.1 Anwesenheitsbenachrichtigung
423
9.9.2 Benachrichtigung bei Anrufen
425
9.9.3 Gastzugang schalten
426
9.10 FTP – Daten zwischen Rechnern übertragen
429
9.10.1 Einen FTP-Server aufsetzen
429
9.10.2 Das Verzeichnis mit Node-RED lesen
432
9.10.3 Node-RED-Konfigurationsdateien sichern
434
9.11 Fazit
436
10 Apps und externe Anbindung
437
10.1 Apps aus den App-Stores
437
10.2 Blynk
438
10.2.1 Mit Blynk auf den Raspberry Pi zugreifen
438
10.2.2 Blynk und Node-RED kommunizieren miteinander
446
10.3 Die Termux-App
452
10.3.1 Node-RED auf dem Android-Gerät
452
10.3.2 Die Termux:API
456
10.3.3 Die Termux:API-App mit Node-RED nutzen
458
10.4 Der »Überall-Zugriff« mit ngrok
461
10.5 Fazit
465
11 Dashboards für Fortgeschrittene
467
11.1 Dynamische Dashboard-Steuerung
467
11.2 Der template-Node (Widget)
469
11.2.1 Einfache (statische) HTML-Ausgaben mit dem ui-template-Node
470
11.2.2 Den Eingabeport nutzen
475
11.2.3 ui-template-Node – den Ausgabeport nutzen
483
11.2.4 Statusinformationen im Dashboard-Header ausgeben
485
11.3 Fazit
487
12 Node-RED in andere Dienste integrieren
489
12.1 ioBroker
489
12.1.1 Installation und Inbetriebnahme
490
12.1.2 ioBroker-Objekte: So schalten Sie eine LED
494
12.1.3 ioBroker und Node-RED
495
12.2 Node-RED versus externe Dienste
501
12.3 Fazit
503
13 Eigene Nodes erstellen
505
13.1 Anforderungen definieren
505
13.2 Arbeitsverzeichnis erstellen und ausgestalten
506
13.3 Die Datei package.json generieren
507
13.4 Die Datei <node>.js programmieren
508
13.4.1 Der Rahmen
508
13.4.2 Den Rahmen ausfüllen
509
13.5 Ein Icon erstellen
513
13.6 Die Datei basic-math.html generieren
513
13.7 Den Node basic-math in Node-RED testen
516
13.8 Ausblick
520
13.9 Fazit
521
A Anhang
523
A.1 Node-RED in der IBM-Cloud
523
A.2 Verwendete Software und Softwareversionen
535
Index
537