Mein Ziel ist eine vollautomatische Steuerung für den Rasensprenger. Es soll aus Wetterdaten entschieden werden ob und wenn ja wie lange gesprengt wird. Ich nutze dazu Yr.no. Leider habe ich gestern festgestellt, dass es den ganzen Vormittag geregnet hat und trotzdem "Forecast of precipitation level for today (rain/snow)" mit 0mm angezeigt wurde. Blöde. Es war also abends noch alles nass und er hätte sprengen wollen. Die Wetterbeschreibung wäre hier besser, wird aber schwierig auszuwerten, da Text. Gibts eine Liste mit möglichen Ansagen? Dann kann man eine wenn-dann-Kette aufbauen. Ansonsten fliessen die Temperaturen, Niederschlagswerte und Luftdruck jeweils von HEUTE und MORGEN in die Berechnung ein. Es werden Sprengerzeiten von 1 bis 120min erzeugt, wobei alles unter 30min ignoriert wird. Ob ich noch eine Obergrenze einbaue werde ich sehen.
Einige Probleme wäre ich mit einem Bodenfeuchtesensor los. Vielleicht baue ich noch einen ein. Mein Ziel ist aber eher: wenig Hardware, viel Intelligenz.
Die Zeitberechnung steht so weit. Wie praxisnah die Werte sind, wird sich erst später zeigen und Korrekturen sind sicher nötig.
Dann soll z.B. der Rasensprenger eingeschaltet werden. Dazu wird 1Std. vor Sonnenuntergang die Einschaltzdauer neu berechnet, per Telegram geschickt (Kontrolle) und der Sprengerstart angekündigt. Bei Sonnenuntergang wird gestartet wenn:
-Die berechnete Zeit über 30min liegt, (Klappt)
-mehrere Bewegungsmelder bestätigen, dass seit 10min niemand im Garten war (klappt)
Was noch nicht klappt, sind dynamische Zeiten. Also falls der Rasen noch nicht freigegeben ist, soll das Script warten bis Freigegeben und dann die errechnete Zeit eingeschaltet sein. Falls tatsächlich die ganze Nacht durchgefeiert wird, soll ab Sonnenaufgang die ganze Sache beendet und ignoriert werden. Ich vermisse in Blockly irgendwas wie "Wait until <irgendwas>" oder die Möglichkeit Variablen in die Verzögerung des "Steuere"-Befehls zu setzen. Sicher gibts einen Workaround. Kann mir wer helfen?
Ich habe im Moment 3 Scripte:
-Überwachung Bewegungsmelder: Setzt einen Datenpunkt auf Wahr oder Unwar, je nachdem 10min lang die Bewegungsmelder nicht angeschlagen haben.
-Sprengzeitberechnung: wird 10min vor Sonnenuntergang gestartet und berechnet die Länge der Einschaltzeit, legt diese in Datenpunkt ab.
-Rasensprenger: (noch nicht fertig) soll falls "Einschaltzeit" über 30min ab Sonnenuntergang gucken, ob Rasen frei, ggf warten. Dann einschalten und nach Ablauf der Zeit aus dem Datenpunkt ausschalten. Falls während des Sprengens jemand den Rasen betritt wird das ignoriert: selbst schuld!