Nerds im Garten - das passt zusammen. Denn auch der Garten lässt  sich mit etwas Technik "pimpen".

Meine bisher realisierten Projekte:

Nerds im Garten - das passt zusammen. Denn auch der Garten lässt  sich mit etwas Technik "pimpen".

Meine bisher realisierten Projekte:

Automatische Wasserzufuhr

 

Automatische Wasserzufuhr

Wir haben - u.a. für unsere Hobby-Tierhaltung - an diversen Stellen im Garten Wasserzapfmöglichkeiten.

Dazu haben wir Schläuche mit Schaumstoff-Isolierung versehen, diese in ein PE-Rohr verlegt und eingegraben. An Stellen, an denen das Wasser gezapgt wird, liegt diese Leitung natürlich ein kleines Stück offen. Es kann im Winter also schonmal passieren, dass die Leitung an diesen Stellen einfriert. Auch ist uns im Sommer schonmal ein Stück offener Schlauch geplatzt, weil die Sonneneinstrahlung das unter Druck stehende Wasser im Schlauch zum kochen gebracht hat.

Das Problem konnte ich lösen, indem ich ein Gardena-Ventil am Hauptwasserhahn monitiert habe. Dieses Ventil habe ich an einen Schaltaktor unseres "Smart-Home"-Systems gehängt. Wir können jetzt das Wasser aus der Ferne an- und Ausschalten. Fernschalter dafür - direkt an den Zapfstellen - sorgen dafür, dass man den Wasserdruck abbauen kann. Es wird dann einfach bei laufendem Wasser abgeschaltet und der Schlauch läuft leer.

Das Ventil sitzt direkt am Hauptwasserhahn in einem kleinen Holzkasten an der Aussenwand. Da es 24V AC benötigt, habe ich einen Ringkern-Trafo vorgeschaltet. Hinter dem Ventil ist eine kleine Schaltschrank-Heizung zu erkennnen. Diese wird von einer Thermostat-Steckdose bei Minusgraden aktiviert und verhindert zuverlässig ein Einfrieren des Ventils und des Hauptwasserhahns.

 

Bachlauf mit Pumpe

 

Bachlauf mit Pumpe

Da unser Grundstück ein leichtes Gefälle hat, war es nicht schwierig einen kleinen Bauchlauf zu realisieren.

Zunächst haben wir einen Bauchlauf ausgegraben und den Graben von Wurzelresten und Steinen befreit. Darin wurde dann ein Flies und eine lange schmale Teichfolie verlegt. Solche Folien kann man in jeder möglichen Abmessung im Internet bekommen.

Wir haben die Folie "in einem Stück" verlegt um Klebestellen zu vermeiden. Dabei ist natürlich zu beachten, dass man die Folie etwas breiter bestellen muss, damit man sie in den Kurven des Bachlaufes in Falten legen kann. Auf die Folie kommt dann noch Bachkies (Baummarkt) und Feldsteine für den Rand (gesammelt).

Das Pump-Reservoir:

Am Ende des Bauchlaufes habe ich dann ein tiefes Loch gegraben und dort eine rechteckige Regentonne mit versteiften Wänden versenkt. In eine Seitenwand dieser Tonne habe ich mit der Flex einen Schlitz geschnitten und das Folienende hineingelegt.

Abgedeckt haben wir die Tonne mit ein paar zusammengeschraubten Hartholz-Terrassendielen:

Hier läuft das Wasser dann in die Tonne. Zum Schutz für Kleintiere habe ich davor ein Gitter aus VA montiert - so kann kein Frosch in die Tonne geraten.

In der Tonne habe ich dann eine Teichpumpe versenkt. Diese pumpt dann das Wasser durch einen unterirdischen Schlauch (Isolierung und PE-Rohr, ähnlich wie bei unserer Wasseranlage) zur Quelle:

Die Pumpe hat zwar nur 20W, damit sie aber nur läuft, wenn wir zuhause sind habe ich eine Zeitschaltuhr montiert. Mit der Zeit ist der Bach richtig schön bewachsen und die Frösche lieben Ihn !

 

 

The Island - die schafsichere Terrasse

Die schafsichere Terrasse "The Island"

Unsere Schafe laufen frei auf unserem Grundstück herum und halten den Rasen kurz. Der entscheidende Nachteil dieses Konzeptes ist, dass sie im Gegensatz zum Mäh-Roboter alles fressen, was irgendwie in Reichweite ist.

Für unsere Terrasse „The Island“ haben wir uns dafür eine „Insellösung“ ausgedacht.

Zunächst haben wir ein hölzernes Podest gebaut, das auf Waschbetonplatten verschraubt ist.

Wir wollten die Terrasse mit Wasser umgeben, da gehen die Schafe nicht drüber. Aber direkt hinter dem hölzernen Podest stehen Bäume. Um deren Wurzeln nicht zu beschädigen, konnten wir also nicht allzu tief graben.

Wir haben uns also für eine Lösung aus 4 Fertig-Teichschalen entschieden. Diese haben wir im Halbkreis um unser Podest arrangiert, minimal eingegraben und mit Regentonnen-Schlauchverbindern verbunden.

Ein spezieller Kleber und etwas Silikon sorgt für eine wasserdichte Verbindung:

 

 

Von der ganz linken Teichschale wird das Wasser zu einem Wasserspeier-Löwenkopf gepumpt. Der Löwenkopf spuckt das Wasser in einen alten Zinkeimer:

 

 

 

In den Boden des Eimers haben wir ein kreisrundes Loch geschnitten und einen Waschbecken-Ablauf montiert. Das Wasser aus diesem Ablauf füllt das ganz rechte Teichbecken.

Wenn der Wasserpegel die höhe des Regentonnen-Verbinders erreicht hat, läuft es in das nächste Becken. Und so weiter – bis es das linke Becken mit der Pumpe wieder erreicht hat.

Die Teichschalen haben wir mit einem Erdwall zugeschaufelt (vorher haben wir natürlich den Wasserlauf getestet) und mit Grasssoden von unserer Wiese garniert. Auf der „schafssicheren“ Seite haben wir Teichpflanzen eingesetzt. Eine aus Beton geschüttete Trittstufe verschafft uns Zugang zur Terrasse - die Schafe sind dazu zu doof.

Die Teichpumpe aus dem linken Becken haben wir außerdem in unser Smarthome einbunden - so können wie den Wasserfluß vom Haus aus steuern.

Mittlerweile ist das Konstrukt sehr schön zugewachsen und es sind bereits einige Untermieter eingezogen, die jede Nacht ein tolles Konzert geben!

 

Bewässerung mit FHEM-Smarthome-Anbindung

 

Bewässerung mit FHEM-Smarthome-Anbindung

Für das An- und Ausschalten der Wasserversorgung unsrer Ställe verwenden wir schon seit langer Zeit ein Gardena 24V-Ventil.
In der Sommerzeit wollen viele Pflanzen in unserem Garten gegossen werden. Wir wohnen auf dem Land, da sind die Grundstücke größer und das Blumengiessen war schon sehr zeitaufwendig.
Wir haben uns also mit einer Gartenbewässerung mit versenkbaren Regnern beschäftigt und haben uns für das Rohr-System von Gardena entschieden.

Die Technik wollte ich aber „selber machen“ - ein solches System muß schließlich unbedingt in unser FHEM.
Bevor es an die Technik geht, mussten wir erstmal die Gräben für die Wasserrohre graben.

Da der Wasserdruck auf unserem Gartenwasserhahn relativ gering ist, habe ich mich für eine sternförmige Verlegung entschieden, also ein Rohr zu jedem Versenk-Regner.

Ungefähr 200m 25mm-Rohr haben wir spatentief verbuddelt. Tiefer muß das nicht, denn zum Winter wird das System mit Druckluft durchgepustet. Das Gardena-System liefert jede Menge Steckverbinder, L-Stücke und  T-Stücke. Die Rohre sind dadurch super einfach zu verbinden und die Verbindungen sind sofort druck- und wasserdicht.

Die Regner werden so eingegraben, dass sie bündig mit der Rasenkante abschließen – dann kann der Rasenmäher drüber fahren, ohne dass er die Dinger schrotet:

Es gibt verschiedene Regner für alle Flächen, wir haben uns für die einfachste Variante entschieden. Auch hier kann man die „Bewässerungsfläche“ perfekt einstellen – für unsere Bedürfnisse war das ideal. Anstelle der Gardena-Ventile haben wir uns für eine etwas günstigere Variante von Hunter entschieden. Wir haben einen kompletten „Headend-Bausatz“ mit 8 Ventilen und allen Verteilern im Internet gekauft.

Hier ein Bild des fertig montierten Headends:

Auf dem Bild sind neben den 8 Ventilen für die Bewässerung auch das Haupt-Ventil für die Versorgung unserer Ställe sowie 2 weitere Ventile für "Wassersteckdosen (dazu mehr in einem anderen Artikel) zu sehen .

Die Ansteuerung der 8 Sprinkler-Ventile habe ich über eine preisgünstige China-8fach-Relaiskarte realisiert. Diese Relaiskarte wird über die GPIO eines Raspberry-Pi angesteuert:

Zunächst habe ich mir also auf einem Raspberry Pi 3 B+ ein aktuelles Raspberry PI OS (vormals Raspbian) installiert.

Diesem Pi habe ich ein feste IP-Adresse zugewiesen und dann eine FHEM-Instanz zur Steuerung der GPIO-Ports darauf installiert.

Damit ich zusätzlich jederzeit auf den Pi per remote-Desktop  zugreifen kann, habe ich mir einen XRDP-Server installiert (der standardmässige RealVNC-Server muß  dafür deinstalliert werden):

sudo apt-get purge realvnc-vnc-server
sudo apt-get update
sudo apt-get install xrdp

Im FHEM gibt es das Modul RPI_GPIO - damit geht die Ansteuerung ganz einfach:

define [Name] RPI-GPI [port]

Ich habe die Relais meiner Relaiskarte p1 bis p8 genannt, also:

define p1 RPI_GPIO 14

(weil der GPIO-Port 14 verwendet wird)

zusätzlich muß definiert werden, ob der Port als Ein- oder Ausgang genutzt werden soll:

attr p1 direction output

Da die Relaiskarte auf LOW-Pegel einschaltet, muß man auch das dem FHEM mitteilen:

attr p1 active_low yes

Und das war‘s auch schon, der dummy „p1“ ist jetzt in der Lage, das Relais zu schalten.
Das Ganze machen wir jetzt für alle 8 Relais, die GPIO-Ports sind natürlich frei wählbar:

define p2 RPI_GPIO 18
attr p2 direction output
attr p2 active_low yes

usw...

Die Relaiskarte wird übrigens direkt vom Pi mit 5V versorgt, eine eigene Stromversorgung ist nicht notwendig.

 

Jetzt zum Haupt-FHEM:

Weil ich die Relais über meine Haupt-FHEM-Instanz steuern möchte, habe ich den Remote-Pi mit der Relais-Platine über das Modul RFHEM eingebunden:

define <name> RFHEM host[:port] [pw]

also:

define sprinkler RFHEM IP-DES_REMOTE_PI:port Passwort

Jetzt kann die Hauptinstanz bereits die Relais des Remote-Pi schalten:

set sprinkler cmd set p1 on

(„sprinkler“ ist der Name des definierten RFHEM-Pis und per „cmd set p1 on“ schaltet p1 auf dem Remote-Pi an)

Im Haupt-FHEM habe ich mir dazu noch dummys angelegt, die auch p1-p8 heissen und den RFHEM-Befehl ausführen:

define p1 dummy
attr p1 setList on off
dazu 2 DOIFs, die auf den dummy reagieren:
define p1AN DOIF ([p1:state] eq "on") (set sprinkler cmd set p1 on)
define p1AUS DOIF ([p1:state] eq "off") (set sprinkler cmd set p1 off)

define p2 dummy
...

Jetzt lassen sich die Relais genau wie im Remote-Pi schalten.
Die Relais habe ich ausgangsseitig an einen 24V Ringkerntrafo angeschlossen, der je nach aktiviertem Relais jeweils 1 Ventil schaltet.

Primär- und sekundärseitig bekommt der Trafo noch eine Sicherung für den "Fall der Fälle".

Damit der Ringkerntrafo nicht ständig „unter Strom“ steht, schalte ich die Primärseite mit einem Homematic-Schalter. Ist dieser Schalter aus, schalten auch keine Ventile.

Wenn im Floorplan ein Sprinkler angeschaltet wird, sollen wegen des ansonsten zu geringen Wasserdrucks alle anderen ausgeschaltet sein. Und der Homematic-Schalter (ich habe ihn „sprinklerswitch“ genannt) soll natürlich schalten. Also habe für p1-p8 jeweils einen Hilfsdummy mit DOIF angelegt. Dieser sorgt dafür, das jeweils nur ein Ventil öffnet:

define p1s dummy
attr p1s setList on off
define p1sACT DOIF
([p1s:state] eq "on") (set p2s off; set p3s off; set p4s off; set p5s off; set p6s off; set p7s off; set p8s off) (set sprinklerswitch on; set p1 on) DOELSEIF ([p1s:state] eq "off") (set sprinklerswitch off; set p1 off)

Um die Umschaltung zwischen 2 Sprinklern etwas zu verzögern bekommt das DOIF noch ein "wait"-Attribut:

attr p1sACT wait 0,2

Das DOIF für den zweiten dummy „p2s“ sieht dann so aus (=alle aus ausser „p2“):

([p2s:state] eq "on") (set p1s off; set p3s off; set p4s off; set p5s off; set p6s off; set p7s off; set p8s off) (set sprinklerswitch on; set p2 on) DOELSEIF ([p2s:state] eq "off") (set sprinklerswitch off; set p2 off)

Damit kann ich mir 8 Regner auf den Floorplan legen – sobald ich einen aktiviere, gehen andere aus:



Ich habe mir außerdem eine Automatik für den Regner ausgedacht: alle Regner sollen nacheinander einschalten: wenn Regner 1 eine Zeit gelaufen ist, wird der abgeschaltet. Dann kommt Regner 2, usw. - bis alle 8 Regner fertig sind.

Für den Floorplan-Dummy habe ich das Symbol einer Blume mit 8 weißen Blütenblättern gewählt.
Blütenblatt 1 färbt sich grün, wenn Regner 1 aktiv ist, dann Blütenblatt 2, usw – bis alle 8 Blütenblätter grün sind.
Dafür habe ich mir 8 .png-Grafiken mit den jeweiligen Blütenblatt-Färbungen angelegt und diese für den jeweiligen Zustand als devStateIcon definiert:

 

define pcount dummy
attr pcount setList on off
attr pcount devStateIcon on:bew0.png off:bew0.png 0:bew0.png 1:bew1.png 2:bew2.png 3:bew3.png 4:bew4.png 5:bew5.png 6:bew6.png 7:bew7.png 8:bew8.png

Hier im Zeitraffer-Video:

Für den Floorplan sieht es zwar nett aus, es soll auf klick (oder touch) ja aber jederzeit an- und abschaltbar sein.

Das Problem ist, wenn der „state“ z.B. gerade auf „7“ steht, dann macht ein klick auf die blume den status „on“ und nicht „off“.

Ich setzte also (noch einen) dummy, quasi als variable:

define vardum dummy 
set vardum 1

An- und Aus bei klick auf die Blume geht mit Hilfe dieses dummys so:

define pcountAN DOIF ([pcount:state] eq "on" and [vardum:state] ne "2") (set pprog on; set vardum 2)
define pcountAUS ([pcount:state] eq "on" and [vardum:state] ne "1") (set pprog off; set vardum 1; set sprinklerswitch off)

Das eigentliche „Bewässerungsprogramm“ erledigt ein weiterer dummy mit DOIF namens pprog:

define pprog dummy
attr pprog setList on off
attr pprogAN DOIF ([pprog:state] eq "on") (set sw1 on; set sprinklerswitch on; set pcount 1; set p1 on) (set sw1 on; set pcount 2; set p1 off; set p2 on) (set sw1 on; set pcount 3; set p2 off; set p3 on) (set sw1 on; set pcount 4; set p3 off; set p4 on) (set sw1 on; set pcount 5; set p4 off; set p5 on) (set sw1 on; set pcount 6; set p5 off; set p6 on) (set sw1 on; set pcount 7; set p6 off; set p7 on) (set sw1 on; set pcount 8; set p7 off; set p8 on) (set p8 off; set pprog off; set sw1 off) (set pcount 0) (set vardum 1) (set sprinklerswitch off) DOELSEIF ([pprog:state] eq "off") (set p1 off) (set set p2 off) (set p3 off) (set p4 off) (set p5 off) (set set p6 off) (set p7 off) (set p8 off) (set pcount 0) (set vardum 1) (set sprinklerswitch off) (set sw1 off)

Über ein DOIF-wait laufen die Regner jeweils 64 Sekunden, andere Zeitspannen gehen natürlich auch:

attr pprogAN wait 0,64,64,64,64,64,64,64,64,0,0,0

Ich habe 64 Sekunden gewählt, weil dann 4 Sekunden für die „Hydraulik" berücksichtigt werden - der Regner läuft also jeweils ca. 1 Minute.

Jetzt fehlt noch der countdown über der Blume – so wird angezeigt, wieviel Zeit Regner x aktuell noch läuft:

https://forum.fhem.de/index.php/topic,72151.msg658696.html#msg658696

define wtime dummy

(der kommt in den Floorplan)

setreading wtime elapsed 60
setreading wtime total 0
attr wtime devStateIcon 60:transparent.png

(bei state =  60 wird ein transparentes .png angezeigt, 1 Pixel reicht)

attr devStateStyle style= "color:orange;;font-size:120%;;font-weight:bold;;"
define sw1 dummy
attr sw1 setList on off
define n_set_timer_action notify sw1 { if ($EVENT eq "on") {fhem("set on_timer_action active")} else {fhem("set on_timer_action inactive"); fhem("setreading wtime elapsed 60")} }
define on_timer_action +*00:00:01 {my $e = ReadingsVal("wtime", "elapsed", 0);; $e += -1;; if ($e < ReadingsVal("wtime", "total", 0)) {fhem("set on_timer_action inactive");; $e = 60;;} fhem("setreading wtime elapsed $e");;}
set on_timer_action inactive

Der Countdown zählt jetzt für jeden Regner herunter, wenn alle Regner fertig sind (der wtime hat den state „60“) wird er aufgrund des transparenten devStateIcons „ausgeblendet“.

Zum Schluß bekommt das ganze noch ein wetterfestes Häuschen:

Jetzt können wir auf "Knopfdruck" das Grundstück bewässern. Weitere Anwendungen wie Bewässung nach Zeit, nach Trockenheit (Bodenfeuchtesensor) oder

nach Wetterbericht sind natürlich denkbar (und da die "Infrastruktur" steht auch relativ einfach umzusetzen). Uns reicht allerdings erstmal diese Variante, mit

ein paar Zeilen Code kann das sicher ausgebaut werden.

Die Sprachsteuerung ("Moneypenny, schalte die Bewässerungsautomatik an") haben wir natürlich schon umgesetzt ;-)

Hierzu gibt es wieder einen "Hilfsdummy", der die "Blume" und somit die Sprinklerautomatik aktiviert und deaktiviert:

define mp_sprinkler dummy
attr mp_sprinkler setList on off
define mp_sprinklerAN DOIF ([mp_sprinkler:state] eq "on") (set pprog on; set vardum 2)
define mp_sprinklerAUS DOIF ([mp_sprinkler:state] eq "off") (set pprog off; set vardum 1; set sprinklerswitch off)

Sprinkler "in action":

 

Wo der Bewuchs höher ist, habe ich den Sprinkler auf ein "Stativ" montiert: