Ankündigung

Einklappen
Keine Ankündigung bisher.

Diskussion: Logik zur Garten-Bewässerung

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

    Diskussion: Logik zur Garten-Bewässerung

    Hallo,

    hat jemand schon eine Logik/ein Plugin zur Garten-Bewässerung geschrieben?
    Ich habe folgende, sehr einfache Logik:
    Code:
    #!/usr/bin/python3.2
    
    if trigger['value']:
        dauer=sh.Bewaesserung.Vorne.dauer()
        start=0
        ende=start+dauer
        sh.Bewaesserung.Vorne(1)
        sh.Bewaesserung.Vorne.autotimer(dauer,0)
    
        dauer=sh.Bewaesserung.Hinten.dauer()
        start=ende+10
        ende=start+dauer
        sh.Bewaesserung.Hinten.timer(start,1)
        sh.Bewaesserung.Hinten.autotimer(dauer,0)
    
        dauer=sh.Bewaesserung.Tropf.dauer()
        start=ende+10
        ende=start+dauer
        sh.Bewaesserung.Tropf.timer(start,1)
        sh.Bewaesserung.Tropf.autotimer(dauer,0)
    else:
        sh.Bewaesserung.Vorne.timer(1,0)
        sh.Bewaesserung.Hinten.timer(2,0)
        sh.Bewaesserung.Tropf.timer(3,0)
    und die Items dazu:
    Code:
    [Bewaesserung]
      name= Bewaesserung
      sv_page = room
     [[Hinten]]
            type = bool
        name= Hinten
            knx_dpt = 1
            knx_send = 4/5/0
            knx_listen = 4/5/0 | 4/5/5
             knx_init=4/5/5
            visu = yes
            [[[dauer]]]
              type=num
              value=300
      [[Vorne]]
            type = bool
            knx_dpt = 1
            knx_send = 4/5/1
            knx_listen = 4/5/1 | 4/5/6
            knx_init=4/5/6
            visu = yes
            [[[dauer]]]
              type=num
              value=300
     [[Tropf]]
            type = bool
            knx_dpt = 1
            knx_send = 4/5/2
            knx_listen = 4/5/2 | 4/5/7
            knx_init=4/5/7
            visu = yes
            [[[dauer]]]
              type=num
              value=300
      [[Sequenz]]
        type=bool
    Kurz der Hintergrund:

    Die Dauer der Beregnung wird im Item festgelegt. Dies ermöglicht auch die Änderung via Visu oder einem Automatismus (z.B. Bodenfeuchtemessung).
    Im Aktor wird die Treppenhausfunktion aktiviert so dass sichergestellt ist, dass beim Ausfall der Logik das Grundstück nicht geflutet wird.

    Was ich noch ändern würde
    • in Intervallen Bewässern. Also statt 1*10min Fluten: 4*2.5min
    • Treppenhauslichtfunktion auf kürzere Dauer (z.B. 1min) und nachtriggern

    Was habt ihr realisiert?


    Gruß,
    Hendrik

    #2
    Logik zur Garten-Bewässerung

    hallo henfri

    mit dem thema hast du den nagel genau auf den kopf getroffen.

    erweitern würde ich die logik zu beispiel um:

    -Windgeschwindigkeitprüfung (um Verwindungen in Randbereichen zu gebäuden zu minimieren )
    -Niederschlagsüberprüfung (wer will schon das es beregent wenn es regent) bzw.
    für Gewächshäuser wählbar mit oder ohne Niederschlagsüberprüfung
    -Temperaturüberprüfung (wenn zu heiß verdunstet gleich weider alles " Tropfen auf den heißen Stein-Effekt)
    -Pumpenpause zwischen den einzelnen Kreisen (damit sich der Kessel der Pumpe vollständig füllen kann)
    -Beregungskalendar
    -Startzeiten

    leider verstehe ich von logikprogrammierung nicht wirklich was wäre schön wenn du meine Ideen mit ein fließen lassen könntest.

    Gruß Jens

    Kommentar


      #3
      Zitat von Masterxx Beitrag anzeigen
      -Windgeschwindigkeitprüfung (um Verwindungen in Randbereichen zu gebäuden zu minimieren )
      -Niederschlagsüberprüfung (wer will schon das es beregent wenn es regent) bzw.
      für Gewächshäuser wählbar mit oder ohne Niederschlagsüberprüfung
      -Temperaturüberprüfung (wenn zu heiß verdunstet gleich weider alles " Tropfen auf den heißen Stein-Effekt)
      Momentan wird die Logik manuell getriggert. Eine weitere Logik könnte dies automatisieren.

      -Pumpenpause zwischen den einzelnen Kreisen (damit sich der Kessel der Pumpe vollständig füllen kann)
      Werde ich persönlich nicht benötigen --> Prio2

      -Beregungskalendar
      -Startzeiten
      Startzeiten kannst du über die USZU machen. Kalender: Ich bin nicht sicher, ob es dafür eine Logik gibt (ich meine, ich hätte etwas gesehen um Schaltzeiten per google-Kalender zu setzen. Vielleicht war das aber auch für das Wiregate.

      Einen Kalender halte ich auch für nicht so sinnvoll. Besser ist es die Bodenfeuchte per Wunderground von einer benachbarten Wetterstation zu holen.

      leider verstehe ich von logikprogrammierung nicht wirklich was wäre schön wenn du meine Ideen mit ein fließen lassen könntest.
      Sicher nicht alles. Ich schlage vor, du befasst dich mit der Thematik. Ansonsten wirst du mit sh.py doch sicher schnell an deine Grenzen stoßen, oder?

      Gruß,
      Hendrik

      Kommentar


        #4
        Hallo,

        ich bin auch gerade in der Planung der Bewässerung und ich finde dass die Bodenfeuchte der ausschlaggebende Faktor ist.
        Dann braucht man auch keinen Kalender etc.

        Temperatur würde ich ausschließen da es sowieso besser ist spät abends oder ganz früh morgens zu bewässern.

        Die Wetterstation meldet zwar den Regen, aber wie kombiniert man die Niederschlagswerte so dass die Bewässerung deaktiviert wird? (gewisse Niederschlagsmenge in einem bestimmten Zeitraum?)
        Hast Du einen funktionierenden Bodenfeuchtesensor?


        LG René

        Kommentar


          #5
          Nein.
          Aber ich habe vor eine benachbarte wunderground-Station anzuzapfen. Die hat einen Bodenfeuchtesensor.

          Kommentar


            #6
            Hallo,

            Ich hol hier mal diese Leiche aus dem Keller.
            Da ich demnächst eine Garten Bewässerung bauen werde, interessiert mich ob hier schon jemand die gesamte Bewässerung via SHNG bzw. KNX steuert?
            Zuletzt geändert von fuxl66; 02.06.2017, 11:21.

            Kommentar


              #7
              Ich habe für jede Zone einen Bodenfeuchtesensor zusammen mit einer 1-Wire Auswertungsplatine von Hobbyboards. Meine Logik berücksichtigt die jeweilige Bodenfeuchte und den vorhergesagten Niederschlag der nächsten 24 Stunden.

              Kommentar


                #8
                Zitat von Marcov Beitrag anzeigen
                Ich habe für jede Zone einen Bodenfeuchtesensor zusammen mit einer 1-Wire Auswertungsplatine von Hobbyboards. Meine Logik berücksichtigt die jeweilige Bodenfeuchte und den vorhergesagten Niederschlag der nächsten 24 Stunden.
                Danke für deinen Kommentar. Wäre an ein paar Details interessiert. Hast du deine Magnetventile direkt an einem Schaltaktor? Steuerung über SH.py und einer Logik/UZSU?

                Kommentar


                  #9
                  Ich habe die Magnetventile (24V) an einem knx-Aktor. Ich öffne sie nur über SH.py schließe sie aber über die Treppenlichtfunktion des Aktors immer automatisch nach 10 Minuten (erscheint mir sicherer als über SHy). Die Logik wird jede Stunde aufgerufen, ich kann über die Visu einen Sollwert für die Bodenfeuchtigkeit eingeben. Je nachdem wie stark dieser Wert unterschritten wird, muss die Regenmengen in den jeweiligen nächsten Zeitfenster höher sein (ich kann über meine Rasenmäherplugin eine Vorhersage über die Regenmenge abrufen), damit nicht bewässert wird.
                  Die Bewässerungszeit / Menge ändere ich nicht. Ich habe eine Tröpfchenbewässerung ggf. wäre es für die Pflanzen besser z.B. nur morgens und abends zu bewässern, dafür aber dann länger.

                  Kommentar


                    #10
                    Da ich mich in Kürze auch damit konfrontiert sehe, wäre eine Sammlung der derzeit eingesetzten Logiken hier sehr hilfreich. Klnnten dann ja versuchen, was Gesamtheitliches zu basteln?!

                    nutzen alle hier Schaltaktoren? Welche? Nutzt jemand Wetterstation für Regenmengenmessung statt Bodensensor? Wettervorhersage scheint mir auch wichtig. Windmessung klingt auch vernünftig

                    Kommentar


                      #11
                      Ich benutze einen stinknormalen Schaltaktor, das ist so weit ich weiß auch zulässig, solange man im Aktor nicht 230V und 24V mischt (es muss also ein eigener Aktor nur 24V schalten).
                      Ich habe auch einen Regenmengenmesser, im Vergleich zur Bodenfeuchtemessung wird das aber eine ganz schöne rechnerei und kommt dann der Glaskugel nahe. Bei Starkregen muss die Regenmenge z.B. anders bewertet werden, da der Boden einen großen Teil überhaupt nicht aufnehmen kann. Das kommt aber wieder auf den Boden an, der eine kann mehr speichern, der andere weniger.
                      Für meine Logik benötigt man eine Regenmengenvorhersage (diese beziehe ich über meine Bosch Rasenmäherschnittstelle für die verschiedenen Zeiträume):
                      PHP-Code:
                      date sh.now()
                      logger.info("BEWAESSERUNGSLOGIK")
                      if 
                      <= date.month <= 10 and sh.ventil.automatik() and sh.ow.regensensor.counter.age() > 3600:
                          if 
                      <= date.hour <= 10#zeit zwischen 6 und 11:
                              
                      logger.debug("früh")
                              
                      interval 1
                          elif 11 
                      <= date.hour <= 15#zeit zwischen 11 und 16:
                              
                      logger.debug("mittag")
                              
                      interval 2
                          elif 16 
                      <= date.hour <= 22#zeit zwischen 16 und 22:
                              
                      logger.debug("spät")
                              
                      interval 3
                          
                      else :
                              
                      logger.debug("nacht")
                              
                      interval 4

                          wheater_Item 
                      "sh.indego.weather.int_"
                          
                      current = eval(wheater_Item str(interval 0) + ".rrr()")    
                          
                      next = eval(wheater_Item str(interval 1) + ".rrr()")
                          
                      next_next = eval(wheater_Item str(interval 2) + ".rrr()")
                          
                      next_next_next = eval(wheater_Item str(interval 3) + ".rrr()")

                          
                      soll_rechts sh.soll_bewaesserung.garten_rechts()
                          if 
                      sh.ow.feuchtigkeit_boden._1() == 255:
                              
                      logger.warning("Bodenfeuchtesensor rechts Fehler")
                          
                      elif sh.ow.feuchtigkeit_boden._1() > 70:
                              
                      sh.ventil.terrasse_rechts_an_aus(1)
                              
                      logger.info("Beregnung Terrasse rechts gestartet, Wert über 70")
                          
                      elif sh.ow.feuchtigkeit_boden._1() > (soll_rechts*2) and current and next 1.5 and next_next_next 2.0 and next_next_next 2.5:
                              
                      sh.ventil.terrasse_rechts_an_aus(1)
                              
                      logger.info("Beregnung Terrasse rechts gestartet, Wert über 2* Sollwert")
                          
                      elif sh.ow.feuchtigkeit_boden._1() > (soll_rechts*1.5) and current 0.7  and next 1.3 and next_next_next 1.6 and next_next_next 1.9:
                              
                      sh.ventil.terrasse_rechts_an_aus(1)
                              
                      logger.info("Beregnung Terrasse rechts gestartet, Wert über 1,5 * Sollwert")
                          
                      elif sh.ow.feuchtigkeit_boden._1() > soll_rechts and current 0.5 and next 0.7 and next_next_next 0.9 and next_next_next 1.1:
                              
                      sh.ventil.terrasse_rechts_an_aus(1)
                              
                      logger.info("Beregnung Terrasse rechts gestartet, Wert unter Sollwert")
                          else:
                              
                      logger.info("Beregnung Terrasse rechts nicht notwendig, Feuchtigkeit über Sollwert oder Regen"
                      Mein Sollwert ist 30hpa, diesen kann ich auch über die Visu anpassen.
                      Zuletzt geändert von Marcov; 06.06.2017, 20:05.

                      Kommentar


                        #12
                        Welchen Bodenfeuchtesensor verwendet ihr? Kann mir vielleicht jemand einen Link zur Verfügung stellen?

                        Kommentar


                          #13
                          Ich verwende diese hier:
                          https://www.mmm-tech.de/watermark/wms?lang=de

                          Kommentar


                            #14
                            Wie liest du den aus?
                            Edit: ach ja 1w

                            Kommentar


                              #15
                              Zitat von Marcov Beitrag anzeigen
                              Marcov
                              Läßt sich dieser Sensor auch mit einem Analogaktor auslesen?
                              Ab wieviel Centibar sperrst/startest du die Beregnung?

                              Kommentar

                              Lädt...
                              X