Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [gelöst]Zeitschaltung Bewässerung

    NEWS

    • Neues Video "KI im Smart Home" - ioBroker plus n8n

    • Neues Video über Aliase, virtuelle Geräte und Kategorien

    • Wir empfehlen: Node.js 22.x

    [gelöst]Zeitschaltung Bewässerung

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

      Mal eine Rückmeldung von mir.

      Es funktioniert sehr gut.

      Vielen Dank noch einmal.

      Wie baut man eine Schleife oder Funktion ein wenn man drei Bewässerungskreise hat?

      Und kann man die Zeitvorwahl auch abbrechen? Wenn man sich z.Bsp. vertippt hat?

      Habe es gestern schon probiert mit dem Countdown von Pix. Bekomme es aber nicht hin.

      Hänge mal das Script an wie es jetzt bei mir läuft.

      // Pumpe: Ausschalten nach x Minuten
      
      function weiter() {
          var Zeitvorgabe = getState('javascript.0.Countdown.Zeitvorgabe').val ;      // Zeit auswählen
          log (Zeitvorgabe);
          if (Zeitvorgabe === 0 || Zeitvorgabe === isNaN) Zeitvorgabe = 30;
          setStateDelayed("hm-rpc.0.NEQ1316670.1.STATE", true);                       // Kreis 1 Ventil einschalten
          setStateDelayed("hm-rpc.0.NEQ1316670.4.STATE", true, 1000);                 // nach 1 Sek. Pumpe ein
      
          // Countdown starten für Anzeige der Zeit auf View
          setState('javascript.0.Countdown.countTrigger', true);                      // Countdown Brunnen starten
      
          setStateDelayed("javascript.0.AnAus", 0, (Zeitvorgabe*60*1000));            // nach x Min. ausschalten  -> Pumpe
          //sendTo('telegram', "Brunnen eingeschaltet. \nNach " + (Zeitvorgabe*60*1000) + " Minuten wird er wieder automatisch ausgeschaltet."); 
          //log ("Brunnen eingeschaltet. Nach " + (Zeitvorgabe*60*1000) + " Minuten wird er wieder automatisch ausgeschaltet.");    
      }
      
      function weiter2() {
          setState("hm-rpc.0.NEQ1316670.1.STATE", false);                             // Brunnen-Wasser aus
          setState("hm-rpc.0.NEQ1316670.4.STATE", false);                             // Brunnen-Licht aus
          //sendTo('telegram', "Brunnen ausgeschaltet."); 
          //log ("Brunnen ausgeschaltet.");    
          setState('javascript.0.Countdown.countTrigger', false);                     // Countdown Brunnen aus
          setState('javascript.0.Countdown.Zeitvorgabe', 0);                          // Zeitvorwahl auf Null setzen
      }
      
      on({id: "javascript.0.AnAus", change: "ne", val: 1}, function() {               // Bewaesserung Kreis1 einschalten
          //log("Auslöser Schalter - Cux: Brunnen ein");
          weiter();
      }); 
      
      on({id: "javascript.0.AnAus", change: "ne", val: 0}, function() {               // Bewaesserung Kreis1 ausschalten
          //log("Auslöser Schalter - Cux: Brunnen aus");
          weiter2();
      }); 
      

      Gruss Andreas

      1 Reply Last reply Reply Quote 0
      • bahnuhr
        bahnuhr Forum Testing Most Active last edited by

        Wie baut man eine Schleife oder Funktion ein wenn man drei Bewässerungskreise hat?
        

        Einfach 3 Scripte schreiben.

        Und kann man die Zeitvorwahl auch abbrechen? Wenn man sich z.Bsp. vertippt hat?
        

        Das versteh ich nicht. Wo denn vertippt?

        Die Zeitvorwahl kannst du doch mit dem widget radiobutton auswählen. Wo kann man sich vertippen.

        Und was meinst du mit Zeitvorwahl abbrechen?

        Wenn du meinst, die Zeit vorzeitig zu beenden, dann musst du den trigger auf false setzen.

        Habe es gestern schon probiert mit dem Countdown von Pix. Bekomme es aber nicht hin.
        

        Was hast du wie probiert?

        mfg

        Dieter

        1 Reply Last reply Reply Quote 0
        • S
          Superdad last edited by

          3 Scripte habe ich schon.

          Was anderes ist mir nicht eingefallen. Bzw. hab ich was anderes nicht hin bekommen.

          Mit vertippen meine ich, wenn man auf dem widget radiobutton auf 10min. getippt hat und eigentlich 15min. wollte.

          Ich hatte das Script von Pix (siehe 1. Beitrag) genommen und dann die Zeit in dein Script übergeben.

          Und dann versucht zu starten. Aber irgendwie habe ich es nicht zum laufen gebracht.

          Wollte es nur ausprobieren, weil man in dem Script von Pix ebend die Zeitvorwahl abbrechen und dann neu eintippen kann.

          Versuche es mal mit dem Trigger auf false.

          Danke und Gruss!

          1 Reply Last reply Reply Quote 0
          • bahnuhr
            bahnuhr Forum Testing Most Active last edited by

            Mit vertippen meine ich, wenn man auf dem widget radiobutton auf 10min. getippt hat und eigentlich 15min. wollte.
            

            Du musst in dem widget die Zeit eintragen die du willst.

            Wenn du 15 min. willst warum schreibt du dann nicht 15 min hin ????????

            Hier hatte ich das schon beschrieben.
            filename="bild1.jpg" index="0">~~

            mfg

            1 Reply Last reply Reply Quote 0
            • Homoran
              Homoran Global Moderator Administrators last edited by

              Hallo Dieter,
              @bahnuhr:

              Wenn du 15 min. willst warum schreibt du dann nicht 15 min hin ???????? `

              Hat er doch!

              Er hat nur mit seinem Wurschtfingern den falschen Button getippt!

              Ruhig Brauner!

              1 Reply Last reply Reply Quote 0
              • bahnuhr
                bahnuhr Forum Testing Most Active last edited by

                Hat er doch!
                

                Woran siehst du das, dass er das hat.

                mfg

                1 Reply Last reply Reply Quote 0
                • Homoran
                  Homoran Global Moderator Administrators last edited by

                  @bahnuhr:

                  Woran siehst du das, dass er das hat. `
                  Weil bei dir im code keine 10 Minuten vorkommen.

                  Und wenn er einen 10 Minuten Button hat, hat er die Zeiten angepasst.

                  Den Rest hast du zitiert.

                  Gruß

                  Rainer

                  1 Reply Last reply Reply Quote 0
                  • S
                    Superdad last edited by

                    Wurstfinger!!!

                    Genau so ist es!

                    @bahnuhr

                    Sei nicht so gereizt, ist doch Wochenende!

                    1 Reply Last reply Reply Quote 0
                    • bahnuhr
                      bahnuhr Forum Testing Most Active last edited by

                      auf hessisch:

                      nicht: wurst

                      sondern: wurscht

                      1 Reply Last reply Reply Quote 0
                      • S
                        Superdad last edited by

                        Hier noch der Beweis mit der 10.

                        ![](<ATTACHMENT 1653_beregnung.jpg )~~[attachment=0]~~Beregnung.jpg[/attachment]" />

                        Gruss

                        1 Reply Last reply Reply Quote 0
                        • bahnuhr
                          bahnuhr Forum Testing Most Active last edited by

                          sieht ja cool aus, respekt.

                          Funktioniert das jetzt mit 10 oder 15 oder wie auch immer.

                          1 Reply Last reply Reply Quote 0
                          • S
                            Superdad last edited by

                            Habe ich noch nicht geschafft.

                            Ich kann 10min. auswählen und dann Pumpe drücken und es läuft.

                            Wenn ich wieder Pumpe drücke ist es aus. Wenn ich unter VIS Objekte schaue, dann ist es da auch Null.

                            Nur in der VIS-Anzeige ist die 10 weiterhin weiss unterlegt.

                            Aber vielleicht ist das ja auch ein Problem von VIS? Das es sich da nicht aktualisiert.

                            1 Reply Last reply Reply Quote 0
                            • bahnuhr
                              bahnuhr Forum Testing Most Active last edited by

                              Ich glaube du wirfst da was durcheinander.

                              Oder ich versteh es nicht (ist auch im Bereich des möglichen).

                              Also bei mir ist es so:

                              Ich habe ein radiobutton-widget.

                              Und hier lege ich die Zeit fest die ich will.

                              Da startet oder endet noch nichts.

                              Hier steht die 15 in blau; soll heißen, wenn es dann mal läuft, dann wird die 15 genommen.

                              Das ist nur die Zeitvorgabe.

                              Fertig.

                              Dann gibt es das on/off widget. Wenn ich hier starte dann ist das widget on und wird gelb markiert.

                              Und erst dann startet das script die Wasserleitung und erst dann startet der Timer und zeigt dir die Zeit an.

                              Und zwar die Zeit die vorher (irgendwann einmal) per radiobutton eingestellt wurde.

                              Fertig.

                              Wenn dann der Timer ist 0, dann wird per script die Wasserleitung geschlossen und das widget on/off auf aus gesetzt.

                              Wenn du vor Ende das widget on/off auf aus setzt, dann wird die Wasserleitung geschlossen und der Timer per script auf 0 gesetzt.

                              Fazit:

                              Die Zeitvorgabe (radiobutton) signalisiert doch nur die Zeit die du eingestellt haben willst.

                              Da startet oder endet nichts.

                              mfg

                              P.S. hab ich mich einigermaßen verständlich ausgedrückt.

                              1 Reply Last reply Reply Quote 0
                              • bahnuhr
                                bahnuhr Forum Testing Most Active last edited by

                                Hab mal ein Script geschrieben für deine 3 Kreise:

                                ! ````
                                // Pumpe: Ausschalten nach x Minuten
                                ! function weiter() {
                                var Zeitvorgabe = getState('javascript.0.Countdown.Zeitvorgabe').val ; // Zeitvorgabe
                                var Kreis1 = getState('javascript.0.Kreis1').val; // Kreis1 einschalten ? 0=nein 1=ja
                                var Kreis2 = getState('javascript.0.Kreis2').val; // Kreis2 einschalten ? 0=nein 1=ja
                                var Kreis3 = getState('javascript.0.Kreis3').val; // Kreis3 einschalten ? 0=nein 1=ja

                                if (Zeitvorgabe === 0 || Zeitvorgabe === "") {
                                    Zeitvorgabe = 30;                                       // bei diesen beiden Zeilen, kannst du
                                    setState('javascript.0.Countdown.Zeitvorgabe', 30);     // die Zahl vorgeben die Standard sein soll, wenn nichts ausgewählt wurde
                                }
                                

                                ! if (Kreis1 === true || Kreis1 === 1) setState("hm-rpc.0.NEQ1316670.1.STATE", true); // Kreis 1 Ventil einschalten
                                if (Kreis2 === true || Kreis2 === 1) setState("hm-rpc.0........STATE", true); // Kreis 2 Ventil einschalten
                                if (Kreis3 === true || Kreis3 === 1) setState("hm-rpc.0........STATE", true); // Kreis 3 Ventil einschalten

                                setStateDelayed("hm-rpc.0.NEQ1316670.4.STATE", true, 10000);                 // nach 10 Sek. Pumpe ein
                                

                                ! // Countdown starten für Anzeige der Zeit auf View
                                setState('javascript.0.Countdown.countTrigger', true); // Countdown starten
                                ! setStateDelayed("javascript.0.AnAus", 0, (Zeitvorgabe601000)); // nach x Min. ausschalten
                                }
                                ! function weiter2() {
                                // Ventile und Pumpen ausschalten
                                setState("hm-rpc.0.NEQ1316670.1.STATE", true); // Kreis 1 Ventil aus
                                setState("hm-rpc.0.NEQ.......STATE", true); // Kreis 2 Ventil aus
                                setState("hm-rpc.0.NEQ.......STATE", true); // Kreis 3 Ventil aus
                                setState("hm-rpc.0.NEQ1316670.4.STATE", false); // Pumpe aus
                                setState('javascript.0.Countdown.countTrigger', false); // Countdown aus
                                }
                                ! on({id: "javascript.0.AnAus", change: "ne", val: 1}, function() { // Bewaesserung ein
                                weiter();
                                });
                                ! on({id: "javascript.0.AnAus", change: "ne", val: 0}, function() { // Bewaesserung aus
                                weiter2();
                                });

                                
                                Diese 3 Variablen musst du noch manuell anlegen bei Objekten und zwar als Zahl:
                                
                                javascript.0.Kreis1
                                
                                javascript.0.Kreis2
                                
                                javascript.0.Kreis3
                                
                                Deine 3 on/off Gieskannen musst du natürlich diesen Variablen zuordnen.
                                
                                Dann bitte kontrollieren ob deine Variablen true/false oder 0/1 senden.
                                
                                Kontrolle bei Objekten oder Zustände.
                                
                                mfg
                                
                                Dieter
                                1 Reply Last reply Reply Quote 1
                                • S
                                  Superdad last edited by

                                  @bahnuhr:

                                  Ich glaube du wirfst da was durcheinander.

                                  Oder ich versteh es nicht (ist auch im Bereich des möglichen).

                                  Also bei mir ist es so:

                                  Ich habe ein radiobutton-widget.

                                  Und hier lege ich die Zeit fest die ich will.

                                  Da startet oder endet noch nichts.

                                  Hier steht die 15 in blau; soll heißen, wenn es dann mal läuft, dann wird die 15 genommen.

                                  Das ist nur die Zeitvorgabe.

                                  Fertig.

                                  Dann gibt es das on/off widget. Wenn ich hier starte dann ist das widget on und wird gelb markiert.

                                  Und erst dann startet das script die Wasserleitung und erst dann startet der Timer und zeigt dir die Zeit an.

                                  Und zwar die Zeit die vorher (irgendwann einmal) per radiobutton eingestellt wurde.

                                  Fertig.

                                  Wenn dann der Timer ist 0, dann wird per script die Wasserleitung geschlossen und das widget on/off auf aus gesetzt.

                                  Wenn du vor Ende das widget on/off auf aus setzt, dann wird die Wasserleitung geschlossen und der Timer per script auf 0 gesetzt.

                                  Fazit:

                                  Die Zeitvorgabe (radiobutton) signalisiert doch nur die Zeit die du eingestellt haben willst.

                                  Da startet oder endet nichts.

                                  mfg

                                  P.S. hab ich mich einigermaßen verständlich ausgedrückt. `

                                  –-------------------------------------------------------------------------------------------------------------------------------------------------------------------

                                  Hallo Dieter,

                                  es ist genauso wie du es beschreibst.

                                  Gestern war es nur so, dass wenn ich 10min. ausgewählt habe und auf Giesskanne gedrückt, das Programm gestartet ist.

                                  In Objekte stand dann auch 10min. drin.

                                  Soweit alles ok und super!

                                  Dann habe ich während der 10min. wieder auf Giesskanne gedrückt und das Programm wurde beendet.

                                  In Objekte stand dann auch 0min.

                                  Soweit auch alles ok und super!

                                  Jetzt das Problem was ich hatte.

                                  Wenn ich jetzt mit dem Radiobutton die 15min. auswählen wollte ging es nicht.

                                  Es blieb immer die 10min. hell ( óder markiert, oder hinterlegt - weiss nicht wie man das nennt) und die 15min. wurde nicht farbig.

                                  Jetzt PC gestartet und noch einmal probiert. Und siehe da - es geht!

                                  Warum auch immer?

                                  Und jetzt probier ich mal das Script mit den 3 Kreisen.

                                  Bin dir jedenfalls sehr dankbar, dass du mir hilfst.

                                  Ich lerne ja auch dadurch.

                                  Gruss Andreas

                                  1 Reply Last reply Reply Quote 0
                                  • S
                                    Superdad last edited by

                                    Dein Script funktioniert.

                                    Nur brauche ich ja dann noch ein hqwidget um ein- und auszuschalten, oder?

                                    Also Zeit vorwählen, dann Kreis auswählen und dann starten?

                                    Oder mache ich etwas verkehrt?

                                    Hatte vorher 3 Scripte und drei Variablen. AnAus, AnAus2 und AnAus3.

                                    Diese hatte ich dann, um die drei Scripte zu schalten, mit den Giesskannen verbunden.

                                    1 Reply Last reply Reply Quote 0
                                    • bahnuhr
                                      bahnuhr Forum Testing Most Active last edited by

                                      Hallo,

                                      du hast doch schöne Gieskannen.

                                      Was sind denn die für ein widget.

                                      Wenn on/off dann als objekt id die neu erstellten Datenpunkte nehmen.

                                      Also: Gieskanne1 mit dem Datenpunkt "javascript.0.Kreis1" verknüpfen

                                      usw.

                                      Fazit:

                                      Wenn Gieskanne1 gedrückt wurde (also on) dann ist der Datenpunkt "javascript.0.Kreis1" ja true oder 1

                                      (das solltest du ja noch prüfen)

                                      etc.

                                      Und genau diese Datenpunkte "javascript.0.Kreis…." fragt das Script ja ab und öffnet die Ventile.

                                      Meld dich wieder, wenn es nicht klappt.

                                      mfg

                                      1 Reply Last reply Reply Quote 0
                                      • S
                                        Superdad last edited by

                                        Das habe ich schon probiert.

                                        Wenn ich den Giesskannen bei "Objekt ID" und bei "in Arbeit Zustand ID" javascript.0.Kreis1, 2 oder 3 eintrage, ist der Wert dann 1 in Objekte.

                                        Aber es wird weder das Ventil noch die Pumpe geschalten. Der Countdown läuft auch nicht an.

                                        In deinem Script steht am Ende:

                                        on({id: "javascript.0.AnAus", change: "ne", val: 1}, function() {               // Bewaesserung ein
                                            weiter();
                                        }); 
                                        
                                        on({id: "javascript.0.AnAus", change: "ne", val: 0}, function() {               // Bewaesserung aus
                                            weiter2();
                                        });
                                        

                                        Deswegen dachte ich, dass es über einen extra hqwidget zu starten ist.

                                        Gruss

                                        1 Reply Last reply Reply Quote 0
                                        • bahnuhr
                                          bahnuhr Forum Testing Most Active last edited by

                                          kannst du mir deine view mal per pn schicken.

                                          view exportieren

                                          mfg

                                          1 Reply Last reply Reply Quote 0
                                          • S
                                            sveni_lee last edited by

                                            Ich habe mir mal erlaubt, einzelne code-Teile für meine Bewässeungssteuerung zu "borgen".

                                            Da Javascripte noch Neuland für mich sind, hätte ich mal eine Anfängerfrage.

                                            Ich habe im Vis ein Widget mit ValueList, welches dem von mir angelegten Objekt (javascript.0.Bewässerung.Ventil1.LaufzeitVentil1) den Wert für die Öffnungszeit zuweist.

                                            In meinem Fall (5; 10; 15; 20; 30; 45; 60; 90) bei OFF wird der Wert auf 0 gesetzt.

                                            soweit so gut…

                                            jetzt möchte ich genau dieses Object triggern. dazu hab ich mir folgenden Code geliehen:

                                            on({id: "javascript.0.Bewässerung.Ventil1.LaufzeitVentil1.1.STATE", change: "ne", val: 1}, function() {   // Ventil1 ein
                                                log("Ventil1 eingeschaltet");
                                                weiter();
                                            }); 
                                            

                                            hier sollte ausgelöst werden wenn der val > 0 ist. val: >0 geht aber nicht

                                            on({id: "javascript.0.Bewässerung.Ventil1.LaufzeitVentil1.1.STATE", change: "ne", val: 0}, function() {   // Ventil1 aus
                                                log("Ventil1 ausgeschaltet");
                                                weiter2();
                                            }); 
                                            

                                            hier sollte wieder ausgelöst werden wenn der Wert val = 0 ist. javascript.0.Bewässerung.Ventil1.LaufzeitVentil1.1.STATE wird entweder durch das countdown-scrpt oder manuell auf null gesetzt.

                                            lässt sich das triggern überhaupt so bewerkstelligen oder müsste ich in diesem Fall mit IF und ELSE arbeiten. Also die Änderung von javascript.0.Bewässerung.Ventil1.LaufzeitVentil1.1.STATE triggern und dann den Wert auslesen und mit IF and ELSE weiter "verarbeiten"?

                                            Gruß

                                            Sveni_Lee

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            946
                                            Online

                                            32.1k
                                            Users

                                            80.7k
                                            Topics

                                            1.3m
                                            Posts

                                            7
                                            33
                                            6282
                                            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