Inhaltsverzeichnis

Alle Kapitel aufklappen
Alle Kapitel zuklappen
Materialien zum Buch
15
Einleitung
17
1 Node-RED – das Setup: So starten Sie
25
1.1 Node-RED – das zentrale Element
25
1.2 Node-RED aufsetzen
27
1.2.1 Node-RED auf einem Android-Gerät
28
1.2.2 Node-RED auf einem Windows-PC
28
1.2.3 Node-RED auf einem Raspberry Pi
32
1.2.4 Node-RED auf einem Linux-System
35
1.3 Node-RED überall: Docker-Container starten
35
1.3.1 Docker auf einem Ubuntu-System
36
1.3.2 Docker auf dem Raspberry Pi
37
1.3.3 Node-RED in Docker ausführen
38
1.4 Die Ausgaben von Node-RED beim Start
39
1.5 Node-RED administrieren
41
1.5.1 Dateien und Ordner
41
1.5.2 Dateien unter Docker
43
1.5.3 Einstellungen von Node-RED ändern
43
1.6 Node-RED absichern
45
1.6.1 Passwortschutz für den Node-RED-Editor
46
1.6.2 HTTPS aktivieren
47
1.6.3 Sicherheit für den http-in-Node
52
1.7 Node-RED Projekte
52
1.8 Fazit
63
2 Das zentrale Tool: der Node-RED-Editor
65
2.1 Den Node-RED-Editor in einem Browser öffnen
65
2.2 Die Kopfleiste
67
2.2.1 Die Schaltfläche deploy
67
2.2.2 Die Benutzerauthentifikation
69
2.2.3 Das Hauptmenü
70
2.3 Die Node-Palette
79
2.3.1 Das Register Nodes
80
2.3.2 Das Register Installieren
81
2.4 Der Arbeitsbereich
87
2.4.1 Die Verwaltungsleiste für die Flows
88
2.4.2 Der Flow-Design-Bereich
89
2.4.3 Die Fußleiste
94
2.4.4 Das Kontextmenü
95
2.5 Die rechte Seitenleiste
96
2.5.1 Das Register info
96
2.5.2 Das Register Hilfe
98
2.5.3 Das Register Debugging
98
2.5.4 Das Register Konfiguration
99
2.5.5 Das Register Kontext
100
2.5.6 Das Register Dashboard
100
2.6 Der erste Flow
100
2.7 Gute Programmierung
102
2.7.1 Die Flow-Struktur
103
2.7.2 Das Message-Design
110
2.7.3 Die Dokumentation
110
2.8 Flows mit dem Flow-Debugger debuggen
111
2.9 Probleme mit nrlinter aufspüren
115
2.9.1 Installation
115
2.9.2 Mit nrlinter arbeiten
116
2.10 Fazit
117
3 Das Fundament: die Basics von Node-RED
119
3.1 Das Message-Konzept von Node-RED
119
3.1.1 JSON – das Datenformat für den Datenaustauch
119
3.1.2 Messages in Node-RED
123
3.2 Die Geschwister inject-Node und debug-Node
127
3.2.1 Der inject-Node
127
3.2.2 Der debug-Node
129
3.3 Messages manipulieren: Der change-Node und seine Begleiter
131
3.3.1 Der switch-Node
132
3.3.2 Der change-Node
134
3.4 Der delay-Node
135
3.5 Dateiformate konvertieren
136
3.6 Auf Prozessereignisse reagieren
138
3.6.1 Der status-Node
138
3.6.2 Der complete-Node
139
3.6.3 Der catch-Node
140
3.7 Sequenzen (Folgen)
141
3.8 Fazit
147
4 Das Node-RED-Dashboard
149
4.1 Installation
149
4.2 Browseraufruf und Einstellungen
151
4.3 Der Schnelleinstieg: So erstellen Sie Ihre erste Dashboard-Ausgabe
151
4.3.1 Schritt 1: Den button-Node konfigurieren und eine Dashboard-Gruppe erstellen
152
4.3.2 Schritt 2: Den Dashboard-Tab festlegen
152
4.3.3 Schritt 3: Den trigger-Node einstellen
153
4.3.4 Schritt 4: Die Dashboard-Ausgabe starten
154
4.4 Das Dashboard-Design bestimmen
154
4.4.1 Icons
155
4.4.2 Die rechte Seitenleiste
156
4.4.3 Die Konfiguration von Tabs und Gruppen
160
4.5 Die Dashboard-Widgets in Aktion
162
4.5.1 Der button-Node
163
4.5.2 Der dropdown-Node
164
4.5.3 Der switch-Node
166
4.5.4 Der slider-Node
167
4.5.5 Der numeric-Node
168
4.5.6 Der text-input-Node
169
4.5.7 Der form-Node
170
4.5.8 Die beiden function-Nodes und der template-Node
171
4.6 Charts und Messanzeigen mit dem Raspberry Pi
172
4.6.1 Sensoren schalten und das benötigte Paket installieren
173
4.6.2 Die LEDs schalten
175
4.6.3 Wetterdaten erheben und ausgeben
176
4.7 Das Diagramm-Kaleidoskop
181
4.8 Fazit
183
5 Funktionen programmieren
185
5.1 Einsatz und Funktionsweise des function-Nodes
186
5.1.1 Eingangsnachrichten lesen
187
5.1.2 Nachrichten erstellen
188
5.1.3 Code zur Ausführung bei setup und close
192
5.1.4 Ereignisse loggen
193
5.1.5 Das Erscheinungsbild ändern
193
5.2 Programmierung mit JavaScript
194
5.2.1 Codeeditoren
194
5.2.2 Zeichen, Kommentare und Begriffe
195
5.2.3 Daten und Datentypen
197
5.2.4 Variablen und Konstanten
198
5.2.5 Ausdrücke und Operatoren
203
5.2.6 Das Array-Objekt (Tabellen)
210
5.2.7 Das Date-Objekt
213
5.2.8 Funktionen
217
5.2.9 Kontrollstrukturen
220
5.3 Programmbeispiele für den function-Node
229
5.3.1 Eine Zeichenfolge aufteilen
229
5.3.2 Eine Nachricht verzögern
230
5.3.3 Auf eine Umgebungsvariable zugreifen
231
5.3.4 Zusätzliche Module nachladen
231
5.3.5 Mit Kontextvariablen arbeiten
232
5.3.6 Nachrichten zusammenführen
233
5.3.7 Mit Puffern arbeiten
234
5.4 Externe Module laden
235
5.4.1 Den Hostnamen ausgeben
236
5.4.2 Den RGB-Farbwert prüfen
236
5.5 Der Monaco-Codeeditor
238
5.6 Fazit
238
6 Daten über Netzwerkprotokolle abrufen
239
6.1 Daten von einem Server im Netz abrufen
239
6.1.1 Grundlagen von HTTP-Verbindungen
240
6.1.2 Die Nodes nutzen
244
6.2 MQTT: das IoT-Protokoll
267
6.2.1 Installation und ein Flow für den Einstieg
269
6.2.2 Einen eigenen MQTT-Broker aufsetzen
273
6.2.3 Node-RED an den Mosquitto-Broker anbinden
276
6.2.4 Der Sonoff-Basic-Universalschalter
276
6.3 Arduino & Co. über USB anbinden
282
6.4 Fazit
289
7 Daten mit Node-RED teilen
291
7.1 E-Mails versenden
291
7.1.1 Das E-Mail-Konto konfigurieren
292
7.1.2 Der E-Mail-Versand
293
7.1.3 Der E-Mail-Empfang
299
7.2 Instant-Messaging und Bots mit Telegram
302
7.2.1 Instant Messaging
302
7.2.2 Bots
303
7.2.3 Telegram
303
7.3 Geräte mit Pushbullet vernetzen
320
7.3.1 Pushbullet einrichten
321
7.3.2 Erste Schritte mit der Pushbullet-API
323
7.3.3 Pushbullet für Node-RED
326
7.4 Sprachsteuerung mit Alexa
331
7.5 Google-Dienste integrieren
337
7.6 Mit künstlicher Intelligenz experimentieren
345
7.7 Fazit
349
8 Daten speichern und archivieren
351
8.1 Kontextvariablen
351
8.1.1 Kontextvariablen vom Typ node
352
8.1.2 Kontextvariablen vom Typ flow
353
8.1.3 Kontextvariablen vom Typ global
356
8.1.4 Kontextvariablen im Dateisystem speichern
356
8.2 Daten in Dateien speichern
357
8.2.1 Messdaten speichern und wieder auslesen
359
8.2.2 Dateimanager
365
8.3 Node-RED und InfluxDB
368
8.3.1 InfluxDB, eine Time Series Database
370
8.3.2 InfluxDB installieren
372
8.3.3 Die ersten Schritte mit InfluxDB
373
8.3.4 Mit Node-RED Daten in InfluxDB speichern
379
8.3.5 Mit Node-RED Daten aus der InfluxDB auslesen
381
8.3.6 Die InfluxDB sauber halten
386
8.4 Node-RED und SQLite
389
8.4.1 Aufbau einer SQLite-Datenbank
389
8.4.2 SQLite installieren
392
8.4.3 Mit Node-RED Daten in der SQLite-Datenbank speichern
396
8.4.4 Mit Node-RED Daten aus der SQLite-Datenbank löschen
398
8.4.5 Mit Node-RED Daten aus der SQLite-Datenbank auslesen
398
8.5 Fazit
399
9 Node-RED-Hacks
401
9.1 Python-Skripte einbinden
401
9.2 Timer
403
9.2.1 Ausgaben
405
9.2.2 Timersteuerung
406
9.2.3 Erweiterte Möglichkeiten
406
9.3 »Himmelserscheinungen« auswerten
407
9.4 Wetterdaten mit OpenWeatherMap
410
9.4.1 Das openweathermap-Konto
410
9.4.2 Eine Wetteransage
411
9.4.3 Ein Frostwächter
413
9.5 Zeitangaben formatieren
414
9.5.1 Der Node Date/Time Formatter
414
9.5.2 Der humanizer-Node
416
9.6 Mit Bilddateien arbeiten
417
9.7 Einen QR-Code generieren
419
9.8 Geräte mit Ping orten
421
9.8.1 Anwesenheitsmitteilung senden
421
9.8.2 Alarmanlage aktivieren
423
9.8.3 Erreichbarkeit eines Servers überprüfen
424
9.9 Auf eine FRITZ!Box zugreifen
425
9.9.1 Anwesenheitsbenachrichtigung
426
9.9.2 Benachrichtigung bei Anrufen
429
9.9.3 Gastzugang schalten
429
9.10 FTP – Daten zwischen Rechnern übertragen
432
9.10.1 Einen FTP-Server aufsetzen
432
9.10.2 Das Verzeichnis mit Node-RED lesen
435
9.10.3 Node-RED-Konfigurationsdateien sichern
437
9.11 Fazit
439
10 Apps und externe Anbindung
441
10.1 Apps aus den App-Stores
441
10.2 Blynk 2.0
442
10.2.1 Mit Blynk auf den Raspberry Pi zugreifen
442
10.2.2 Blynk und Node-RED kommunizieren miteinander
452
10.3 Die Termux-App
459
10.3.1 Node-RED auf dem Android-Gerät
459
10.3.2 Die Termux:API
462
10.3.3 Die Termux:API-App mit Node-RED nutzen
464
10.4 Der »Überall-Zugriff« mit ngrok
467
10.5 Fazit
471
11 Dashboards für Fortgeschrittene
473
11.1 Dynamische Dashboard-Steuerung
473
11.2 Der template-Node (Widget)
475
11.2.1 Einfache (statische) HTML-Ausgaben mit dem ui-template-Node
476
11.2.2 Den Eingabeport nutzen
482
11.2.3 ui-template-Node – den Ausgabeport nutzen
490
11.2.4 Statusinformationen im Dashboard-Header ausgeben
492
11.3 Ein aufwendigeres Beispiel
494
11.4 Ein alternatives Dashboard mit uibuilder
497
11.5 Fazit
508
12 Node-RED in andere Dienste integrieren
509
12.1 ioBroker
509
12.1.1 Installation und Inbetriebnahme
510
12.1.2 ioBroker-Objekte: So schalten Sie eine LED
514
12.1.3 ioBroker und Node-RED
516
12.2 Node-RED versus externe Dienste
521
12.3 Fazit
523
13 Eigene Nodes erstellen
525
13.1 Anforderungen definieren
525
13.2 Arbeitsverzeichnis erstellen und ausgestalten
526
13.3 Die Datei package.json generieren
527
13.4 Die Datei <node>.js programmieren
528
13.4.1 Der Rahmen
528
13.4.2 Den Rahmen ausfüllen
529
13.5 Ein Icon erstellen
533
13.6 Die Datei basic-math.html generieren
533
13.7 Den Node basic-math in Node-RED testen
536
13.8 Ausblick
540
13.9 Fazit
541
14 Mit Node-RED Mikrocontroller programmieren
543
14.1 Der Soft- und Hardwarerahmen
544
14.2 Installation von Moddable
544
14.3 Den Mikrocontroller an Moddable anbinden
547
14.4 Einrichtung in Node-RED und Test
549
Index
553