
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.