Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Gartenbewässerung nach Feuchtigkeitsmessung

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Gartenbewässerung nach Feuchtigkeitsmessung

    This topic has been deleted. Only users with topic management privileges can see it.
    • Dreamsleeper
      Dreamsleeper last edited by

      Hallo Zusammen,

      ich nutze in ioBroker eine Verbindung zu openHab um dort das Garden-Binding abzufragen.

      Zu einer fest definierten Uhrzeit soll den smarte Feuchtigkeitssensor überprüft werden. Sobald der einen bestimmten Wert unterschreitet soll das smarte Water Control sein Ventil öffnen und eine bestimmte Zeit Wasser laufen lassen und danach wieder schließen.

      Soweit so gut.

      chedule("55 15 * * *", function () {
        if (getState("openhab.0.items.gardena_sensor__humidity_humidity").val < 95) {
          for (var count = 0; count < 5; count++) {
            setState("openhab.0.items.gardena_watering_computer__outlet_valve_open"/*Ventil geöffnet*/, true);
            setStateDelayed("openhab.0.items.gardena_watering_computer__outlet_valve_open"/*Ventil geöffnet*/, false, 300000, false);
          }
        }
      });
      
      //
      

      Da ich einen manuellen gardena 6fachVerteiler hab (und 5 Kreisläufe dort angeschlossen) soll das Ventil 5x geöffnet werden und nach eine festgelegten Zeit wieder geschlossen. Dann gewartet, damit der Druckabfall im Kreislauf den 6-fach Verteiler umspringen lässt auf den nächsten Kreislauf.

      Die definierte Uhrzeit scheint zu klappen 🙂 das Abfragen des Sensors wohl auch...im Besipeil 95% (müsste noch testen ob bei 5% das Teil immer aus bleibt)
      Aber nachdem ersten Kreislauf ist Ende.....
      Es wird immer nur 1x ein Kreislauf bewässert und nicht alle 5...
      Wo ist da mein Denkfehler?

      Danke
      Grüße
      Dreamsleeper

      paul53 1 Reply Last reply Reply Quote 0
      • paul53
        paul53 @Dreamsleeper last edited by

        @Dreamsleeper sagte:

        Wo ist da mein Denkfehler?

        Du benötigst setInterval() und clearInterval() zusammen mit count, um nach einer bestimmten Zeit das nächste Ventil zu öffnen.

        1 Reply Last reply Reply Quote 0
        • Dreamsleeper
          Dreamsleeper last edited by

          OK. Danke. Da ich ein Noob bin was Skripten angeht...
          Den Intervall? in die wiederhole Sccleife?"

          var Intervall;
          
          
          schedule("55 15 * * *", function () {
            if (getState("openhab.0.items.gardena_sensor__humidity_humidity").val < 95) {
              Intervall = setInterval(function () {
                for (var count = 0; count < 5; count++) {
                  setState("openhab.0.items.gardena_watering_computer__outlet_valve_open"/*Ventil geöffnet*/, true);
                  setStateDelayed("openhab.0.items.gardena_watering_computer__outlet_valve_open"/*Ventil geöffnet*/, false, 300000, false);
                }
                (function () {if (Intervall) {clearInterval(Intervall); Intervall = null;}})();
              }, 1500000);
            }
          });
          
          paul53 1 Reply Last reply Reply Quote 0
          • paul53
            paul53 @Dreamsleeper last edited by paul53

            @Dreamsleeper sagte:

            Intervall? in die wiederhole Sccleife?"

            Nein, wie die Bezeichnung "Intervall" schon sagt, wiederholt es selbst. Es muss nur zum Ende (Zähler >= 5) gestoppt werden. In jedem Intervall den Zähler um 1 erhöhen.

            var Intervall; 
            var count;
            
            schedule("55 15 * * *", function () {
              if (getState("openhab.0.items.gardena_sensor__humidity_humidity").val < 95) {
                setState("openhab.0.items.gardena_watering_computer__outlet_valve_open"/*Ventil geöffnet*/, true);
                setStateDelayed("openhab.0.items.gardena_watering_computer__outlet_valve_open"/*Ventil geöffnet*/, false, 290000, false);
                count = 1;
                Intervall = setInterval(function () {
                   setState("openhab.0.items.gardena_watering_computer__outlet_valve_open"/*Ventil geöffnet*/, true);
                   setStateDelayed("openhab.0.items.gardena_watering_computer__outlet_valve_open"/*Ventil geöffnet*/, false, 290000, false);
                   count++;
                   if(count >= 5) clearInterval(Intervall);
                }, 300000); // alle 5 Minuten
              }
            });
            
            1 Reply Last reply Reply Quote 0
            • Dreamsleeper
              Dreamsleeper last edited by

              @paul53
              Vielen Dank! Ich habs mal angepasst auf 1755 laufen lassen. das funzt... alle Kreisläufe laufen 5min.
              Ich werd mal schauen, dass ich jetzt noch die Zeit auf 20-30min anpasse.

              Das heisst ich muss

              setStateDelayed("openhab.0.items.gardena_watering_computer__outlet_valve_open"/*Ventil geöffnet*/, false, 290000, false);
              

              erhöhen und dann

              }, 300000); // alle 5 Minuten
              

              auch? oder?

              Damit hab ich die linke Seite meines Gartens abgedeckt...
              jetzt werde ich noch die rechte Seite meines Gartens (da ist die gardena smarte Steckdose dran und 3 Kreisläufe) analog anpassen.

              paul53 1 Reply Last reply Reply Quote 0
              • paul53
                paul53 @Dreamsleeper last edited by

                @Dreamsleeper sagte in Gartenbewässerung nach Feuchtigkeitsmessung:

                erhöhen und dann
                }, 300000); // alle 5 Minuten

                auch? oder?

                Ja.

                1 Reply Last reply Reply Quote 0
                • Dreamsleeper
                  Dreamsleeper last edited by

                  So, ich habs jetzt mal so angepasst: (kaum verändert^^)

                  Water Control

                  var Intervall; 
                  var count;
                   
                  schedule("25 06 * * *", function () {
                    if (getState("openhab.0.items.gardena_sensor__humidity_humidity").val < 95) {
                      setState("openhab.0.items.gardena_watering_computer__outlet_valve_open"/*Ventil geöffnet*/, true);
                      setStateDelayed("openhab.0.items.gardena_watering_computer__outlet_valve_open"/*Ventil geöffnet*/, false, 1200000, false);
                      count = 1;
                      Intervall = setInterval(function () {
                         setState("openhab.0.items.gardena_watering_computer__outlet_valve_open"/*Ventil geöffnet*/, true);
                         setStateDelayed("openhab.0.items.gardena_watering_computer__outlet_valve_open"/*Ventil geöffnet*/, false, 1200000, false);
                         count++;
                         if(count >= 5) clearInterval(Intervall);
                      }, 1300000); // alle 5 Minuten
                    }
                  });
                  

                  und Smarte Gardena Steckdose (mit Tauchpumpe angeschlossen)

                  var Intervall; 
                  var count;
                   
                  schedule("18 18 * * *", function () {
                    if (getState("openhab.0.items.gardena_sensor__humidity_humidity").val < 95) {
                      setState("opopenhab.0.items.gardena_power__power_power_timer"/*Ventil geöffnet*/, true);
                      setStateDelayed("openhab.0.items.gardena_power__power_power_timer"/*Ventil geöffnet*/, false, 1200000, false);
                      count = 1;
                      Intervall = setInterval(function () {
                         setState("openhab.0.items.gardena_power__power_power_timer"/*Ventil geöffnet*/, true);
                         setStateDelayed("openhab.0.items.gardena_power__power_power_timer"/*Ventil geöffnet*/, false, 1200000, false);
                         count++;
                         if(count >= 3) clearInterval(Intervall);
                      }, 1300000); // alle 5 Minuten
                    }
                  });
                  

                  Ich muss das zwar erst noch alles verstehen, aber hoffe das läuft.....

                  und ja die Feuchtigkeit setz ich auf 40% sobald das Timing passt

                  paul53 1 Reply Last reply Reply Quote 0
                  • paul53
                    paul53 @Dreamsleeper last edited by paul53

                    @Dreamsleeper
                    Wenn man setStateDelayed() für die Pause zwischen Ventil schließen und wieder öffnen verwendet, muss die Zyklusdauer nur an einer Stelle berücksichtigt werden.

                    const idVentil = "openhab.0.items.gardena_power__power_power_timer"/*Ventil geöffnet*/;
                    var Intervall; 
                    var count;
                     
                    schedule("18 18 * * *", function () {
                      if (getState("openhab.0.items.gardena_sensor__humidity_humidity").val < 95) {
                        setState(idVentil, true);
                        count = 1;
                        Intervall = setInterval(function () {
                           setState(idVentil, false);
                           count++;
                           if(count >= 3) clearInterval(Intervall);
                           else setStateDelayed(idVentil, true, 10000); // verzögert wieder öffnen
                        }, 1200000); // alle 20 Minuten
                      }
                    });
                    
                    Dreamsleeper 1 Reply Last reply Reply Quote 0
                    • Dreamsleeper
                      Dreamsleeper @paul53 last edited by Dreamsleeper

                      @paul53

                      Danke...
                      die smarte Steckdose will noch nicht.... der Befehl ist falsch..... muss ich nochmal ran.
                      Das andere bau ich ein.

                      Also Water Control läuft.... die smarte gardena Steckdose will nicht laufen....

                      EDIT 3:
                      Mit

                      setState("openhab.0.items.gardena_power__power_power_timer"/*Ventil geöffnet*/, 120000);
                          setStateDelayed("openhab.0.items.gardena_power__power_power_timer"/*Ventil geöffnet*/, false, 0, false);
                      

                      dem ersten setState läuft die Steckdose.... ob die mit dem zweiten ausgeht oder von alleine kein Plan... ich mach grad Try & Error

                      1 Reply Last reply Reply Quote 0
                      • First post
                        Last post

                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      785
                      Online

                      31.9k
                      Users

                      80.3k
                      Topics

                      1.3m
                      Posts

                      2
                      9
                      540
                      Loading More Posts
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes
                      Reply
                      • Reply as topic
                      Log in to reply
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                      The ioBroker Community 2014-2023
                      logo