Hallo zusammen,
ich möchte euch zeigen, wie ihr die Daten von Weather Underground in Home Assistant nutzen könnt, ohne euch anmelden zu müssen oder eine eigene Wetterstation zu betreiben. Diese Methode greift auf öffentliche Daten zu, die von privaten Wetterstationen (PWS) bereitgestellt werden.
Schritt 1: Eine Wetterstation in deiner Nähe finden
- Gehe auf die Website von Weather Underground.
- Gib deine PLZ in der Suche ein.
- Der DropDown Change bietet dir verschiedene Stationen in deiner Nähe an. Wähle die, die die am besten für dich ist (Lage und Messwerte).
Schritt 2: Stations-ID extrahieren
- In der URL des Browsers steht nun nach dem Ort die StationID. Beispiel weather/de/frankfurt/IFRANK428 ist die Station ID IFRANK428
Schritt 3: Konfiguration in Home Assistant
Füge die folgenden Einträge in deine configuration.yaml-Datei ein. Achte darauf, den __hier_die_ID__ durch die tatsächlichen StationID zu ersetzen, die du im vorherigen Schritt gefunden hast.
Solltest du schon andere rest oder template Einträge haben, ist natürlich nur der eingerückte Code zu kopieren und an der richtigen Stelle einzufügen!
rest:
- resource: https://api.weather.com/v2/pws/observations/current?apiKey=e1f10a1e78da46f5b10a1e78da96f525&stationId=__hier_die_ID__&numericPrecision=decimal&format=json&units=m
scan_interval: 600 # alle 10 Minuten
sensor:
- name: Wetterstation Aktuell Rohdaten
value_template: >
{{ value_json.observations[0].metric.temp }}
json_attributes:
- observations
template:
- sensor:
- name: Wetter Temperatur
unit_of_measurement: "°C"
device_class: temperature
state_class: measurement
state: >
{{ state_attr('sensor.wetterstation_aktuell_rohdaten', 'observations')[0].metric.temp }}
- name: Wetter Hitzeindex
unit_of_measurement: "°C"
device_class: temperature
state_class: measurement
state: >
{{ state_attr('sensor.wetterstation_aktuell_rohdaten', 'observations')[0].metric.heatIndex }}
- name: Wetter Taupunkt
unit_of_measurement: "°C"
device_class: temperature
state_class: measurement
state: >
{{ state_attr('sensor.wetterstation_aktuell_rohdaten', 'observations')[0].metric.dewpt }}
- name: Wettergefühl (Windchill)
unit_of_measurement: "°C"
device_class: temperature
state_class: measurement
state: >
{{ state_attr('sensor.wetterstation_aktuell_rohdaten', 'observations')[0].metric.windChill }}
- name: Wetter Windgeschwindigkeit
unit_of_measurement: "km/h"
device_class: wind_speed
state_class: measurement
state: >
{{ state_attr('sensor.wetterstation_aktuell_rohdaten', 'observations')[0].metric.windSpeed }}
- name: Wetter Windböe
unit_of_measurement: "km/h"
device_class: wind_speed
state_class: measurement
state: >
{{ state_attr('sensor.wetterstation_aktuell_rohdaten', 'observations')[0].metric.windGust }}
- name: Wetter Luftdruck
unit_of_measurement: "hPa"
device_class: pressure
state_class: measurement
state: >
{{ state_attr('sensor.wetterstation_aktuell_rohdaten', 'observations')[0].metric.pressure }}
- name: Wetter Niederschlagsrate
unit_of_measurement: "mm/h"
device_class: precipitation
state_class: measurement # oder total_increasing, je nach API-Verhalten
state: >
{{ state_attr('sensor.wetterstation_aktuell_rohdaten', 'observations')[0].metric.precipRate }}
- name: Wetter Niederschlag gesamt
unit_of_measurement: "mm"
device_class: precipitation
state_class: measurement # oder total_increasing, je nach API-Verhalten
state: >
{{ state_attr('sensor.wetterstation_aktuell_rohdaten', 'observations')[0].metric.precipTotal }}
- name: Wetter UV Index
unit_of_measurement: "UV Index"
icon: "mdi:sun-wireless-outline"
state_class: measurement
state: >
{{ state_attr('sensor.wetterstation_aktuell_rohdaten', 'observations')[0].uv }}
- name: Wetter Solarstrahlung
unit_of_measurement: "W/m²"
device_class: illuminance # Annäherung
state_class: measurement
state: >
{{ state_attr('sensor.wetterstation_aktuell_rohdaten', 'observations')[0].solarRadiation }}
- name: Wetter Luftfeuchtigkeit
unit_of_measurement: "%"
device_class: humidity
state_class: measurement
state: >
{{ state_attr('sensor.wetterstation_aktuell_rohdaten', 'observations')[0].humidity }}
- name: Wetter Windrichtung
unit_of_measurement: "°"
icon: "mdi:compass-outline"
state: >
{{ state_attr('sensor.wetterstation_aktuell_rohdaten', 'observations')[0].winddir }}
- name: Wetter Ortsteil
state: >
{{ state_attr('sensor.wetterstation_aktuell_rohdaten', 'observations')[0].neighborhood }}
- name: Wetter Software Version
state: >
{{ state_attr('sensor.wetterstation_aktuell_rohdaten', 'observations')[0].softwareType }}
Schritt 4: Home Assistant neu starten
In den Entwicklungswerkzeugen prüfen, ob irgendwelche Probleme mit der YAML bestehen. Leerzeichen, doppelte Einträge… yaml mag das alles nur ganz speziell. Starte Home Assistant neu, damit die Änderungen in der configuration.yaml übernommen werden.
Schritt 5: Sensoren nutzen
Nach dem Neustart solltest du die verschiedenen Wettersensoren in Home Assistant zur Verfügung haben und sie in deinem Dashboard oder in Automatisierungen nutzen können.
Hinweise
- Ich übernehme keine Schuld, wenn du dir deine yaml zerhaust!
- Der
scan_intervalimrest-Sensor ist auf 600 Sekunden (10 Minuten) eingestellt. Du kannst diesen Wert anpassen, aber beachte, dass zu häufige Abfragen möglicherweise gegen die Nutzungsbedingungen von Weather Underground verstoßen könnten. - Die hier gezeigten Sensoren sind nur Beispiele. Je nach den von der Wetterstation bereitgestellten Daten kannst du weitere Sensoren hinzufügen oder die bestehenden anpassen.
- Bitte beachte, dass sich die API von Weather Underground ändern könnte. Diese Anleitung basiert auf dem aktuellen Stand und könnte in Zukunft angepasst werden müssen.
Ich hoffe, diese Anleitung hilft euch weiter! Wenn ihr Fragen oder Anregungen habt, lasst es mich wissen.
Backup - falls der APIKey sich ändert
Zum Stand Mai 2025 ist der API Key bei allen Nutzer der gleiche gewesen.
Daher ist dieser nun fest in dem Script enthalten. Sollte das Script nicht mehr funktionieren, ist zu prüfen, ob sich der API Key geändert hat und dieser ggf. zu ersetzen.
Dazu:
- Sobald die Seite der Wetterstation geladen ist, öffne den Quellcode der Seite (Rechtsklick → “Seitenquelltext anzeigen” oder ähnlich).
- Suche im Quellcode nach dem Begriff
https://api.weather.com/v2/pws/dailysummary/1day. Der das im Quellcode nicht findet, der sucht bitte nachhttps://api.weather.com/v2/astro
oderhttps://api.weather.com/v2/pws/observations/current - In dem zugehörigen Code-Abschnitt findest du den apiKey und die stationId der gewählten Wetterstation. Prüfe ob diese mit
e1f10a1e78da46f5b10a1e78da96f525übereinstimmt. Sonst ersetze das im Script.
by tarag: Beitrag auf Wunsch des Autors aktualisiert