
Viele Smart-Home-Systeme greifen auf allgemeine Wetterdaten zurück. Diese sind allerdings häufig ungenau oder zu weit vom eigenen Standort entfernt. Ich zeige dir, wie du die Daten einer örtlichen Wetterstation von einer Webseite ausliest und für deine Automatisierungen nutzen kannst – ganz einfach mit Home Assistant!
🔧 Voraussetzungen
Um das Ganze umzusetzen, benötigst du:
- Eine installierte und eingerichtete Instanz von Home Assistant
- Zugriff auf eine Webseite mit Wetterdaten einer lokalen Wetterstation
- Grundkenntnisse in Automatisierungen und Template-Sensoren in Home Assistant
🧩 Wetterdaten abrufen – So funktioniert’s
Wir nutzen die Integration von Wetterdaten über RESTful Sensoren, um Informationen wie:
- Regenstatus
- Windgeschwindigkeit
- Wetterlage (z.B. sonnig, bewölkt)
- Temperatur
auszulesen. Diese Daten werden anschließend in eigene Sensoren überführt, die Home Assistant versteht und in Automatisierungen verwendet.
Zunächst müssen wir uns auf die Seite von Weather Underground begeben. Dort lasst euch den Quelltext anzeigen und kopiert diesen in einen Editor Tool ( z.B. von Windows).
Um den API Eintrag zu finden, sucht nach der Zeichenkette
https://api.weather.com/v2/pws/observations/current
Kopiert euch die gesamte Zeichenkette inklusive apiKey und stationId und passt den Inhalt wie folgt an.
https://api.weather.com/v2/pws/observations/current?apiKey=**deinAPI-KEY**&stationId=**deineStationID**&numericPrecision=decimal&format=json&units=m
die „**“ sind nur zur eindeutigen Identifizierung zu verstehen und nicht dem Key und der StationID hinzuzufügen!
Als nächstes geht mit dem Editor eurer Wahl ( z.B. File Editor oder Studio Code Server ) in eurer Home Assistant Instanz und fügt in der configuration.yaml einen neuen Rest Sensor ein.
rest: - resource: https://api.weather.com/v2/pws/observations/current?apiKey=**deinAPI-KEY**&stationId=**deineStationID**&numericPrecision=decimal&format=json&units=m scan_interval: 600 sensor: - name: Wetterstation Lahr unique_id: 82413cbe-2261-4d41-a7f4-c271cba75645 #hier musst du eine eigene eindeutige ID erstellen ! value_template: > {{ value_json.observations[0].metric.temp }} json_attributes: - observations
Hinweis: Bitte geht nicht unter 600 Sekunden beim Scan Interval. In der Regel sehen es die Betreiber einer Website nicht gerne , wenn zu viele Abfragen von einer IP – Adresse kommen. Mit den 600 Sekunden solltet ihr auf der sicheren Seite sein.
⚙️ Automatisierung der Markise
Die Logik ist einfach:
- Wenn es regnet oder starker Wind herrscht, fährt die Markise automatisch ein.
- Bei Sonne und angenehmen Bedingungen fährt sie aus.
Die Automatisierung lässt sich natürlich noch weiter verfeinern – zum Beispiel durch Tageszeiten oder Anwesenheit.
Template Helfer Sensoren erstellen
Der nächste wichtige Schritt ist aus den Daten, die nun im Sensor Wetterstation Lahr (obervations) stehen alle relevanten Daten für eine Automatisierung auszulesen.

Dazu legt euch 4 Helfer an vom Typ Template Sensor


Hinweis: Bei mir habe ich die Wetterstation „’sensor.wetterstation_lahr“ genannt. Hier müsst ihr in allen Code Zeilen den von euch vergebenen Namen verwenden!
Wetterstation Lahr Windgeschwindigkeit
{{ state_attr('sensor.wetterstation_Lahr', 'observations')[0]['metric']['windSpeed'] }}
Einheit : km/h
Wetterstation Lahr Wetterlage
{% set obs = state_attr('sensor.wetterstation_Lahr', 'observations')[0] %} {% set radiation = obs['solarRadiation'] %} {% set uv = obs['uv'] %} {% set precip = obs['metric']['precipRate'] %} {% if precip > 0 %} regen {% elif radiation < 100 or uv <= 1 %} bewölkt {% elif radiation < 500 or uv < 3 %} leicht bewölkt {% else %} sonnig {% endif %}
Einheit: keine
Wetterstation Lahr Temperatur
{{ state_attr('sensor.wetterstation_Lahr', 'observations')[0]['metric']['temp'] }}
Einheit: °C
Wetterstation Lahr Regen
{{ state_attr('sensor.wetterstation_Lahr', 'observations')[0]['metric']['precipRate'] > 0 }}
Einheit: keine
Automatisierung Markise steuern
Sobald

Und wenn

Dann

Gesamter Yaml Code
alias: Markise steuern description: Steuert die Markise basierend auf den Wetterbedingungen triggers: - entity_id: sensor.wetterstation_lahr_temperatur above: 18 id: Temperatur hoch trigger: numeric_state - entity_id: sensor.wetterstation_lahr_temperatur below: 18.1 id: Temperatur niedrig trigger: numeric_state - entity_id: sensor.wetterstation_lahr_wetterlage to: regen id: Regen trigger: state - entity_id: sensor.wetterstation_lahr_wetterlage to: sonnig id: Sonnig trigger: state - entity_id: sensor.wetterstation_lahr_wetterlage to: leicht bewölkt id: Leicht bewölkt trigger: state - entity_id: sensor.wetterstation_lahr_wetterlage to: bewölkt id: Bewölkt trigger: state - entity_id: sensor.wetterstation_lahr_windgeschwindigkeit above: 22 id: Windgeschwindigkeit hoch trigger: numeric_state - entity_id: sensor.wetterstation_lahr_windgeschwindigkeit below: 22.1 id: Windgeschwindigkeit niedrig trigger: numeric_state conditions: - condition: time after: "10:00:00" before: "19:00:00" actions: - choose: - conditions: - condition: or conditions: - condition: state entity_id: sensor.wetterstation_lahr_wetterlage state: regen - condition: numeric_state entity_id: sensor.wetterstation_lahr_windgeschwindigkeit above: 22 - condition: numeric_state entity_id: sensor.wetterstation_lahr_temperatur below: 18.1 sequence: - entity_id: switch.markise_markise2 action: switch.turn_on alias: Markise einfahren alias: Schlechte Wetterlage -> Markise einfahren - conditions: - condition: and conditions: - condition: numeric_state entity_id: sensor.wetterstation_lahr_temperatur above: 18 - condition: numeric_state entity_id: sensor.wetterstation_lahr_windgeschwindigkeit below: 22.1 - condition: or conditions: - condition: state entity_id: sensor.wetterstation_lahr_wetterlage state: sonnig - condition: state entity_id: sensor.wetterstation_lahr_wetterlage state: leicht bewölkt - condition: state entity_id: sensor.wetterstation_lahr_wetterlage state: bewölkt alias: Gute Wetterlage -> Markise ausfahren sequence: - entity_id: switch.markise action: switch.turn_on alias: Markise ausfahren mode: single
Um die Markise um 19:00 Uhr generell wieder einzufahren habe ich eine separate Automatisierung erstellt. Es wäre auch möglich in jedem „Optionsblock“ die Bedingung zwischen 10:00 Uhr – 19:00 Uhr vorzuschalten, ich fand die Variante mit einer separaten Automatisierung in diesem Fall allerdings sinnvoller.
Automatisierung Markise um 19:00 Uhr einfahren

alias: Markise einfahren description: "" triggers: - trigger: time at: "19:00:00" conditions: [] actions: - action: switch.turn_on metadata: {} data: {} target: entity_id: switch.markise_markise2 mode: single
Hinweis: Wie schon im Video erwähnt, ist der Code nicht ausgiebig getestet. Gerne dürft ihr mir in den Youtube Kommentaren erweiterte Varianten oder angepassten Lösungen vorstellen, ich würde diese dann auf meiner Blog Seite veröffentlichen.