Sensor für Wetter mit status in Abhängigkeit der conditions der nächsten Stunden

Hallo zusammen,

bitte entschuldigt, ich bin neu in HA und stelle mich beim yaml-erstellen noch ziemlich dumm an… :slight_smile:

Vereinfacht zusammengefasst versuche ich, einen template sensor zu erstellen, der mir die weather.condition der nächsten drei Stunden zusammenstellt und wenn “rainy” oder “pouring” darunter ist den state wechselt zu “es_wird_regnen”.

Ich erwarte keine fertige Lösung, dabei lernt man zu wenig, aber wenn mich jemand mit ein paar Brocken oder Schlagwörtern auf die richtige Spur bringen kann, dann wäre das super hilfreich… :slight_smile:

Danke!

Ich übersetz mal deinen Text mit einer geringefügigen Änderung.
Damit “es wird …” passieren kann muss es jetzt ja nicht regen.
Sonst würde man ja sagen “es regnet” oder “es regnet weiterhin”.

Kopiers in Entwicklerwerkzeuge>Template und ersetze die Variablen durch deine Entitäten.
Wenn es dort tut baust du dir damit einen Template Sensor. Und für auch noch den 3ten Tag ein.
Du wolltest ja explizit keine komplett fertige Lösung, was ich positiv finde.
Denn es gibt nix gutes ausser man tut es (selbst versuchen).. :slight_smile:

{% set now = "sunny" %}
{% set plus1h = "cloudy" %}
{% set plus2h = "rainy" %}
{% if now == "sunny" and plus1h == "rainy" or plus2h == "rainy" %}
  {{ "es_wird_regnen" }}
{% endif %}

Danke! Ich habe es mal anders probiert:

template:
  - trigger:
      - platform: time_pattern
        minutes: "/1" #zum Ausprobieren so oft
    action:
      - action: weather.get_forecasts
        target:
          entity_id:
            - weather.home
        data:
          type: hourly
        response_variable: wettervorhersage
    sensor:
      - name: Regenvorhersage
        unique_id: rain_forecast
        icon: mdi:weather-rainy
        attributes: #nur für zwei Stunden
          rain_forecast_0h: "{{ wettervorhersage['weather.home'].forecast[0].condition }}"
          rain_forecast_1h: "{{ wettervorhersage['weather.home'].forecast[1].condition }}" 
        state: >
          {% if state_attr('rain_forecast_0h' or 'rain_forecast_1h', 'rainy') %} 
            rain
          {% else %}
            no_rain
          {% endif %}

Das Sammeln der Attribute in Regenvorhersage funktioniert. Frage 1 - Gäbe es eine elegantere Art, das zu schreiben, eher als Schleife, wenn ich 10 Punkte habe wären das so 10 Zeilen und 10 Attribute… Oder ist Attribut der falsche Weg, eine einfache Liste täte es auch (s.u.)

Bei state habe ich versucht, abzufragen, ob in einem der Attribute “rainy” vorkommt, aber das funktioniert anscheinend nicht so. Er gibt immer no_rain aus. :slight_smile:

Außerdem würde ich gerne nicht nur auf rainy prüfen, sondern auch auf die anderen “nassen” Wetter. Also tatsächlich eher ein Listen-Problem - Gibt es Wörter aus Liste 1 (rainy, hail, pouring, …), die in irgendeinem der Attribute (oder halt Liste 2) auftauchen.

(Beitrag vom Verfasser gelöscht)

Ich habe vielleicht noch eine Alternative, die ich verwende. Da über diese Plattform gezielt die nächsten zwei Stunden abgefragt werden, ist das Ergebnis sehr zuverlässig. Du musst nur den Längen- und Breitengrad anpassen.

sensor:
  ## Regen Vorhersage
  - platform: rest
    name: regenradar
    scan_interval: 300
    json_attributes:
      - raintext
      - rainin30min
      - rainin60min
      - rainin120min
      - rainin180min
      - rainin240min
    resource: https://morgenwirdes.de/api/v3/rain.php?lat=48.194&long=11.88141
    value_template: "{{ value_json.raintext }}"
  - platform: template
    sensors:
      rrraintext:
        friendly_name: "Regen Vorhersage Home"
        value_template: "{{ state_attr('sensor.regenradar', 'raintext') }}"

Ich nutze diese in meinem Dashboard und in einem Statusdisplay an meiner Wohnungstür.

Das Statusdisplay ist toll (off-topic, hast Du Marke/Typ davon zur Hand?)

Ich brauche es nur länger als 2 h, deshalb geht das mit morgenwirdes eher schlecht…

Display ist ein Solum und über Open ePaper Link eingebunden.