Vor ungefähr zwei Jahren haben wir einen Brunnen im Garten bohren lassen, um auch in trockenen Phasen ausreichend Wasser für die Bewässerung zu besitzen. Dabei muss man wissen, dass unserere Gegebenheiten nicht optimal sind. Lehmiger Boden und keine Möglichkeit an Grundwasser zu gelangen, da wir ziemlich hoch wohnen. Glücklicherweise treffen sich zwei Wasseradern auf dem Grundstück, welche sich obendrein kreuzen. Genau an dieser Kreuzung wurde der Brunnen gebohrt.
Aufgrund dieser Tatsachen erhalten wir zwar Wasser, jedoch nicht dauerhaft. Das bedeutet, dass wir für ungefähr 45 Sekunden Wasser fördern können und anschließend das Rohr leer ist. Nach 15-20 Minuten kann erneut Wasser entnommen werden. Pro Pumpintervall kommen zwischen 35-40 Liter zusammen. Über den Tag verteilt sind dies einige hundert Liter, was für unseren Anwendungsfall mehr als ausreichend ist.
Die Frage, welche ich mir nach einem Monat gestellt hatte lautet: Will ich wirklich wie ein Roboter alle 20 Minuten zum Brunnen laufen, den Strom einstecken, warten und wieder ausstecken? Ganz sicher nicht! Obendrein benötigen wir auch Wasser, wenn keiner von uns zuhause ist. Aus diesem Grund musste eine smarte Brunnenpumpensteuerung her, welche ich in diesem Beitrag mit euch teile.
Herausforderung
Beginnen wir mit den Herausforderungen, die mit der Pumpe beginnen. Aufgrund der Tiefe war es keine Option eine Kreiselpumpe zu verwenden. Es musste eine Tiefbrunnenpumpe her. Für alle, die sich jetzt fragen, wo ist denn der Unterschied? Eine Tiefbrunnenpumpe wird in den Brunnen herabgelassen, wohingegen eine Kreiselpumpe sich an der Oberfläche befindet und nur ein Schlauch in den Schacht liegt.
Schutz vor Beschädigung
Die von uns verwendete Pumpenart ist deutlich leistungsfähiger, wodurch das Rohr schneller leer gepumpt wird, als Wasser nachfließen kann. Die Gefahr, welche dabei entsteht, dass die Pumpe weiterhin läuft und durch das nicht vorhandene Wasser heiß läuft. Im schlimmsten Fall wird die Pumpe irreparabel beschädigt. Folglich benötigen wir eine Notabschaltung, welche davor schützt.
Intervalle und manuelle Bedienbarkeit
Die zweiter Herausforderung liegt in den Intervallen begründet. Die Lösung muss auf Basis eines Zeitintervalls die Stromzufuhr zur Pumpe einschalten und anschließend wieder ausschalten. Obendrein soll die Pumpe auch manuell betätigt werden können, losgelöst von den Intervallen.
Energieverbrauch
Natürlich ist es mir durch unser Balkonkraftwerk daran gelegen, den selbst produzierten Strom weitgehend selbst zu verbrauchen. Da wäre es doch super, wenn die Pumpe ihren Teil dazu beiträgt. Natürlich kann man mit einem 600W Balkonkraftwerk keine Tiefbrunnenpumpe betreiben, die immer über 900W benötigt. Dennoch sollte die Pumpe überwiegend bei Einspeisung automatisch betrieben werden. Zusätzlich natürlich auch losgekoppelt von der Überschüssigen Energie.
Volle Wassertanks
Die letzte Thematik bezieht sich auf das Fassungsvolumen unserer Zisterne, welche bei 1.800 Liter liegt. Sobald die Zisterne voll ist, soll die Pumpe kein weiteres Wasser mehr in den Tank fördern. Ansonsten würde das Wasser unnötig über den Ablauf im Abfluss verschwinden.
Zusammenfassung
- Notabschaltung bei fehlendem Wasser
- Manuelle und zeitgesteuerte Schaltung
- Pumpen, wenn überschüssige Energie vorhanden ist
- Abschaltung bei vollem Wassertank
Aufbau & Komponenten
Im Brunnenkasten befindet sich neben den Brunnenrohr und der darin versenkten Pumpe genügend Platz für die Installation zweier Steckdosen. Die erste Steckdose ist für die Brunnenpumpe selbst vorgesehen und die zweite für den Wasserzähler. Denn es versteht sich von selbst, dass ich wissen möchte, wie viel Wasser ich pro Tag aus dem Brunnen gefördert habe. Den Wasserzähler habe ich auf dem Youtube-Kanal EddyD’s SmartHome gesehen und Kurzerhand nachgebaut. An dieser Stelle vielen Dank an Eddy für die tolle Anleitung.
Diejenigen unter euch, die die letzten Videos von mir gesehen haben, können sich wahrscheinlich denken, mit welchem Gerät ich die Pumpe steuer. Genau mithilfe eines Shellys, in meinem Fall einem Shelly Plus 1PM. Dies ist der Tatsache geschuldet, dass ich diesen Shelly zum damaligen Zeitpunkt über hatte und der neue Shelly 1PM Gen3 noch nicht auf dem Markt war. Heutzutage würde ich den Gen3 verwenden.
Warum habe ich genau den Shelly verwendet? Das hat drei Hintergründe! Erstens habe ich bis zu diesem Zeitpunkt ausschließlich gute Erfahrungen mit dem Hersteller gemacht und wollte das Gerät ins WLAN integrieren. Zweitens, der Shelly verfügt über die Möglichkeit einen externen Schalter daran anzuschließen, um einen manuellen Pumpvorgang anzustoßen. Der letzte Punkt basiert auf dem im Shelly verbauten Energiemonitoring, da ich auf Basis der Leistungswerte die Notabschaltung realisieren kann.
Der Shelly steuert ausschließlich die Steckdose mit der Pumpe, da der Wasserzähler dauerhaft mit Strom versorgt werden sollte. Natürlich könnt ihr die Schaltung mit jedem Gerät eurer Wahl realisieren.
- Der Shelly 1PM Gen3 – Ein Smart-Schalter für effiziente Gerätesteuerung und Energieeinsparung, der mit dem neuen Shelly Chip jetzt noch leistungsstärker ist. Der Shelly 1PM eignet sich perfekt für…
- Automatisierst Du Deinen Boiler mühelos – Für einen optimalen Energieverbrauch und warmes Wasser genau dann, wenn Du es brauchst. Ist der Shelly 1PM Gen3 in Deinen Warmwasserbereiter integriert,…
- Einfache smarte Steckdose – Installierst Du den Shelly 1PM Gen3 hinter einer Steckdose, lassen sich verschiedene Geräte automatisieren und steuern. Zudem kannst Du sicherstellen, dass sie sich nach…
- Shelly Kundenservice – Shelly ist eine der am schnellsten wachsenden Smart Home Marken der Welt mit Geräten, die Lösungen für die Automatisierung von Privathäusern, Gebäuden und Unternehmen…
- Mit der Shelly Smart Control app können Sie Ihre Shelly-Geräte aus der Ferne steuern und werden über alle automatisierten Ereignisse in Ihrem Haus benachrichtigt. Sie können die Geräte ganz…
Letzte Aktualisierung am 8.10.2024 / Affiliate Links (*) / Eine Veränderung des ausgewiesenen Preises ist nach der letzten Aktualisierung möglich / Bilder von der Amazon Product Advertising API
ioBroker – Blocky
Die Automatisierung setzt auf mehreren Adaptern auf. In erster Linie, den Shelly Adapter, um das Gerät zu steuern, Javascript für das Blockly und ein paar Datenpunkte.
Datenpunkte
Für die Automatisierung habe ich insgesamt drei Datenpunkte angelegt. Dabei sind zwei Datenpunkte vom Typ boolean und einer vom Typ number. Die beiden boolean Datenpunkte lauten Pumpe_aktiv und Pumpe_solar_aktiv. Auf letzteren kann verzichtet werden, insofern ihr die Intervalle nicht von der Einspeisung abhängig steuern wollt. Der Datenpunkt vom Typ number dient mir als Timer und kann keinen Wert kleiner null annehmen.
Die Datenpunkte lege ich direkt über das Blockly an, indem ich den Baustein “Datenpunkt erzeugen“ unter System verwende. In der ObjektID tragt ihr nun den exakten Pfad ein, in welchem der Datenpunkt erstellt werden soll. Bei mir wie folgt:
0_userdata.0.Datenpunkte.Schaltung.Pumpensteuerung.Timerbrunnenpumpe
Die Angaben hinter dem letzten Punkt sind der Name des Datenpunkts. Als Init-Wert könnt ihr bei boolean entweder wahr oder falsch mitgeben, bei number Beispielsweise die 0. Natürlich können die Initialwerte auch ausgelassen werden. An Common hängen wir nun einen Textbaustein an und geben darüber mit, um welche Art von Datenpunkt es sich handelt, die Einheit z.B. Minuten, einen Namen oder den min und max Wert.
Anbei das Beispiel für den Timer Datenpunkt:
{„type“:“number“, „min“:0, „name“:“Timer Brunnenpumpe“,“unit“:“Minuten“}
Pumpintervalle ohne Balkonkraftwerk
Kommen wir zur eigentlichen Brunnenpumpensteuerung. Dazu habe ich mir als Trigger einen Zeitplan ausgesucht, welcher jede Minute zwischen 9 Uhr morgens und 21 Uhr abends auslöst. Den Zeitraum empfand ich als passend, da die Nachbarn nicht nachts durch das Geräusch der Pumpe gestört werden. Es versteht sich von selbst, dass ihr den Trigger auf 24/7 einstellen könnt.
Im nächsten Schritt folgt ein “falls”-Baustein, welche überprüft, ob der Datenpunkt “Timerbrunnenpumpe” gleich 0 ist. Insofern dies nicht der Fall ist, wird im “sonst” Abschnitt eine Aktualisierung des Datennpunktes “Timerbrunnenpumpe” ausgelöst, welcher vom bisherigen Wert eins abzieht. Damit wird sichergestellt, dass die Pumpe nur alle 20 Minuten Wasser fördert. Das Setzen des Timers auf 20 folgt im “mache” Abschnitt.
Unter dem “mache” Abschnitt befindet sich eine weitere “falls” Abfrage, welche überprüft, ob der Datenpunkt “Pumpe_aktiv” wahr ist. Trifft dies zu, wird die Pumpe eingeschaltet und ein Timeout von 45 Sekunden abgewartet. Nach 45 Sekunden wird die Stromversorgung zur Pumpe unterbrochen. Abschließend wird der Datenpunkt “Timerbrunnenpumpe” mit dem Wert 20 aktualisiert.
Damit sollte euer Blockly identisch zu dem folgenden Screenshot aussehen, jedoch noch keine Notabschaltung beinhalten:
Pumpintervalle mit Balkonkraftwerk
Wenn wir die Pumpintervalle mit Hilfe der selbst erzeugten Energie steuern wollen, aber auch ohne diese, müssen wir das vorherige Blockly wie folgt umbauen.
Als erstes lagern wir das Einschalten der Pumpe, den 45 Sekunden Timeout, das Ausschalten und das setzen des 20 Minuten Counters in einer separaten Funktion aus. Dadurch sparen wir uns die Bausteine doppelt in der Blockly einzusetzen und es wird übersichtlicher.
Im zweiten Schritt erweitern wir den “falls”-Baustein, welcher sich unter “mache” des ersten “falls”-Baustein befindet um “sonst falls”. Dazu einfach auf das Zahnradsymbol im blauen Viereck tippen und die Erweiterung hinzufügen. Im “mache” Abschnitt des zweiten “falls”-Bausteins fügen wir eine Aktualisierung des Datenpunktes “Pumpe_aktiv_solar” hinzu und aktualisieren diesen mit falsch. Direkt darunter folgt das Ausführen der gerade angelegten Funktion “Wasser fördern”. Die Aktualisierung des Datenpunktes “Timerbrunnenpumpe” bleibt bestehen.
Im nächsten Schritt kopieren wir den Inhalt von “mache” in den zweiten “mache” Abschnitt unter “sonst falls”. Die Aktualisierung des Datenpunkts “Pumpe_aktiv_solar” können wir danach löschen. Zuletzt folgt die Bedingung welche zutreffen muss, um die Inhalte unter “mache” des “sonst falls” Abschnitts auszulösen. Die Prüfung besteht im ersten Moment darin, zu prüfen, ob der Datenpunkt “Pumpe_aktiv_solar” wahr ist. Im zweiten Schritt prüfe ich, ob wir gerade Strom über den Stromzähler einspeisen. Den Wert, wie viel Strom ihr eingespiesen müsst, dass die Bedingung zutrifft, ist euch überlassen. Ich habe diesen auf 100 Watt gesetzt. Diese beiden Bedingungen werden abschließend “und” verknüpft. Was bedeutet, dass nur wenn beide zutreffen, die Inhalte aus “machen” ausgeführt werden. Wie ihr euren Stromzähler in den ioBroker bekommt, habe ich in diesem Beitrag ausführlich beschrieben.
Jetzt sollte euer Blockly folgendermaßen aussehen:
Notabschaltung
Wie bereits erwähnt, greife ich bei der Notabschaltung auf einen einfachen Trick zurück. Ich konnte im Verlauf der Zeit feststellen, dass die Pumpe bei vorhandenem Wasser zwischen 880 und 990 Watt benötigt. Sobald kein Wasser mehr vorhanden ist fällt die Leistung auf kleiner 600 Watt ab. Diese Messwerte nehme ich mir zu Hilfe und schalte die Pumpe einfach aus, wenn der Wert kleiner 600 Watt sein sollte. Das Blockly sieht dazu folgendermaßen aus:
Feinheiten
Kommen wir zum letzten Feinschliff des Scripts. Es besteht bei mir die Möglichkeit die Pumpe auch manuell über den Schalter zu betätigen. Damit kann es vorkommen, dass die Pumpintervalle den 20 Minuten Takt unterschreiten, womit die kurzzeitige Gefahr des Leerpumpens des Rohrs besteht. Dies fange ich damit ab, wenn der Power Wert des Shellys über 800 Watt geht, dass der Datenpunkt “Timerbrunnenpumpe” auf 20 gesetzt wird.
Aktuell würde an zwei Stellen der Timer auf 20 gesetzt werden. Einmal im Trigger der Notabschaltung und einmal im vorher beschriebenen Blockly. Das macht natürlich keinen Sinn, darum könnt ihr die Aktualisierung des “Timerbrunnenpumpe” auf 20 im vorherigen Blockly entfernen, insofern ihr einen externen Schalter habt. Trifft dies nicht zu, könnt ihr den Schritt in der Notabschaltung sparen.
Zuletzt möchte ich noch den Datenpunkt “Pumpe_aktiv” auf falsch setzen, wenn der Datenpunkt “Pumpe_aktiv_solar” wahr ist. Dazu habe ich einen Trigger auf “Pumpe_aktiv_solar” gesetzt und wenn dies “wahr” ist, wir eine aktualisierung des Datenpunkts “Pumpe_aktiv” auf falsch durchgeführt.
Die gesamte Konfiguration könnt ihr euch natürlich auch als Video ansehen.
Sie sehen gerade einen Platzhalterinhalt von YouTube. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.
Mehr InformationenFazit
Unsere smarte Brunnenpumpensteuerung haben wir seit über einem Jahr, nach anfänglichen Schwierigkeiten, zuverlässig im Einsatz. Seitdem hat die Automatisierung weit mehr als 40.000 Liter gefördert, was uns im letzten Sommer des Öfteren die Pflanzen gerettet hat.
Wie ihr richtig festgestellt habt, bin ich an keiner Stelle auf die Abschaltung bei vollem Wassertank eingegangen. Dies beruht auf der einfachen tatsache, dass ich mit mehreren Lösungen experimentiert habe und keine bisher zuverlässig funktioniert hat. Zurzeit habe ich mir damit geholfen, nach einer Fördermenge von 700 Litern den Pumpvorgang zu stoppen und erst nach einer Entnahme von mehr als 600 Litern diesen wieder freizugeben. Die Entnahmemenge messe ich ebenfalls über Eddy’s Wasserzähler, wovon ein zweiter an unserer Bewässerungspumpe installiert ist.
Die Kombination mit unserem Balkonkraftwerk ist ein nettes Feature, welche über das Jahr den Eigenverbrauch um die ein oder andere Kilowattstunde erhöht. Offen gesagt, aber kaum ins Gewicht fällt. Trotzdem ist das Gewissen des Balkonkraftwerkbetreibers damit etwas besänftigt 🙂
Abschließend kann ich euch mitgeben, dass dies eine von vielen Lösungen ist, wie man eine solche Herausforderung lösen kann. Mir ist auch bewusst, dass es fertige Lösungen am Markt gibt, doch wo bleibt dabei der Spaß am eigenen Smart Home oder in diesem Fall Smarten Garten?
Moin, mal wieder ein spannender Beitrag!
Ich habe in unserem Revisionsschacht ein einfach Wasserstandsmeldung nach gebaut die mich warnt falls meine Drainage Pumpe mal ausfällt.(Ist schon einmal passiert). Ich habe dies mit einem Fenstersensor, 2 Kabelröhren und einer Flasche realisiert. Das Prinzip ist Recht simpel. Die Flasche ist am dünnen Rohr befestigt. Schwimmt im Wasser. Das dünnerohr ist in dicken Rohr, welches als Führung dient. Oben am dünnen Rohr ist der Fensterkontakt befestigt. Steigt das Wasser, kommt der Sensor irgendwann an den Kontakt. Zack Meldung das zu viel Wasser drin ist. Das ist quasi das Prinzip eines Schwimmers. Simpel und läuft sehr gut. Vielleicht eine Idee für Dich.
Hi Christian, das klingt interessant und wirklich einfach zu realisieren. Das werde ich mal testen! Welchen Kontaktsensor hast du verwendet? Gerade im Bezug auf die Feuchtigkeit könnte ich mir vorstellen, dass der Sensor schnell kaputt geht?