Im Sommer möchte jeder Gartenbesitzer gerne dafür sorgen, dass alles schön grün ist. Das betrifft nicht nur die Blumen und Pflanzen, sondern auch den Rasen. Gleichzeitig soll aber auch nicht zuviel Wasser verschwendet werden. Wie ich die Bewässerung mit Home Assistant gelöst habe, zeige ich in diesem Artikel.
Die Hardware
- eine funktionsfähige Home Assistant-Instanz
(bspw. mit Home Assistant Green*) - ein Regenmesser oder Regensensor, der in Home Assistant integriert werden kann (bspw. von Ecowitt* oder Netatmo*)
Und natürlich braucht man auch einen Bewässerungscomputer. Hier sind ein paar Beispiele, die auch mit Home Assistant gut funktionieren:
- SONOFF Smart Bewässerungscomputer*
- LinkTap G2S Drahtlose Bewässerungscomputer*
- Gardena smart Water Control*
Übrigens kann man sich mit etwas Geschick auch günstig einen eigenen Regenmesser bauen. Wie das geht, könnt hier im Video von „Edi’s Techlab“ sehen.
Die Software
Nachdem die Hardware-Frage soweit geklärt ist, muss eine sinnvolle Programmierung für Home Assistant her. Ich hatte mich zuerst für die HACS-Integration Smart Irrigation entschieden. Grundsätzlich war ich damit auch einige Monate glücklich. Allerdings ist die Integration durchaus komplex und etwas fehleranfällig. Wer viele Einstellungsmöglichkeiten schätzt, wird aber sicher glücklich damit.
Es musste dann doch irgendwie was Eigenes her. Es sollte eine einfache Automation sein, die auch mit dem Wasser sparsam umgeht. Folgende Parameter sollten überwacht werden:
- Ist an dem Tag Regen über X mm vorhergesagt?
- Hat es an dem Tag schon über X mm geregnet?
- Sind an dem Tag Höchst-Temperaturen über X Grad vorhergesagt?
- War der letzte Regenguss oder Bewässerung mind. X Tage her?
Als kleines Zusatz-Feature sollte je nach Höchst-Temperatur auch die Beregnungsdauer geändert werden.
Die Vorbereitung
Zuerst benötigt man eine Wetter-Integration in Home Assistant. Standardmäßig ist die Meteorologisk Institutt (Met.no)-Integration installiert. Die Daten kommen vom norwegischen Wetterdienst und sind durchaus gut. Sollte diese Integration noch nicht vorhanden sein, einfach installieren: Unter „Einstellungen“->“Geräte & Dienste“ einfach unten rechts auf „Integration hinzufügen“ klicken und nach „Met“ suchen und installieren.
Um jetzt eine Wetter-Vorhersage für die nächsten Tage als Sensor zu erhalten, muss der folgenden Code in die configuration.yaml einfügt werden:
- trigger:
- platform: time_pattern
hours: /1
action:
- service: weather.get_forecasts
target:
entity_id:
- weather.DEINE_WETTER_ENTITY
data:
type: daily
response_variable: tagesvorhersage
sensor:
- name: Tägliche Wettervorhersage
unique_id: weather_entity_forecast
state: "{{ now().isoformat() }}"
icon: mdi:hours-24
attributes:
forecast: "{{ tagesvorhersage['weather.DEINE_WETTER_ENTITY'].forecast }}"
Unter „weather.DEINE_WETTER_ENTITY“ sollte die entsprechende Wetter-Entität eingetragen werden – also die von der jeweiligen Wetter-Integration. Nach einem Neustart von Home Assistant ist nun der neue Sensor „Tägliche Wettervorhersage“ vorhanden.
Die Helfer
Nun legen wir uns noch die Helfer an, die in der Automation benötigt werden. Diese werden unter „Einstellungen“ -> „Geräte & Dienste“ -> „Helfer“ erstellt. Unten rechts auf „Helfer erstellen“ klicken und entsprechenden Typ auswählen.
sensor.vorhersage_regen_heute
Vorhergesagte Regenmenge des heutigen Tages
Helfer-Typ: Template (Sensor)
{{ states.sensor.tagliche_wettervorhersage.attributes.forecast[0].precipitation }}
sensor.vorhersage_temperatur_heute
Vorhergesagte Höchsttemperatur des heutigen Tages
Helfer-Typ: Template (Sensor)
{{ states.sensor.tagliche_wettervorhersage.attributes.forecast[0].temperature }}
input_number.bewasserung_dauer
Bewässerungs-Dauer
Helfer-Typ: Zahlenwert-Eingabe
input_number.bewasserung_intervall
Pause zwischen der Bewässerung (in Tagen)
Helfer-Typ: Zahlenwert-Eingabe
binary_sensor.bewasserung_regenmenge
Schwellenwert für zu wenig Regen
Helfer-Typ: Schwellenwertsensor
– „Unterer Grenzwert“ auf 3 stellen
binary_sensor.bewasserung_temperatur
Schwellenwert für optimale Temperaturen
Helfer-Typ: Schwellenwertsensor
– „Oberer Grenzwert“ auf 20 stellen
binary_sensor.bewasserung_zeit
Sensor zur Überprüfung des Intervalls
Helfer-Typ: Template
{% set last_rain_str = states('input_datetime.letzte_bewasserung') %}
{% set interval_days = states('input_number.bewasserung_intervall') | int(1) %}
{% if last_rain_str in ['unavailable', 'unknown'] %}
true
{% else %}
{{ (now() | as_local) >= (as_datetime(last_rain_str) | as_local + timedelta(days=interval_days)) }}
{% endif %}
Alternativ kann man die Überprüfung des Bewässerung-Intervalls rein auf Tagesbasis machen:
{% set last_rain_str = states('input_datetime.letzte_bewasserung') %}
{% set interval_days = states('input_number.bewasserung_intervall') | int(1) %}
{% if last_rain_str == 'unavailable' or last_rain_str == 'unknown' %}
true
{% else %}
{{ (now() | as_local).date() >= (as_datetime(last_rain_str) | as_local + timedelta(days=interval_days)).date() }}
{% endif %}
Die Automation
Für die eigentliche Bewässerung mit Home Assistant habe ich folgende Automation verwendet:
alias: Garten - Bewässerung des Rasens
description: Programmierung zur regelmäßigen Bewässerung.
triggers:
- at: "06:30:00"
trigger: time
id: start-bewaesserung
alias: Starte Bewässerung
- trigger: numeric_state
entity_id:
- sensor.regensensor_rain_today
above: 2.9
id: aktualisierung
alias: Letzte Bewässerung aktualisieren
conditions: []
actions:
- alias: Vorgang der Bewässerung
if:
- condition: and
conditions:
- condition: trigger
id:
- start-bewaesserung
- condition: state
entity_id: binary_sensor.bewasserung_regenmenge
state: "on"
- condition: state
entity_id: binary_sensor.bewasserung_temperatur
state: "on"
- condition: state
entity_id: binary_sensor.bewasserung_zeit
state: "on"
then:
- action: input_datetime.set_datetime
metadata: {}
data:
datetime: "{{ now().strftime('%Y-%m-%d %H:%M') }}"
target:
entity_id: input_datetime.letzte_bewasserung
alias: Letzte Bewässerung aktualisieren
- alias: Dauer festlegen
choose:
- conditions:
- condition: numeric_state
entity_id: sensor.vorhersage_temperatur_heute
below: 25
sequence:
- alias: "Dauer festlegen: 5"
action: input_number.set_value
metadata: {}
data:
value: 5
target:
entity_id: input_number.bewasserung_dauer
- conditions:
- condition: numeric_state
entity_id: sensor.vorhersage_temperatur_heute
below: 28
above: 25
sequence:
- alias: "Dauer festlegen: 8"
action: input_number.set_value
metadata: {}
data:
value: 8
target:
entity_id: input_number.bewasserung_dauer
- conditions:
- condition: numeric_state
entity_id: sensor.vorhersage_temperatur_heute
below: 30
above: 28
sequence:
- alias: "Dauer festlegen: 10"
action: input_number.set_value
metadata: {}
data:
value: 10
target:
entity_id: input_number.bewasserung_dauer
- conditions:
- condition: numeric_state
entity_id: sensor.vorhersage_temperatur_heute
above: 30
sequence:
- alias: "Dauer festlegen: 13"
action: input_number.set_value
metadata: {}
data:
value: 13
target:
entity_id: input_number.bewasserung_dauer
- metadata: {}
data: {}
target:
entity_id: switch.water_switch
alias: Bewässerung einschalten
action: switch.turn_on
- delay:
minutes: "{{states(\"input_number.bewasserung_dauer\")}}"
alias: Verzögerung mit Bewässerungsdauer
- alias: Bewässerung ausschalten
target:
entity_id:
- switch.water_switch
data: {}
action: switch.turn_off
- metadata: {}
data:
title: Garten
message: >-
Bewässerung wurde für {{states('input_number.bewasserung_dauer')}}
Minuten ausgelöst.
action: persistent_notification.create
- alias: Letzte Bewässerung aktualisieren
if:
- condition: trigger
id:
- aktualisierung
then:
- action: input_datetime.set_datetime
metadata: {}
data:
datetime: "{{ now().strftime('%Y-%m-%d %H:%M') }}"
target:
entity_id: input_datetime.letzte_bewasserung
- metadata: {}
data:
title: Garten
message: >-
Bewässerung wurde verschoben.
action: persistent_notification.create
mode: single
Wenn man nun innerhalb der Automationen von der YAML-Ansicht auf den visuellen Editor umschaltet, sieht man die fertige Automation. Nur noch die Entitäten für den Regensensor und den Bewässerungscomputer müssen angepasst werden. Ansonsten sollte alles stimmen!
Neben den notwendigen Anpassungen, kann man übrigens hier auch die Uhrzeit einstellen, an der die Bewässerung ausgelöst werden soll.
Das Dashboard
Damit man immer sehen kann, welcher Zustand die Bewässerung hat, kann man mit Hilfe der Kacheln die folgende Ansicht basteln:

In meinem Fall habe ich die Felder so programmiert, dass nur zwei wirklich bedient werden können: „Automatik“ und „Intervall“. Die untere Reihe hat jeweils ein grünes Häkchen, wenn die Vorgabe erfüllt ist. Erst wenn alle erfüllt sind, läuft die Automation durch. Die Dauer der Bewässerung wird von der Automation automatisch gesetzt.
Das wars! Habt Ihr noch Fragen oder Anregungen zu meiner Bewässerung mit Home Assistant? Hinterlasst einfach einen Kommentar. Ansonsten freue ich mich natürlich immer über jedes Feedback.
Hinweis: Dieser Artikel enthält Affiliate-Links. Wenn Du über die Links mit einem Sternchen etwas kaufst, erhalte ich eine kleine Provision, ohne dass sich der Preis für Dich ändert.
Danke für Deine Unterstützung!





Schreibe einen Kommentar