Ich mache jetzt mal keine Wissenschaft draus, muss auch sagen, dass ich mir ausschließlich das erste Video von @Tristan im Galopp angeschaut habe.
Als Sensoren für den Forecast verwende ich hier mal OpenWeatherMap also  weather.openweathermap
Auszug template.yaml
Code: Alles auswählen
- sensor:
# Die Niederschlagsvorhersage für heute 
  - name: 'Niederschlag Vorhersage heute'
    state: |
      {{ state_attr('weather.openweathermap', 'forecast')[0]['precipitation'] }}
    state_class: measurement
    unit_of_measurement: 'mm'
    unique_id: niederschlag_vorhersage_heute
    attributes:
      Wahrscheinlichkeit: |
        {{ state_attr('weather.openweathermap', 'forecast')[0]['precipitation_probability'] }}
 # Die Niederschlagsvorhersage für morgen 
  - name: 'Niederschlag Vorhersage morgen'
    state: |
      {{ state_attr('weather.openweathermap', 'forecast')[1]['precipitation'] }}
    state_class: measurement
    unit_of_measurement: 'mm'
    unique_id: niederschlag_vorhersage_morgen
    attributes:
      Wahrscheinlichkeit: |
        {{ state_attr('weather.openweathermap', 'forecast')[1]['precipitation_probability'] }}
 # Die Niederschlagsvorhersage für heute, morgen und übermorgen in Summe
  - name: 'Niederschlag Vorhersage 3 Tage'
    state: |
      {{ state_attr('weather.openweathermap', 'forecast')[0]['precipitation'] + state_attr('weather.openweathermap', 'forecast')[1]['precipitation'] + state_attr('weather.openweathermap', 'forecast')[2]['precipitation']}}
    state_class: measurement
    unit_of_measurement: 'mm'
    unique_id: niederschlag_vorhersage_3_tage
Für aktuelle und die Vergangenheitswerte nutze ich eine eigne Wetterstation in Verbindung mit der Ecowitt Custom Integration.
Auszug template.yaml
Code: Alles auswählen
- trigger:
    - platform: time
      at: "23:59:00"
  sensor:
    - name: "Niederschlag  gestern"
      unique_id: niederschlag_gestern
      state: "{{ states('sensor.regenmenge_tag') | default(0) }}"
      state_class: measurement
      unit_of_measurement: "mm"
sensor.niederschlag_gestern
Zur Ermittlung ob die Bewässerung notwendig ist oder nicht, habe ich einen binary sensor erstellt.
Wenn gestern weniger als 5mm regen gefallen sind und der Vorhergesagte Niederschlag für die nächsten 3 Tage kleiner als 10mm ist und es gerade nicht regnet, ist das Ergebnis true,
also eine Bewässerung notwendig.
Auszug template.yaml
Code: Alles auswählen
- binary_sensor:
  - name: Bewässerung notwendig
    state: |
      {{ states('sensor.niederschlag_gestern') | int < 5
      and
      state_attr('weather.openweathermap', 'forecast')[1]['precipitation'] < 5
      and
      states('sensor.niederschlag_vorhersage_3_tage') | int < 10 
      and
      states('sensor.regen') | int == 0 }}
    unique_id: bewaesserung_notwendig
binary_sensor.bewasserung_notwendig
Für die  Berechnung der Bewässerungsdauer nutze ich drei Helfer vom Typ input_number
Das sind alles Variablen, die Ihr z.B. Im Dashboard setzen könnt.
Draus errechnet sich die notwendige Bewässerungsdauer.
Auszug template.yaml
Code: Alles auswählen
  - name: 'Notwendige Bewässerungsdauer'
    state: |
       {{ (states('input_number.rasenflache') | int * states('input_number.bewasserungsmenge') | int / states('input_number.durchflussmenge') | int) | int }}
    unit_of_measurement: 'min'
    unique_id: notwendige_bewaesserungsdauer
sensor.notwendie_bewasserungsdauer
Des Weiteren kommt ein weiterer Helfer zum Einsatz und zwar ein Timer.
timer.bewasserungszeit
Die Automatisierung die dann täglich 2 Stunden vor Sonnenaufgang startet, kann dann so aussehen.
Habe sowohl das Starten des Timers wie auch das einschalten und Ausschalten der Bewässerung in einer Automatisierung gepackt.
Code: Alles auswählen
alias: Bewässerung Rasen Südseite
description: ""
trigger:
  - platform: state
    entity_id:
      - timer.bewasserungszeit
    to: active
    id: Start
  - platform: state
    entity_id:
      - timer.bewasserungszeit
    to: idle
    id: Stopp
  - platform: sun
    event: sunrise
    offset: "-02:00:00"
    id: täglich
condition: []
action:
  - choose:
      - conditions:
          - condition: trigger
            id: Start
        sequence:
          - service: switch.turn_on
            data: {}
            target:
              entity_id: switch.bewaesserung1
      - conditions:
          - condition: trigger
            id: Stopp
        sequence:
          - service: switch.turn_off
            data: {}
            target:
              entity_id: switch.bewaesserung1
      - conditions:
          - condition: trigger
            id: täglich
          - condition: state
            entity_id: binary_sensor.bewasserung_notwendig
            state: "on"
        sequence:
          - service: timer.start
            data:
              duration: >-
                {{ (states('sensor.notwendie_bewasserungsdauer') | int * 60)|
                timestamp_custom("%H:%M:%S.0", false) }}
            target:
              entity_id: timer.bewasserungszeit
    default: []
mode: restart
Für das Dashboard kommen die  Mushroom Custom Karten zum Einsatz.
Code: Alles auswählen
type: vertical-stack
cards:
  - type: custom:mushroom-title-card
    title: Bewässerung  Rasen Südseite
    alignment: center
    subtitle: ''
  - type: horizontal-stack
    cards:
      - type: custom:mushroom-chips-card
        chips:
          - type: weather
            entity: weather.openweathermap
            show_conditions: true
            show_temperature: true
          - type: entity
            entity: binary_sensor.bewasserung_notwendig
            icon_color: green
            use_entity_picture: false
            icon: ''
          - type: entity
            entity: switch.bewaesserung1
            icon_color: green
            icon: mdi:sprinkler-variant
            use_entity_picture: false
        alignment: center
  - type: horizontal-stack
    cards:
      - type: vertical-stack
        cards:
          - type: custom:mushroom-entity-card
            entity: sensor.niederschlag_gestern
            name: Niederschlag gestern
          - type: custom:mushroom-entity-card
            entity: sensor.regen
            name: Niederschlag aktuell
          - type: custom:mushroom-template-card
            primary: Prognose Heute
            secondary: >-
              {{ states('sensor.openweathermap_forecast_precipitation') }} mm
              ({{
              states('sensor.openweathermap_forecast_precipitation_probability') 
              }}%)
            icon: mdi:water
            icon_color: blue
          - type: custom:mushroom-template-card
            primary: Prognose Morgen
            secondary: >-
              {{ state_attr('weather.openweathermap',
              'forecast')[1]['precipitation'] }} mm ({{
              state_attr('weather.openweathermap',
              'forecast')[1]['precipitation_probability'] }}%)
            icon: mdi:water
            icon_color: blue
          - type: custom:mushroom-entity-card
            entity: sensor.niederschlag_vorhersage_3_tage
            name: Prognose 3 Tage
      - type: vertical-stack
        cards:
          - type: custom:mushroom-entity-card
            entity: input_number.durchflussmenge
            icon_color: green
          - type: custom:mushroom-entity-card
            entity: input_number.rasenflache
            icon_color: green
          - type: custom:mushroom-entity-card
            entity: input_number.bewasserungsmenge
            icon_color: green
          - type: custom:mushroom-entity-card
            entity: sensor.notwendie_bewasserungsdauer
            name: Bewässerungszeit
            icon_color: orange
            double_tap_action:
              action: call-service
              service: script.bewasserungs_timer
              data: {}
              target: {}
          - type: custom:mushroom-template-card
            primary: Bewässerung Status
            secondary: >-
              {% if state_attr('timer.bewasserungszeit', 'finishes_at') == none
              %}
              Inaktiv
              {% else %}
              Restdauer: {{ (as_timestamp(state_attr('timer.bewasserungszeit',
              'finishes_at')) - as_timestamp(now())) | timestamp_custom("%H:%M",
              false) }}
              {%  endif %}
            icon: mdi:clock
            icon_color: orange
            tap_action:
              action: more-info
            hold_action:
              action: call-service
              service: ''
              data: {}
              target: {}
            double_tap_action:
              action: call-service
              service: timer.finish
              data: {}
              target:
                entity_id: timer.bewasserungszeit
			
		
				
			 
- Mushroom - Bewässerung.jpg (123.46 KiB) 14180 mal betrachtet
 
Das erste Symbol rechts vom Wetter, gibt den Status des von binary_sensor.bewasserung_notwendig wieder
Das zweite Symbol rechts vom Wetter, den Status der Bewässerung, also  An oder Aus.
Mit einem Doppel-Klick auf Bewässerung Status, könnt Ihr die laufende Bewässerung stoppen.
Mit einem Doppel-Klick auf Bewässerungszeit, manuell die  Bewässerung starten. Dazu wird noch folgendes Script  benötigt.
Code: Alles auswählen
alias: Bewässerungs Timer
sequence:
  - service: timer.start
    data:
      duration: >-
        {{ (states('sensor.notwendie_bewasserungsdauer') | int * 60)|
        timestamp_custom("%H:%M:%S.0", false) }}
    target:
      entity_id: timer.bewasserungszeit
mode: single
Das ganze lässt Sich natürlich beliebig erweitern ergänzen.
Wie z.B. Nur Bewässerung alle x  Tage durchführen, Bewässerung bei beginnenden Regen beenden,  Bewässerungsmenge Abhängig von Höchsttemperatur, etc.
Ich hoffe Ihr könnt irgendwas damit anfangen, oder euch zumindest davon inspirieren lassen.
Gruß
Osorkon