Die besten Bewässerungssysteme machen nicht glücklich, wenn die implementierte Steuerungslogik nichts taugt. Insofern war es mein Ziel, soviel Hirn wie möglich in die Logik hinein zu investieren, um eine Lösung zu erhalten, die vollautomatisch und ohne ständige manuelle Korrektureingriffe funktioniert.
Die wesentlichen Überlegungen, die in meine Schaltungslogik eingeflossen sind, möchte ich hier kurz darlegen. Alles natürlich unter der Maßgabe einer späteren Integration in FHEM.
- Definition der Anforderungen
- Auswahl des passenden Bewässerungssystems
- Planung einer individuellen Steuerung
- Entwurf der Steuerungslogik
- Füllstandsmessung mit einer Pegelsonde oder Füllstandsmessung per Ultraschall (alt)
- Programmierung Microcontroller (Wemos D1 Mini)
- Steuerung mit FHEM
- Darstellung auf FHEM Tablet-UI
Die individuelle Steuerungslogik für eine Bewässerungsanlage kann in zwei Bereiche aufgeteilt werden. Der erste Bereich umfasst die Schaltung der Pumpe und der Ventile (Schaltungslogik) und der zweite Bereich die Ermittlung des Gießprogramms (Gießindex) - in meinem Fall ohne Feuchtesensor.
In die Schaltungslogik flossen Überlegungen ein, um einerseits die technischen Grenzen der Komponenten nicht zu überschreiten und andererseits die Schaltung so zu ertüchtigen, dass sie normalerweise vollautomatisch über FHEM gesteuert werden kann, aber parallel dazu auch eine manueller Betätigung über Schalter möglich ist.
Somit mussten folgende Punkte in die Schaltungslogik einfließen:
Diese Restriktionen können bei der manuellen Bedienung über die Wipp-Schalter sicherlich dem Schaltenden vermittelt werden. Wenn die Schaltung über die Elektronik erfolgt, muss dies natürlich im Schaltungsaufbau und in der Software hinterlegt sein.
Aus der Summe der Überlegungen ist letztendlich folgender Schaltplan entstanden. Das Relais R1 dient zum Schalten der Spule des Hauptrelais für die Pumpe. Die Relais R2-R5 schalten die vier Ventile. Die Relais R6–R8 wurden auch verdrahtet und auf die Klemmleiste geführt. Sie fanden ein paar Jahre später bei der Erweiterung um eine Rasenbewässerung ebenfalls Verwendung, sollen allerdings hier nicht Gegenstand der Ausführungen sein. Für den 24V und 5V-Bereich wurde eine gemeinsame Klemmleisten verwendet. Der 230V-Bereich wurde separiert. Die manuellen Wipp-Schalter sind zur Ansteuerung der Relais den Wemos D1 Mini Kontakten parallel geschaltet.
Folgende Funktionen sollte der Microcontroller erfüllen:
Die aufgelisteten Funktionen wurden in einem Sketch implementiert. Details finden Sie auf der Folgeseite:
Da ich keinen Feuchtesensor im Einsatz habe, musste für die Ermittlung des Gießprogrammes auf andere Parameter zurückgegriffen werden. Hier griff ich in erster Linie auf die Temperatur und den Ertrag unserer Photovoltaik-Anlage zurück. Tagsüber (zwischen 9 und 18Uhr) erfolgen stündliche Messungen und die Speicherung der Daten. Liegt die gemessene Außentemperatur und / oder der tägliche PV-Ertrag über einem Schwellwert, so werden sie kumuliert und gehen in die Berechnung ein. Daraus werden die Gießprogramme (Viel, Wenig, Töpfe, Pause) abgeleitet.
Die Schwellwerte der Gießprogramme, für die zu berücksichtigende Temperatur und den PV-Ertrag werden in Readings einer Dummy-Variable in FHEM hinterlegt, damit ggf. nachgeregelt werden kann, ohne in den Sourcecode des Wemos D1 Mini eingreifen zu müssen.
Der Schwellwert für den PV-Ertrag wird monatlich aus den Durchschnittserträgen der letzten Jahre x 0,75 / 30 Tage neu berechnet. So passt sich der Schwellwert den monatlichen Ertragsunterschieden an und bietet ein Höchstmaß an Dynamik. Die Vorteile dieser Methodik kommen besonders in der Übergangszeit zum Tragen.
Beispiel (Temperaturschwellwert: 20°C; PV-Ertrag Schwellwert: 30kWh):
In diesem Beispiel würde sich ein Gießindex von 59 ergeben.
Der so über den Tag kumulierte Gießindex bildet die Basis für das zu ermittelnde Gieß-Programm. In Summe habe ich vier Programme abgeleitet:
Es werden aber noch andere Parameter mit berücksichtigt, z.B. der Füllstand der Zisterne. Den Füllstand der Zisterne ermittle ich mittlerweile mit einer Pegelsonde. Wie ich das konkret implementiert habe (inkl. Anbindung an FHEM), ist in der separaten Serie Füllstandsmessung mit einer Pegelsonde beschrieben.
Hat sich z.B. der Inhalt der Zisterne innerhalb des letzten Tages um mindestens 300 Liter erhöht, so hat es wohl eine erhebliche Menge geregnet und das Gießen kann, je nach Änderung des Füllstandes, um ein oder mehrere Tage ausgesetzt werden. Dieser Parameter kann aber nur als Indikator dienen, solange die Zisterne noch nicht voll ist. Wenn die Zisterne bereits voll ist und es weiter regnet, so ändert sich am Füllstand i.d.R. nichts.
In diesem Fall kann die Regendauer mit einbezogen werden. Für die Messung der äußeren Environments verwende ich einen EnOcean Multisensor. Er liefert neben der Außentemperatur auch die Info: es regnet j/n. Hier kann über das FHEM Statistics-Modul die Regendauer des letzten Tages kumuliert werden. Dies sagt zwar nichts darüber aus, ob es in dieser Zeit einen Starkregen gab oder es nur ein wenig genieselt hat. An Genauigkeit reicht es mir für diesen Zweck aber aus. Als Ergebnis wird eine Gießpause von einem oder mehreren Tagen eingelegt, falls die Regendauer seit dem letzten Gießen größer als 3 Stunden war.
Wenn eine Gießpause über die Füllstandsänderung oder die Regendauer ermittelt wurde, so wird der bis dahin ermittelte Gießindex nicht einfach verworfen, sondern halbiert und für den nächsten Tag als Startwert gemerkt.
Ermittelte Gießpausen sind generell auf drei Tage begrenzt, damit das System bei Wetterwechsel flexibel reagieren kann.
Wenn es an einem Tag zu keiner Gießaktion reichte (z.B. als Gießindex wird nur 10 erreicht), so wird dieser Wert ebenfalls auf den nächsten Tag übertragen. Damit wird sichergestellt, wenn an einem Tag das Gießen knapp „verfehlt“ wird, dass trotzdem irgendwann gegossen wird, da durch den Vortrag aus dem Vortag schon ein Sockelwert vorhanden ist.
Andererseits sind ermittelte Gießpausen auch nicht in Stein gemeißelt. Ist das System im Pausenmodus, so wird jeweils der halbierte Gießindex berücksichtigt. Würde nach Halbierung des Wertes immer noch gegossen werden, so wird auch gegossen. Diese Situation tritt z.B. bei extremen Wetterlagen ein, die in letzter Zeit häufiger vorkommen, d.h. es regnet stark und am darauffolgenden Tag ist wieder ein sehr heißer Sommertag.
Neigt sich der Füllstand der Zisterne dem Ende, wird auf ein reduziertes Gießprogramm umgeschaltet, d.h. es wird nur der halbe Gießindex berücksichtigt, um Wasser zu sparen.
Das über den Tag ermittelte Gieß-Programm inkl. Index lasse ich mir abends per Telegram auf das Handy senden. Hier könnte ich noch bei Bedarf individuell nachregeln. Dies kommt aber nach jetzt mehrjährigem Betrieb der Anlage eher selten vor, da sich die Anlage über das Fine-Tuning der Parameter und Schwellwerte quasi eingeschwungen hat. Der eigentliche Gießvorgang startet nachts. Evtl. Änderungen, weil es vor Beginn des Gießvorganges doch noch regnete, werden natürlich berücksichtigt.
Die hier beschriebene Logik wurde in FHEM implementiert. Auf Details gehe ich im Abschnitt Steuerung mit FHEM ein.
Fragen oder Anregungen nehme ich gern über die Kontaktbox entgegen oder direkt per Email.
kontakt@kaempf-nk.de