Im ersten Beitrag dieser Reihe haben wir Node-RED auf einem Raspberry Pi installiert, eingerichtet und abgesichert. Der Dienst läuft nun als Systemservice im Hintergrund und startet automatisch beim Hochfahren des Systems. Dadurch steht die Oberfläche jederzeit zur Verfügung und kann bequem von jedem Rechner im Netzwerk aufgerufen werden – du benötigst lediglich die URL, deinen Benutzernamen und das Passwort.
Nachdem die Grundlage geschaffen ist, wird es nun praktisch.
In diesem Beitrag zeige ich dir, wie du Wetterdaten über eine externe API abrufen kannst. Viele moderne Schnittstellen stellen ihre Daten im JSON-Format bereit. Dieses Format eignet sich besonders gut für Automatisierungen, da es strukturiert aufgebaut und leicht weiterzuverarbeiten ist.
Genau hier spielt Node-RED seine Stärken aus: Die Plattform kann JSON-Daten direkt verarbeiten und innerhalb eines Flows weiterverwenden.
Am Ende dieses Tutorials wirst du wissen, wie du:
- einen HTTP-Request an eine API sendest
- die JSON-Antwort auswertest
- und die Daten innerhalb eines Node-RED Flows weiterverarbeitest
Damit hast du die Grundlage geschaffen, um später eigene Automatisierungen mit externen Datenquellen umzusetzen – zum Beispiel für Smart-Home-Projekte, Wetterstationen oder IoT-Anwendungen.
Welche Wetter API verwenden wir?
Für dieses Tutorial verwenden wir die Wetter-API von Open-Meteo. Diese Schnittstelle eignet sich besonders gut für erste Experimente mit Node-RED, da sie ohne Registrierung und ohne API-Key genutzt werden kann. Dadurch kannst du sofort mit dem Testen beginnen, ohne zunächst Zugangsdaten anlegen zu müssen.
Die API stellt Wetterdaten über einfache HTTP-Requests bereit und liefert die Ergebnisse im JSON-Format zurück. Genau dieses Format lässt sich in Node-RED besonders gut verarbeiten, da JSON-Daten direkt als Objekte innerhalb eines Flows weiterverwendet werden können.
Für unser Beispiel rufen wir die aktuellen Wetterdaten für einen bestimmten Standort ab. Dazu benötigt die API lediglich die geografischen Koordinaten des gewünschten Ortes.
Ein Beispiel für einen solchen Request sieht so aus:
https://api.open-meteo.com/v1/forecast?latitude=52.14619&longitude=10.96095¤t_weather=true
In diesem Beispiel werden die aktuellen Wetterdaten für einen bestimmten Standort abgefragt. Die API liefert daraufhin eine Antwort im JSON-Format zurück, die unter anderem Informationen wie Temperatur, Windgeschwindigkeit oder Windrichtung enthält.
{
"latitude": 52.14,
"longitude": 10.959999,
"generationtime_ms": 0.0560283660888672,
"utc_offset_seconds": 0,
"timezone": "GMT",
"timezone_abbreviation": "GMT",
"elevation": 158,
"current_weather_units": {
"time": "iso8601",
"interval": "seconds",
"temperature": "°C",
"windspeed": "km/h",
"winddirection": "°",
"is_day": "",
"weathercode": "wmo code"
},
"current_weather": {
"time": "2026-03-13T08:45",
"interval": 900,
"temperature": 10.4,
"windspeed": 15.5,
"winddirection": 198,
"is_day": 1,
"weathercode": 0
}
}
Diese Daten werden wir im nächsten Schritt mit Node-RED abrufen und im Flow auswerten.
Hinweis:
Laut Anbieter ist die Nutzung der API für nicht-kommerzielle Anwendungen kostenlos. Für produktive oder kommerzielle Projekte solltest du daher unbedingt die aktuellen Nutzungsbedingungen auf der Website des Anbieters prüfen.
Bedeutung des Weather Codes
Neben klassischen Wetterwerten wie Temperatur, Windgeschwindigkeit oder Windrichtung liefert die API auch einen sogenannten Weather Code. Dabei handelt es sich um einen numerischen Wert, der den aktuellen Wetterzustand beschreibt.
Die Codes basieren auf dem Standard der World Meteorological Organization und werden international verwendet, um Wetterbedingungen eindeutig zu klassifizieren.
Eine vollständige Übersicht dieser Codes findet sich beispielsweise beim National Centers for Environmental Information. Dort ist die offizielle Tabelle der WMO Weather Interpretation Codes (WMO 4677) dokumentiert.
Typische Beispiele sind:
| Code | Bedeutung |
|---|---|
| 0 | Klarer Himmel |
| 1 | Überwiegend klar |
| 2 | Teilweise bewölkt |
| 3 | Bewölkt |
| 45 | Nebel |
| 61 | Leichter Regen |
| 63 | Regen |
| 71 | Schneefall |
Der Vorteil dieser Codes ist, dass sie sich sehr einfach in Automationen verwenden lassen. In Node-RED können wir beispielsweise prüfen, ob ein bestimmter Wettercode vorliegt und darauf reagieren – etwa eine Bewässerung pausieren, wenn Regen erkannt wird, oder eine Benachrichtigung bei schlechtem Wetter senden.
Im nächsten Schritt schauen wir uns an, wie wir die Daten über einen HTTP-Request in Node-RED abrufen und im Flow sichtbar machen.
Wetterdaten in Node-RED per HTTP Request abrufen
Nachdem wir uns angeschaut haben, welche Wetter-API wir verwenden, geht es nun an den eigentlichen Abruf der Daten in Node-RED. Dafür nutzen wir den HTTP Request-Node. Mit diesem Node lässt sich eine externe URL aufrufen, um Daten aus einer API zu laden.
Für unser erstes Beispiel reicht bereits ein sehr einfacher Flow aus:
Der Inject-Node dient dabei als Auslöser. Mit einem Klick auf den Button wird der Flow gestartet.
Der HTTP Request-Node sendet anschließend eine Anfrage an die Wetter-API und lädt die Antwort.
Da viele APIs ihre Daten als JSON-Text zurückgeben, übernimmt die JSON-Node im nächsten Schritt das Umwandeln der Antwort in ein strukturiertes Objekt.
Über den Debug-Node können wir uns die aufbereiteten Daten anschließend direkt in der Debug-Ansicht von Node-RED anzeigen lassen.
Einzelne Wetterdaten aus dem JSON auslesen
Nachdem die Antwort der Wetter-API mit der JSON-Node verarbeitet wurde, liegen die Daten als strukturiertes Objekt vor. Dadurch können wir nun gezielt auf einzelne Elemente zugreifen.

Für unser Beispiel interessieren uns drei Werte aus dem Bereich current_weather:
current_weather.timecurrent_weather.temperaturecurrent_weather.weathercode
Diese Felder enthalten den Zeitstempel der Messung, die aktuelle Temperatur sowie den Wettercode.
"current_weather": {
"time": "2026-03-13T08:45",
"interval": 900,
"temperature": 10.4,
"windspeed": 15.5,
"winddirection": 198,
"is_day": 1,
"weathercode": 0
}
Zugriff auf die Werte
Da sich die Daten im payload der Nachricht befinden, lauten die vollständigen Pfade in Node-RED:
payload.current_weather.timepayload.current_weather.temperaturepayload.current_weather.weathercode

Wetterdaten in eine CSV-Datei speichern
Nachdem wir die gewünschten Werte aus der API-Antwort extrahiert haben, möchten wir diese nun dauerhaft speichern. Eine einfache und weit verbreitete Möglichkeit dafür ist das Schreiben der Daten in eine CSV-Datei. Dieses Format eignet sich besonders gut, da es sich später problemlos mit Programmen wie Excel, LibreOffice Calc oder Python weiterverarbeiten lässt.
Dazu erweitern wir unseren bisherigen Flow um einige zusätzliche Nodes. Zunächst verwenden wir eine Change-Node, um die relevanten Werte aus der API-Antwort zu übernehmen und in ein eigenes Datenobjekt zu überführen. Anschließend sorgt eine CSV-Node dafür, dass diese Daten in das CSV-Format umgewandelt werden.
Zum Abschluss übernimmt eine File-Node das Schreiben der erzeugten Daten in eine Datei auf dem Raspberry Pi. Bei jedem Durchlauf unseres Flows wird somit eine neue Zeile mit den aktuellen Wetterdaten in der Datei gespeichert.
Der erweiterte Flow sieht damit beispielsweise so aus:

In der erzeugten CSV-Datei werden anschließend Zeilen wie diese gespeichert:
2026-03-13T14:00,18.7,3
Damit haben wir eine einfache Möglichkeit geschaffen, Wetterdaten über einen längeren Zeitraum zu sammeln. Diese Daten können später analysiert oder grafisch dargestellt werden, beispielsweise in einem separaten Dashboard oder in einer Tabellenkalkulation.
Hinweis:
Beim Schreiben der Daten kann es vorkommen, dass in der CSV-Datei zusätzliche Leerzeilen erscheinen. Dieses Verhalten ist in Node-RED normal, da die CSV-Node automatisch einen Zeilenumbruch an jede erzeugte Datensatzzeile anhängt.Optisch wirkt das in der Datei zunächst etwas ungewohnt, stellt jedoch kein Problem dar. Beim Import der CSV-Datei in Programme wie Microsoft Excel oder LibreOffice Calc lassen sich solche Leerzeilen problemlos herausfiltern oder ignorieren.
Fazit und Ausblick
Das Abrufen von Daten über eine offene API mit Node-RED ist erstaunlich einfach umzusetzen. Mit nur wenigen Nodes lässt sich ein HTTP-Request an eine externe Schnittstelle senden, die Antwort im JSON-Format verarbeiten und anschließend gezielt einzelne Werte extrahieren.
Auch das Speichern der Daten in einer Datei ist schnell realisiert, sobald man den grundlegenden Aufbau eines Flows verstanden hat. Mit der Kombination aus Change-, CSV- und File-Node können die Wetterdaten strukturiert abgelegt und später problemlos weiterverarbeitet werden.
Damit haben wir nun eine Grundlage geschaffen, um über einen längeren Zeitraum Wetterdaten zu sammeln und auszuwerten.
Im nächsten Beitrag dieser Reihe gehen wir einen Schritt weiter:
Dort lesen wir die gespeicherten Daten aus der CSV-Datei wieder ein und bereiten sie für eine grafische Darstellung auf. Dazu werden wir die Datei zeilenweise einlesen und die enthaltenen Werte weiterverarbeiten, um die Entwicklung von Temperatur und Wetterzustand übersichtlich visualisieren zu können.
Letzte Aktualisierung am: 14. März 2026




