DWD Wettervorhersage und stündliche Messdaten für ioBroker
HINWEIS: Dieses Projekt ist ein privates Open-Source-Projekt und steht in keiner Verbindung zum Deutschen Wetterdienst (Copyright).
Der JavaScript-Code in ioBroker verwendet einen JSON-Datensatz von der API des Deutschen Wetterdienstes https://dwd.api.bund.dev, um automatisch entsprechende Datenpunkte für eine Wettervorhersage zu erstellen. Ebenso können stündliche Messdaten (POI) über https://opendata.dwd.de (CSV-Datei) geladen werden und entsprechende Datenpunkte werden erstellt. Durch die regelmäßige Aktualisierung der Datenpunkte bleiben die Informationen stets auf dem neuesten Stand. Dies ermöglicht eine einfache Integration der Wetterdaten in Visualisierungen und Automatisierungen innerhalb von ioBroker.
Folgende Funktionen und Optionen sind im Code enthalten:
- Der Code verwendet das Node.js-Modul 'axios' für HTTP-Anfragen.
- Variable enableLogs ermöglicht das Aktivieren oder Deaktivieren von Logs, die Informationen über den Skriptablauf liefern.
- Variable stationIds enthält eine Liste von Station-IDs für den Wetterdienst. Hier können beliebig viele Station-IDs hinzugefügt werden, getrennt durch Kommas.
- Variable stationIdentifiers ist für die Stationskennung (wenn bekannt, stündliche Messdaten von DWD Wetterstationen). Es können beliebig viele Station-Identifiers hinzugefügt werden, getrennt durch Kommas.
- Die Optionen enableForecast1 und enableForecast2 steuern das Aktualisieren der Datenpunkte für forecast1 und forecast2. Du kannst sie auf true setzen, um die entsprechenden Datenpunkte zu aktivieren.
- Variable splitArrays steuert das Aufteilen von Array-Werten in separate Datenpunkte (nur forecast1 und forecast2). Bei Bedarf können Array-Werte auf diese Weise aufgeteilt werden.
- Die Funktionen createStateIfNotExists() und setStateIfChanged() werden verwendet, um Datenpunkte zu erstellen und ihre Werte zu aktualisieren, wenn sich die Werte geändert haben.
- Ungenutzte Datenpunkte (Stationen) können manuell über die ioBroker-Admin-Oberfläche gelöscht werden.
- Die Funktion convertToISODate() wird genutzt, um Linux-Zeitformate in das ISO-Datumformat zu konvertieren, insbesondere für die Werte "sunrise", "sunset", "moonrise" und "moonset".
- Die Funktionen updateDataPoints() und updateWeatherData() aktualisieren die Datenpunkte anhand der abgerufenen Wetterdaten. Dabei werden sowohl die Vorhersagen (forecast1 und forecast2) als auch die Tagesdaten aktualisiert.
- Der Code enthält eine Funktion updateCurrentObservations(), die die aktuellen Messdaten aus einer CSV-Datei aktualisiert, sofern eine Stationskennung angegeben ist. Hierbei werden die stündlichen Messdaten aus der CSV-Datei extrahiert und in entsprechende Datenpunkte geschrieben.
- Es werden regelmäßige Aktualisierungen der Wetterdaten und aktuellen Messdaten geplant.
Bitte beachte, dass es sich um eine Beta-Version handelt, was bedeutet, dass weitere Verbesserungen und Anpassungen möglich und erforderlich sein können. Das Skript kann als Ausgangspunkt für weitere Entwicklungen und Anpassungen dienen, um zusätzliche Funktionen hinzuzufügen oder spezifische Anforderungen zu erfüllen.
PS: Mir ist kein Echtzeit-Wetterdatenservice des DWD bekannt. Falls jemand darüber Bescheid weiß, würde ich mich über eine entsprechende Information freuen.
Dieses Projekt ist unter der MIT-Lizenz lizenziert. Weitere Informationen finden Ihr in der Lizenzdatei.