Automation für Regenradar von morgenwirdes

Hallo Zusammen,
ich habe mit folgendem Code in meiner config.yaml den Regenradar von morgenwirdes integriert:

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

Funktioniert auch soweit alles gut. (Die Qualität der Daten muss ich mal noch schauen wie gut die ist :blush:

Jetzt habe ich mir eine Automation gebaut, welche mir eine Ansage per Alexa und eine Nachricht über Telegram vorliest/schreiben wenn es eine Meldung gibt, dass es regnen soll.

Das mache ich mit folgender Automation:

alias: Sprachansage wenn Regen in nächsten 2 Stunden
description: ""
trigger:
  - platform: state
    entity_id:
      - sensor.rrraintext
    from: Kein Regen in den nächsten zwei Stunden
    id: Regen
  - platform: state
    entity_id:
      - sensor.rrraintext
    id: kein Regen
    to: Kein Regen in den nächsten zwei Stunden
condition: []
action:
  - if:
      - condition: state
        state: "off"
        entity_id: input_boolean.ich_bin_im_bett
      - condition: not
        conditions:
          - condition: state
            entity_id: sensor.rrraintext
            state: unknown
          - condition: state
            entity_id: sensor.rrraintext
            state: unavailable
      - condition: trigger
        id: Regen
    then:
      - service: script.alexa_sprachausgabe_og_komplett
        data:
          message: "{{ states('sensor.rrraintext') }} "
      - service: scene.create
        data:
          scene_id: lights_previous_state
          snapshot_entities: light.mondo_wand
      - service: notify.telegram_m
        data:
          title: 🌧️ Regenvorhersage
          message: "{{ states('sensor.rrraintext') }}"
      - service: light.turn_on
        data:
          brightness: 255
          rgb_color:
            - 0
            - 50
            - 250
        target:
          entity_id:
            - light.mondo_wand
      - service: light.turn_on
        data:
          brightness: 255
          flash: long
        target:
          entity_id:
            - light.mondo_wand
      - delay:
          hours: 0
          minutes: 0
          seconds: 15
          milliseconds: 0
      - service: scene.turn_on
        data:
          entity_id: scene.lights_previous_state
  - if:
      - condition: time
        after: "09:00:00"
        before: "22:00:00"
      - condition: not
        conditions:
          - condition: state
            entity_id: sensor.rrraintext
            state: unknown
          - condition: state
            entity_id: sensor.rrraintext
            state: unavailable
      - condition: trigger
        id: Regen
    then:
      - service: script.alexa_sprachausgabe_eg_komlett
        data:
          message: "{{ states('sensor.rrraintext') }} "
      - service: notify.telegram_k
        data:
          title: 🌧️ Regenvorhersage
          message: "{{ states('sensor.rrraintext') }}"
      - service: notify.telegram_w
        data:
          title: 🌧️ Regenvorhersage
          message: "{{ states('sensor.rrraintext') }}"
  - choose:
      - conditions:
          - condition: trigger
            id: kein Regen
          - condition: not
            conditions:
              - condition: state
                entity_id: sensor.rrraintext
                state: unknown
              - condition: state
                entity_id: sensor.rrraintext
                state: unavailable
          - condition: state
            entity_id: input_boolean.ich_bin_im_bett
            state: "off"
        sequence:
          - service: script.alexa_sprachausgabe_og_komplett
            data:
              message: "{{ states('sensor.rrraintext') }} "
          - service: notify.telegram_m
            data:
              title: ☁️ Regenvorhersage
              message: "{{ states('sensor.rrraintext') }}"
      - conditions:
          - condition: trigger
            id: kein Regen
          - condition: not
            conditions:
              - condition: state
                entity_id: sensor.rrraintext
                state: unknown
              - condition: state
                entity_id: sensor.rrraintext
                state: unavailable
          - condition: time
            after: "09:00:00"
            before: "22:00:00"
        sequence:
          - service: script.alexa_sprachausgabe_eg_komlett
            data:
              message: "{{ states('sensor.rrraintext') }} "
          - service: notify.telegram_k
            data:
              title: ☁️ Regenvorhersage
              message: "{{ states('sensor.rrraintext') }}"
          - service: notify.telegram_w
            data:
              title: ☁️ Regenvorhersage
              message: "{{ states('sensor.rrraintext') }}"
mode: single

Habe auch Bedingungen eingebaut, weil ich dachte ich könnte damit abfangen, wenn der Sonsor mal wieder unbekannt steht. Was natürlich quatsch ist, weil er hat ja dann den Wert unbekannt schon nicht mehr.

Im Sensor gibt es folgende Möglichkeiten bei den Werten:

  • Kein Regen in den nächsten zwei Stunden
  • Regen um 19:10 Uhr
  • Regen von 18:00-18:10 Uhr

Habt ihr eine Idee, wie ich die Automation nur auslösen kann, wenn der Wert vorher nicht unbekannt war?

2 „Gefällt mir“

Top! Das werde ich ausprobieren.

Guten Tag,

ich weiß nicht ob es hier hinein passt.
Ich hatte mit dem o.g. Code auch den Regenradar von morgenwirdes integriert.
Nun habe ich für eine bessere Übersicht meine Sensoren in Verzeichnisse ausgelagert und bekomme die Regenvorhersage nicht mehr zum laufen.
Ich habe eine Regenradar.yaml im Ordner Template angelegt und folgenden Code probiert und bekomme die Meldung: property rest is not allowed.

Bei mir sieht das so aus:

#-------------------------------------------------------------------------------
#        Regenvorhersage
#-------------------------------------------------------------------------------
  - platform: rest
    name: regenradar
    scan_interval: 300
    json_attributes:
      - raintext
      - rainin30min
      - rainin60min
      - rainin120min
      - rainin180min
      - rainin240min
    resource: https://morgenwirdes.de/api/v3/rain.php?lat=50.595656&long=8.833907
    value_template: "{{ value_json.raintext }}"
  - platform: template
    sensors:
      rrraintext:
        friendly_name: "Regen Vorhersage Home"
        value_template: "{{ state_attr('sensor.regenradar', 'raintext') }}"
      rrrainin30min:
        friendly_name: "Regen in 30min"
        value_template: "{{ state_attr('sensor.regenradar', 'rainin30min') }}"
      rrrainin60min:
        friendly_name: "Regen in 60min"
        value_template: "{{ state_attr('sensor.regenradar', 'rainin60min') }}"
      rrrainin120min:
        friendly_name: "Regen in 120min"
        value_template: "{{ state_attr('sensor.regenradar', 'rainin120min') }}"
      rrrainin180min:
        friendly_name: "Regen in 180min"
        value_template: "{{ state_attr('sensor.regenradar', 'rainin180min') }}"
      rrrainin240min:
        friendly_name: "Regen in 240min"
        value_template: "{{ state_attr('sensor.regenradar', 'rainin240min') }}"


Das ganze hab ich in der config.yaml, müsste aber wenn Du das hinter platform: template so formiert einfügst funktionieren.

1 „Gefällt mir“

Hi, das ist genau das war ich auch suche. Auch per Benachrichtigung als Nachricht auf’s Phone, etwa so:

action: notify.mobile_app_myphone
metadata: {}
data:
  message: Regen möglich in x Stunden!

Was genau muss ich dazu nun alles machen?

Habe in meine config.yaml den gleichen Code wie du @compoundbow83 kopiert (davor noch eine Zeile höher “template:” und meine Latitude & Longitude ersetzt.
Nun HA neu gestartet aber ich kann nicht mit “sensor.regenradar” arbeiten? Auch “sensor.rrraintext” wird nicht gefunden.
Was habe ich übersehen?

Danke.

Ich glaube wenn Du das in der config direkt einbindest muss irgendwas noch davor, aber wie das weis ich nicht mehr ist schon so lange her. Ich habe in meiner configuration.yaml einen Pfad angegeben und den packages genannt, dort kommen dan die zusaätzlichen yaml-Dateien rein ist dann ein wenig übersichtlicher. Der Eintrag sieht so aus:

homeassistant:
  allowlist_external_dirs:
  packages: !include_dir_named packages

in packages hab ich dann eine Datei drin die so aussieht:

#-------------------------------------------------------------------------------
#        Regenvorhersage
#-------------------------------------------------------------------------------
  - platform: rest
    name: regenradar
    scan_interval: 300
    json_attributes:
      - raintext
      - rainin30min
      - rainin60min
      - rainin120min
    resource: https://morgenwirdes.de/api/v3/rain.php?lat=50.595656&long=8.833907
    value_template: "{{ value_json.raintext }}"
  - platform: template
    sensors:
      rrraintext:
        friendly_name: "Regen Vorhersage Home"
        value_template: "{{ state_attr('sensor.regenradar', 'raintext') }}"
      rrrainin30min:
        friendly_name: "Regen in 30min"
        value_template: "{{ state_attr('sensor.regenradar', 'rainin30min') }}"
      rrrainin60min:
        friendly_name: "Regen in 60min"
        value_template: "{{ state_attr('sensor.regenradar', 'rainin60min') }}"
      rrrainin120min:
        friendly_name: "Regen in 120min"
        value_template: "{{ state_attr('sensor.regenradar', 'rainin120min') }}"


die hat den Namen regendaten.yaml
In der Datei stehen noch ein paar sachen die mit Regen zu tun haben aber so sollte es funktionieren.
Diese ganzen Sachen sind nicht meine Erfindung, hab ich zum Teil hier aus dem Forum und zum Teil von anderen Seiten.