Ankündigung

Einklappen
Keine Ankündigung bisher.

Automatische Gartenbewässerung

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Automatische Gartenbewässerung

    Hallo zusammen, das ist mein erster Beitrag hier :-)
    Vor kurzem habe ich bei mir eine Bewässerung von Gardena im Garten verbaut. Es sind drei Kreise. Derzeit muss ich die Bewässerung manuell starten. Es werden dann die drei Kreise hintereinander in der jeweils gewünschten Länge aktiv geschalten.
    Nun möchte ich dies jedoch gerne automatisieren.
    Ziel ist es, wenn es die letzten 24 Stunden nicht geregnet hat, soll die Bewässerung automatisch zwischen 6 Uhr und 9 Uhr morgens starten.
    Der Regen wird über eine Wetterstation (Regen ja / nein) gemeldet. Das Item heißt Wetter_Niederschlag. Die Bewässerung starte ich mit dem Item Bewaesserung_automatik.

    Irgendwie funktioniert meine rule nicht

    rule "Automatische Bewässerung"
    when
    Item Wetter_Niederschlag changed to OFF
    then Timer = createTimer(now.plusHours(24)) and
    (now.getHourOfDay >= 6 && now.getHourOfDay <9)[
    sendCommand(Bewaesserung_automatik, ON)]
    end

    Bin mit openHab noch nicht so fit, darum vielen Dank für eure Vorschläge / Lösungsansätze.



    #2
    Da stellst du dir die Logik doch etwas zu einfach vor. Ich habe verstanden, dass um 6 eingeschaltet und um 9 ausgeschaltet werden soll. Dazu soll um 6 Uhr geprüft werden, ob es die letzten 24 Stunden geregnet hat. Dafür würde ich ein eigenes Item vorsehen. Du merkst dir den Zeitpunkt an dem es das letzte Mal aufgehört hat zu regnen. Dann prüfst du um 6, ob es gerade regnet und ob der letzte Regen 24 Stunden her ist. Um 9 schaltest du wieder aus. Dafür brauchst du insgesamt 3 Rules.

    HTH
    Stefan

    Kommentar


      #3
      Vielen Dank für die schnelle Antwort.
      Aber wie "merke" ich mir den Zeitpunkt als es das letzte Mal geregnet hat und prüfe ob das 24 Stunden her ist?
      Bis jetzt habe ich nur ganz einfache Sachen mit OH umgesetzt

      Kommentar


        #4
        Hi,

        das gleiche Thema hatte ich auch schon einmal. Schau Mal hier: https://knx-user-forum.de/forum/supp...n-geregnet-hat

        Ich habe deine Wunsch Konfiguration ziemlich genau umgesetzt. Wenn du dich bis heute Abend gedulden kannst, fasse ich dir meine Einstellungen zusammen .

        Viele Grüße
        Patrick

        Kommentar


          #5
          Hallo Patrik,
          klar kann ich warten - bin ja um jede Hilfe dankbar :-)
          Den Beitrag aus dem Link habe ich auch schon gefunden, sitze aber irgendwie auf der Leitung und komme nicht weiter.

          VG Andi

          Kommentar


            #6
            Nur, um schon mal ein bisschen Aufklärung zu leisten...

            Zitat von andall Beitrag anzeigen
            Irgendwie funktioniert meine rule nicht
            ...
            Code:
            rule "Automatische Bewässerung"
            when
            Item Wetter_Niederschlag changed to OFF
            then Timer = createTimer(now.plusHours(24)) and
            (now.getHourOfDay >= 6 && now.getHourOfDay <9)[
            sendCommand(Bewaesserung_automatik, ON)]
            end
            Da sind ein paar tolle Befehle drin, leider aber allesamt mehr oder weniger fehlerhaft.
            Aber zumindest der Trigger-Teil der Rule sieht ganz gut aus. Danach kommt gleich der erste dicke Fehler. Wenn man eine Variable verwenden will, muss sie zuvor deklariert werden. Die Variable heißt in diesem Fall Timer. Leider ist Timer auch ein Schlüsselwort, was zumindest problematisch ist. Man sollte nie zu allgemeine Worte als Variablen verwenden.
            Danach kommt createTimer(), eine Funktion, die einen Timer generiert. Diese Funktion benötigt 2 Parameter, der erste ist der Zeitpunkt, zu dem der Timer ausgeführt werden soll, der zweite Parameter ist ein Lambda, also ein spezieller Codeblock, eben der Code, der ausgeführt werden soll, wenn der Timer abläuft.
            Dieser zweite Parameter kann außerhalb des Aufrufs angegeben werden, aber das führt dazu, dass die Zuordnung nicht so eindeutig ist. Im vorliegenden Fall hängt dieser Teil zu weit hinten, also ist die gesamte Definition fehlerhaft.
            and als Schlüsselwort gibt es in der openHAB Rule Engine nicht. Dann folgt eine condition, allerdings fehlt das Schlüsselwort if, und zu guter Letzt verwendest Du die Action sendCommand(), gibst aber als zweiten Parameter einen State an (die Action verlangt zwingend zwei Strings als Parameter)
            Das kann funktionieren, es gibt aber verschiedene Situationen, wo das schief geht. Du solltest Dir also gleich angewöhnen, die Methode zu verwenden, wo immer das möglich ist.

            Und im Forum ist es sinnvoll und wichtig, Code als Code zu posten, da die Forensoftware ansonsten automatisch Zeichen ersetzt (z.B. Doppelpunkt und p wird zu

            Die gleiche Rule, nicht funktional, aber zumindest syntaktisch korrekt:
            Code:
            var Timer tWasser = null
            
            rule "Automatische Bewässerung"
            when
                Item Wetter_Niederschlag changed to OFF
            then
                tWasser = createTimer(now.plusHours(24), [ |
                    if(now.getHourOfDay >= 6 && now.getHourOfDay < 9)
                       Bewaesserung_automatik.sendCommand(ON)
                ] )
            end
            Wie erwähnt, die Rule wird nicht das tun, was Du erreichen willst, aber zumindest ist sie syntaktisch korrekt und wird korrekt ablaufen.
            Zuletzt geändert von udo1toni; 10.08.2018, 22:27.

            Kommentar


              #7
              Zitat von zukunftathome Beitrag anzeigen
              Hi,

              das gleiche Thema hatte ich auch schon einmal. Schau Mal hier: https://knx-user-forum.de/forum/supp...n-geregnet-hat

              Ich habe deine Wunsch Konfiguration ziemlich genau umgesetzt. Wenn du dich bis heute Abend gedulden kannst, fasse ich dir meine Einstellungen zusammen .

              Viele Grüße
              Patrick
              Ich habe gerade in meinem Code gewühlt und es ist leider doch nicht in 5 Minuten zusammengeschrieben. Ich betrachte sowohl die Vergangenheit (hat es in den letzten 24 Stunden geregnet), als auch die Zukunft über die Wettervorhersage (wie hoch ist die Regenwahrscheinlichkeit für den Folgetag). Ich habe bereits angefangen alles in einen Artikel zu schreiben, werde es aber heute nicht schaffen es fertigzustellen. Ich melde mich so schell wie möglich mit der Anleitung zurück.

              Kommentar


                #8
                hallo udo1toni,
                vielen Dank für Deine Antwort.
                Frage: Wie stelle ich einen Code als Code ein? Danke

                Kommentar


                  #9
                  Hi Patrick,

                  kein Problem.
                  Vielen Dank.
                  Gruß Andi

                  Kommentar


                    #10
                    Zitat von andall Beitrag anzeigen
                    hallo udo1toni,
                    vielen Dank für Deine Antwort.
                    Frage: Wie stelle ich einen Code als Code ein? Danke
                    Habe es gefunden :-)

                    Kommentar


                      #11
                      [QUOTE=udo1toni;n1255326]Nur, um schon mal ein bisschen Aufklärung zu leisten...


                      ...
                      Code:
                      rule "Automatische Bewässerung"
                      when
                      Item Wetter_Niederschlag changed to OFF
                      then Timer = createTimer(now.plusHours(24)) and
                      (now.getHourOfDay >= 6 && now.getHourOfDay <9)[
                      sendCommand(Bewaesserung_automatik, ON)]
                      end

                      Habe das mal versucht und bekomme in der rule immer den Fehler : missing EOF at 'var'

                      Woran kann das liegen?
                      Danke.

                      Kommentar


                        #12
                        Hallo Andi, nachdem mich die Arbeit heute Abend ein wenig in Ruhe gelassen hat, konnte ich den Artikel zur automatischen Bewässerung fertig schreiben. Schau doch einfach mal rein: https://zukunftathome.de/bewaesserun...utomatisieren/ Bei Fragen stehe ich gerne zur Verfügung Hoffe es verwirrt nicht zu sehr.

                        Viele Grüße
                        Patrick

                        Kommentar


                          #13
                          Ich denke das ist ein erster guter Ansatz.

                          Aber: wenn jeden Tag bewässert wird (ob durch dich oder durch Regen) wird der Rasen nie tief wurzeln und strapazierfähig werden. 2 Minuten Beregnungszeit ist eigentlich auch viel zu wenig?

                          Rasen sollte eher wenig (alle 2 bis 4 Tage, je nach Wetter), dafür aber intensiv gewässert werden, so dass auch die tiefen Bodenschichten feucht werden und die Wurzeln in die Tiefe gehen (müssen).

                          Du findest diesen oder ähnliche Texte quasi in jedem Artikel bei einer Google Suche nach "Rasen bewässern".

                          https://www.mein-schoener-garten.de/...ewaessern-6651
                          Ein Kardinalfehler sind häufige, aber zu geringe Wassermengen, die nur wenige Zentimeter in den Boden eindringen. Die Wurzelzone wird nicht komplett durchfeuchtet und verlagert sich in die oberen Bodenschichten – mit der Folge, dass der Rasen noch anfälliger für Trockenschäden wird. Das Wasser sollte daher bei jeder Beregnung 15 Zentimeter tief einsickern. Um das zu erreichen, braucht man je nach Bodenart unterschiedliche Wassermengen: Bei lockeren Sandböden reichen rund 10 bis 15 Liter pro Quadratmeter zur Bewässerung des Rasens aus, lehmige bis tonige Böden müssen mit 15 bis 20 Litern beregnet werden. Da sie das Wasser länger speichern, reicht in der Regel eine Beregnung pro Woche, während Rasenflächen auf Sandböden in Trockenzeiten alle drei bis vier Tage bewässert werden.
                          In der Konsequenz reicht das einfache Binärsignal der Wetterstation aber nicht mehr aus, um zu entscheiden ob bewässert werden muss.
                          Ich schnappe mir z.B. die Regenmenge von der Wetterstation (früher wunderground, heute netatmo). Ein bißchen kurzer Nieselregen ändert den Bewässerungsrhythmus nicht, ein großer Regenschauer lässt den Rhythmus neu starten.
                          Autor der SonoPhone, SonoPad und SqueezePad Apps.

                          Kommentar


                            #14
                            bluegaspode Da gebe ich dir völlig recht. Die Zahl ist natürlich entsprechend austauschbar und eher als Beispiel zu sehen. Auch die Häufigkeit der Beregnung kann natürlich beliebig angepasst werden.
                            An dieser Stelle stand die Umsetzung in openHAB im Vordergrund. Die Bedürfnisse sind ja für jeden ganz unterschiedlich. Mal wird der Rasen gegossen, mal die großen Palmen.

                            Kommentar


                              #15
                              [QUOTE=andall;n1257308]
                              Zitat von udo1toni Beitrag anzeigen
                              Nur, um schon mal ein bisschen Aufklärung zu leisten...


                              ...
                              Code:
                              rule "Automatische Bewässerung"
                              when
                              Item Wetter_Niederschlag changed to OFF
                              then Timer = createTimer(now.plusHours(24)) and
                              (now.getHourOfDay >= 6 && now.getHourOfDay <9)[
                              sendCommand(Bewaesserung_automatik, ON)]
                              end

                              Habe das mal versucht und bekomme in der rule immer den Fehler : missing EOF at 'var'

                              Woran kann das liegen?
                              Danke.
                              Das liegt daran, dass dieser Code (den ich hier oben zitiere) der "schlechte" Code ist. Aber wie ich geschrieben habe, ging es mir nur darum, den syntaktisch korrekten Code zu schreiben, funktional ist der sicherlich nicht korrekt.

                              Kommentar

                              Lädt...
                              X