In Artikel Gartenbewässerung selbst bauen und über openHAB steuern habe ich gezeigt wie du mit Hilfe eines NodeMCU und openHAB eine smarte Bewässerung realisieren kannst. Böse Zungen behaupten das Ein- und Ausschalten über das Smartphone oder den Rechner ist nicht wirklich smart 😉

Darum wird die Gartenbewässerung jetzt komplett automatisiert, so dass kein manueller Eingriff mehr notwendig ist. Die einfachste Art der Automatisierung ist eine Zeitschaltuhr. Allerdings wird man schnell merken, dass diese Lösung nicht ideal ist. Irgendwann wird es regnen und gleichzeitig schaltet sich die Bewässerung für den Garten an. Das ist Wasserverschwendung und kostet zudem noch unnötig Geld.

Bewässerung mit Wettervorhersage und Sensoren steuern

Damit sinnvoll beregnet werden kann sind Daten aus der Zukunft und Vergangenheitsdaten relevant. Zum einen soll ermittelt werden, ob eine Bewässerung aufgrund der aktuell vorherrschenden Bedingungen überhaupt notwendig ist (hat es vielleicht vor ein paar Stunden erst geregnet). Zum anderen ist ein Blick in die Nahe Zukunft sinnvoll um nicht kurz vor einem bevorstehenden Regenschauer zu bewässern.

Für die Vorhersage eignet sich das WheaterUnderground Binding hervorragend.

Bei den Vergangenheitsdaten kommt es auf die verfügbaren Daten an. Ich habe eine KNX Wetterstation, die mir ausgibt, ob es aktuell regnet. Dieser Wert (Regen Ja/Nein) wird in der Datenbank gespeichert. So kann ich später abfragen ob es beispielsweise in den letzten 24 Stunden geregnet hat. Über diesen Weg kann schon einmal sichergestellt werden, dass es nicht kurz vor der geplanten Bewässerung geregnet hat.

Meine Automatisierung bedient sich dieser zwei Werte. Wenn man entsprechend ausgestattet ist, können noch Daten über die Menge des gefallenen Regens gesammelt werden und wie feucht der Boden ist. Beides ist bei mir (noch) nicht vorhanden.

Bindings installieren

Damit es losgehen kann muss das WeatherUnderground Binding installiert werden. Das erledigst du am besten über die PaperUI.

WeatherUnderground Binding installieren

WeatherUnderground Binding installieren

Damit das Binding genutzt werdem kann, muss ein Zugang und ein API Code erstellt werden. Zur Registrierung. Sobald du den Zugang hast, kann das Binding über eine entsprechende .things Datei konfiguriert werden. Dazu legst du am besten im Ordner Things eine Datei mit dem Namen weatherunderground.things an. Natürlich müssen die entsprechenden Werte aus der API und die ID der Wetterstation angegeben werden:

Nun müssen noch die entsprechenden Items angelegt werden. Hierzu im Ordner items eine Datei mit dem Namen weatherunderground.items anlegen:

Auch hier darauf achten im Channel das Wort „ort“ entsprechend deiner Angaben anzupassen.

Dummies anlegen

Im nächsten Schritt werden noch einige Dummy Schalter benötigt. Diese kannst du problemlos in der zuvor angelegten weatherunderground.items Datei anlegen.

Diese Schalter werden mit Hilfe von Regeln entsprechend an- oder ausgeschaltet. Das erleichtert später die Darstellung der Bedingungen für eine Beregnung. Um den Schalter „Regen_Morgen“ zu schalten, wird folgende Regel erstellt. Zur besseren Übersichtlichkeit habe ich hierzu eine neue Datei mit dem Namen beregnung.rules angelegt.

Die Regel prüft stündlich, ob die Regenmenge morgen größer als 1mm ist und ob die Regenwahrscheinlichkeit bei 50% oder höher liegt. Sobald beide Bedingungen erfüllt sind, wird der Schalter auf AN gestellt – andernfalls auf AUS.

Regen in den letzten 24 Stunden

Die Zukunft haben wir nun abgebildet. Fehlt noch die Vergangenheit. In meinem Fall ist eine KNX Wetterstation im Einsatz, die mittels Switch (Regen AN/AUS) meldet, ob es gerade regnet. Damit ich die Daten aus der Vergangenheit auslesen kann, muss dieser Wert in einer Datenbank gespeichert werden. Dazu nutze ich die rrd4j Datenbank. Wie diese installiert und eingerichtet wird, erfährst du hier.

Um festzustellen, ob es in den letzten 24 Stunden geregnet hat, wird wieder ein Dummy Switch angelegt:

Danach wird über eine Regel aus der Datenbank ausgelesen, ob der Regenschalter, der Wetterstation in den letzten 24 Stunden auf ON stand.

Auch diese Regel wird jede Stunde ausgelöst und prüft, ob der Schalter Regen aktuell AUS ist und ob er sich in den letzten 24 Stunden geändert hat. Hat es keine Änderung gegeben, so wird der Befehl OFF in Richtung des neuen Dummy „Regen_Wetterstation_24h“ gesendet. Andernfalls wird ein ON Befehl gesendet. Somit wissen wir jede Stunde, ob es in den vorangegangenen 24 Stunden geregnet hat.

Zur Automatik zusammenführen

Jetzt haben wir alle Einzelprüfungen angelegt, um nun die Automatik umzusetzen. Den Dummy Switch „Beregnung heute“ haben wir bereits oben angelegt. Dieser wird über folgende Regel geschaltet:

Diese Regel wird ebenfalls stündlich ausgelöst und prüft den aktuellen Status der Schalter Regen_Morgen (also die Regenwahrscheinlichkeit morgen) und Regen_Wetterstation_24h (also ob es in den letzten 24 Stunden geregnet hat. Hier gilt: sobald eine der Bedingungen zutrifft wird bekommt der Schalter „Beregnung_Heute“ den Befehl OFF. Andernfalls wird der Befehl ON gesendet. Ab jetzt wird es ganz einfach. Mit dieser Info kannst du nun die letzte Regel erstellen, die die Bewässerung dann tatsächlich auslöst.

Diese Regel wird täglich um 23 Uhr ausgeführt. Es wird geprüft ob der Schalter „Beregnung_Heute“ ON ist. Ist das der Fall wird die Beregnung gestartet. Nach 2 Minuten Wartezeit wird die Beregnung wieder ausgeschaltet. Dieser Wert ist nur ein Beispiel. Die Beregnungszeit kannst du individuell auf die Bedürfnisse deiner Pflanzen anpassen. In meiner Installation ist „Beregnung_Garten_Programm“ der Switch, der die Bewässerungsventile steuert. Der Sleep Befehl kann an dieser Stelle auch durch einen Timer ersetzt werden – das wäre auch die sauberere Variante.

Damit ist die automatische Bewässerung komplett. Viel Spaß beim Bewässern lassen 😉

(Edit) Bewässerung ohne Vorhersage

Da WeatherUnderground leider die die kostenlose API eingestellt hat, gibt es hier noch einmal die Anleitung für die Bewässerung ohne Vorhersage. Es wird also lediglich die Vergangenheit betrachtet.

Um festzustellen, ob es in den letzten 24 Stunden geregnet hat, wird ein Dummy Switch angelegt:

Danach wird über eine Regel aus der Datenbank ausgelesen, ob der Regenschalter, der Wetterstation in den letzten 24 Stunden auf ON stand. Beachte, dass du den Status (Regen Ja/Nein) in einer Datenbank speicherst. Dazu nutze ich die rrd4j Datenbank. Wie diese installiert und eingerichtet wird, erfährst du hier.

Auch diese Regel wird jede Stunde ausgelöst und prüft, ob der Schalter Regen aktuell AUS ist und ob er sich in den letzten 24 Stunden geändert hat. Hat es keine Änderung gegeben, so wird der Befehl OFF in Richtung des neuen Dummy „Regen_Wetterstation_24h“ gesendet. Andernfalls wird ein ON Befehl gesendet. Somit wissen wir jede Stunde, ob es in den vorangegangenen 24 Stunden geregnet hat.

Nun kann bereits die Automatische Bewässerung als Regel erstellt werden:

Das war es schon. Jetzt ist die automatische Beregnung nur noch abhängig vom Regen in der Vergangenheit. Die Regel wird täglich um 23 Uhr ausgelöst und prüft, ob der Dummy Switch „Regen_Wetterstation_24h.state“ auf OFF steht. Ist dies der Fall startet die Beregnung. Andernfalls passiert nichts.