FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: RaspiCOC am 23 Juni 2014, 11:38:10

Titel: Wetterabhängige Bewässerung
Beitrag von: RaspiCOC am 23 Juni 2014, 11:38:10
Hallo zusammen,

ich habe neben Steuerung der Heizung und Anwesenheitssimulation mit Funksteckdosen nun auch eine Gartenbewässerung realisiert, die über Relais (GenShellSwitch) insgesamt 3 Magnetventile steuert. Das funktioniert ad hoc und auch zeitbasiert ganz wunderbar.

Zeitbasiert habe ich für alle drei Bewässerungskreise jeweils Bewässerungszeiten am Abend und am frühen Morgen eingerichtet. Das ist ja auch ganz prima, wenn das Wetter auch eine Bewässerung erfordert. Ich hatte dann über den Einsatz von Bodenfeuchtesensoren nachgedacht, bin aber zu dem Schluss gekommen, dass die Bodenfeuchtesensoren entweder preisgünstig und dafür ungenau bis gar nicht brauchbar sind oder eben rasend teuer. Insofern kam mir die Idee auf die Bodenfeuchtesensoren zu verzichten und lieber Wetter Ist- und Prognosedaten zu verwenden.

Das könnte wie folgt aussehen:

Bewässerungsslot ohne Wetterdaten: Standard --> 15 Minuten bewässern, aus Erfahrungswert bei Durchschnitttemperatur ca. 22 Grad ermittelt.
Bewässerungsslot MIT Wetterdaten: Ermittlung Durchschnittstemperatur IST z.B. zwischen 09:00 und 18:00 --> 28 Grad (28 Grad / 22 Grad = 1,27 ==> Standardbewässerung 15 Minuten * 1,27 = 19,1 Minuten)
Nimmt man jetzt noch die Wetterprognose mit rein, z.B. 30% Regenwahrscheinlichkeit, dann könnte man die 19,1 Minuten noch mal um 30% kürzen (oder vielleicht nur um die Hälfte also 15% um Prognosefehler zu berücksichtigen) ==> 13,4 Minuten

Wie könnte ich das unter Verwendung des Wetterfeeds aus dem Wettermodul realisieren?

Ich müsste dann ja irgendwie mit verschiedenen Variablen arbeiten und irgendwie die Durchschnittswerte ermitteln. Vielleicht hat ja jemand von Euch so etwas schon mal zusammengebastelt...

Freue mich auf Anregungen und vor allem Lösungen, die mir als Codelaie weiterhelfen.
Titel: Antw:Wetterabhängige Bewässerung
Beitrag von: RaspiCOC am 01 Juli 2014, 12:11:02
Kann mir niemand sagen, wie ich die Durchschnitttemperatur ermitteln kann und dann basierend auf einer Variable die fixe Zeitsteuerung dynamisieren kann?
Titel: Antw:Wetterabhängige Bewässerung
Beitrag von: peterchen89 am 01 Juli 2014, 12:25:26
Von hinten nach vorne: Du könntest die Ventile mit einem on-for-timer auslösen und da einen dynamischen Wert für die Öffnungszeit reingeben. Das on-for-timer wird von einer Perl Funktion ausgelöst und die wird zu deiner Bewässerungszeit mit at angetriggert. Die Bewässerungszeit könntest du z.b. mit dem Twilight Modul auch dynamisch machen.

Die Perl-Funktion müsste dann die Logik enthalten die die nötige Zeit ermittelt. Um eine Durchschnittstemperatur zu ermitteln könntest du Average (http://fhem.de/commandref.html#average) benutzen. Die Temperaturwerte musst du dann aber vorher in einem Logfile ansammeln. Regenwahrscheinlichkeit müsstest du dir eben von einer Schnittstelle abholen.

Denke aber am sinnvollsten dürfte eine Kombination aus voraussichtlicher Regenmenge in den nächsten X Stunden (woher auch immer man das bekommt?) und die tatsächliche aktuelle Bodenfeuchte sein. Vielleicht reicht dir schon ein Bodenfeuchtesensor an einem Referenzpunkt aus?
Titel: Antw:Wetterabhängige Bewässerung
Beitrag von: RaspiCOC am 03 Juli 2014, 13:29:37
Ich schalte die Ventile bereits mit einem "at" zu festen Zeiten. Die Idee mit dem Twilight Modul nutze ich z.B. um Licht dynamisch zu schalten. Das macht aber bei der Gartenbewässerung nicht so irre viel Sinn, ausser, dass die Komplexität erhöht wird.

Die Wetterdaten werden alle in ein Log geschrieben und liegen auswertbar vor. Das ist aber mein eigentliches Problem...

Idealer Weise würde mit einem "at" kurz bevor die Bewässungskernzeiten beginnen, ermittelt werden, welche Durchschnittstemperatur an eben diesem Tag zwischen 10 und 17 Uhr geherrscht hat. Das Ergebnis kommt dann in eine Variable, die dann in den nachfolgenden Bewässerungs-"at"'s verwendet wird. Gleichzeitig soll z.B. über die letzten 4 Stunden vor dem großen Bewässerungsevent geschaut werden, ob im Wetterlog die weather_condition: Rain vorgelegen hat. Wenn ja, dann in eine Variable "True" schreiben.

Zusammen mit dem on-for-timer und den zwei Werten aus der Variable, könnte man dann die Bewässerungsdauer ermitteln. Im Prinzip von 0sek bis wie auch immer (jedoch gedeckelt).

Über die Bewässerungssensoren hatte ich auch schon nachgedacht. Entweder die sind saubillig und funktionieren vermutlich schlecht oder sie kosten ein kleines Vermögen. Daher der Gedankengang mit den ex-post Wetterdaten.