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.
    • P
      Phantomio last edited by

      Hi,

      evtl. so (Ich habe leider nichts fertiges für Dich, soll eher ein Denkanstos sein):

      1. mit createState ein Objekt Typ Number z.B. BewaesserungsZeit

      und noch ein Objekt Typ boolean BewaesserungsStart

      2. Im Vis 2 Button Increment (jqui Adapter für vis muss glaube ich installiert sein) einfügen. Beide mit dem Objekt BewaesserungsZeit verknüpfen.

      Bei einem unter Schritt mit z.B. 2 wird die Zeit um 2 nach oben gesetzt (als Text z.B. +)

      Bei dem anderen mit -2 dementsprechend nach unten (als Text z.B -)

      Um zu sehen welche Zeit gerade gesetzt ist… im Vis noch ein Widget zum Anzeigen des Objekts BewaesserungsZeit einfügen

      Jetzt noch einen Button um den Status von BewaesserungsStart auf true zu setzen

      3. Dein Script anpassen mit On ... das Objekt BewaesserungsStart abfragen.

      on("javascript.0.BewaesserungStart", function (obj) { // bei jeder Änderung
          if (obj.state.val) {
              sleeptimer(getState("javascript.0.BewaesserungZeit").val);
          }
      });
      
      

      Gruß

      Phantomio

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

        Ich habe echt keine Ahnung!

        Kann mir jemand helfen?

        Habe jetzt wieder den ganzen Tag "verspielt".

        Verschieden Code und Scenen probiert.

        Und nicht zum Erfolg gekommen.

        Zweimal musste ich neu starten, da ioBroker voll ausgelastet war und ich nichts mehr machen konnte.

        Würde denn folgendes funktionieren?

        // Bewaesserungskreis 1
        
        var counter = getState("javascript.0.Countdown.Sleeptimer.countdown").val;
        
        on({id: "hm-rpc.0.NEQ1316670.1.STATE", val: true}, function() {
           if (counter) { 
              setState('hm-rpc.0.NEQ1316670.1.ON_TIME', counter );                          // Zeit an on_Time übergeben
              setState('hm-rpc.0.NEQ1316670.1.STATE', true);                                // Ventil einschalten 
              setState("hm-rpc.0.NEQ1316670.4.STATE", true);                                // Pumpe einschalten
              }
             else if (counter < 0)  { 
              setStateDelayed("m-rpc.0.NEQ1316670.1.STATE", false);                         // Ventil ausschalten
              setStateDelayed("hm-rpc.0.NEQ1316670.4.STATE", false);                        // Pumpe ausschalten
              }
        

        Bevor ich wieder alles neu starten muss und dann mein Synology vielleicht noch abkratzt.

        Gruss Superdad

        P.S. habe ich vergessen: Ich möchte die Zeit auswählen und dann das Widget für Start Pumpe drücken.

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

          Also,

          ich hab mir jetzt auch mal sowas gebastelt:

          1. Anlage Variablen

          Du legst manuell bei Objekten Variablen an (dann brauchst du dies nicht im Script zu machen-> hält das Script schmaler und übersichtlicher)
          filename="bild1.jpg" index="0">~~
          Countdown ist Zahl

          Trigger ist boolean

          Zeitvorgabe ist Zahl

          1. Countdown Script

          ! ````
          // Countdown Brunnen
          ! var count,timer;
          ! function countdown(){
          count--;
          if(count > 0) setState('javascript.0.Countdown.Brunnen.countdown', count);
          else {
          setState('javascript.0.Countdown.Brunnen.countTrigger', false );
          }
          }
          ! on({id: "javascript.0.Countdown.Brunnen.countTrigger", change: "ne"}, function(obj){
          if(obj.state.val) {
          count = getState('javascript.0.Countdown.Brunnen.Zeitvorgabe').val; // in Minuten
          setState('javascript.0.Countdown.Brunnen.countdown', count);
          timer = setInterval(countdown, 60000); // 1000 = 1 Sek. ; 60000 = 60 Sek.
          } else {
          clearInterval(timer);
          setState('javascript.0.Countdown.Brunnen.countdown', 0 );
          }
          });

          
          3) Widget in vis :
           filename="bild2.jpg" index="1">~~
          Brunnen-Symbol ist ein "hywidget on/off"
          
          Die blaue Leiste ist ein "radiobuttons valuelist"
          
          Dort schreibst du bei Werte und bei Texte: 15;30;60;90;120
          
          Das gelbe Widget "Sting" zeigt die verbleibende Zeit an.
          
          4) Script
          
          Folgendes Script anlegen:
          
          >! ````
          // Brunnen: Ausschalten nach x Minuten
          >! function weiter() {
              var Zeitvorgabe = getState('javascript.0.Countdown.Brunnen.Zeitvorgabe').val ;
              log (Zeitvorgabe);
              if (Zeitvorgabe === 0 || Zeitvorgabe === isNaN) Zeitvorgabe = 30;
              setState('hm-rpc.0.KEQ0926502.1.STATE', true);   // Aktor Terrasse-Strom ein
              setStateDelayed("hm-rpc.0.LEQ0129396.1.STATE", true, 10000);   // nach 10 Sek. Brunnen-Wasser ein
              setStateDelayed("hm-rpc.0.LEQ0129396.2.STATE", true, 10000);   // nach 10 Sek. Brunnen-Licht ein
          >!     // Countdown starten für Anzeige der Zeit auf View
              setState('javascript.0.Countdown.Brunnen.countTrigger', true);    // Countdown Brunnen starten
          
              setStateDelayed("hm-rpc.1.CUX0200005.1.STATE", 0, (Zeitvorgabe*60*1000));   // nach x Min. ausschalten  -> Cux: Brunnen
              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.LEQ0129396.1.STATE", false);   // Brunnen-Wasser aus
              setState("hm-rpc.0.LEQ0129396.2.STATE", false);   // Brunnen-Licht aus
              setStateDelayed('hm-rpc.0.KEQ0926502.1.STATE', false, 5000);   // nach 5 Sek. Aktor Terrasse-Strom aus
              sendTo('telegram', "Brunnen ausgeschaltet."); 
              log ("Brunnen ausgeschaltet.");    
              setState('javascript.0.Countdown.Brunnen.countTrigger', false);    // Countdown Brunnen aus
          }
          >! on({id: "hm-rpc.1.CUX0200005.1.STATE", change: "ne", val: 1}, function() {   // Cux: Brunnen ein
              log("Auslöser Schalter - Cux: Brunnen ein");
              weiter();
          }); 
          >! on({id: "hm-rpc.1.CUX0200005.1.STATE", change: "ne", val: 0}, function() {   // Cux: Brunnen aus
              log("Auslöser Schalter - Cux: Brunnen aus");
              weiter2();
          }); 
          >! ````
          
          Ich hatte mir dafür mal ne Cux.Variable in Homematic angelegt.
          
          Diese cux überwache ich mit on.
          
          Wenn noch Fragen sind meld dich.
          
          mfg
          
          Dieter
          1 Reply Last reply Reply Quote 0
          • S
            Superdad last edited by

            Vielen, vielen Dank!

            Probiere ich gleich mal aus.

            Gruss

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

              @superdad

              schreib mal;

              hats funktioniert ?

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

                Hallo Dieter,

                jetzt brauch ich doch deine Hilfe.

                Habe die Variablen angelegt.

                Nicht unter Brunnen, da ich den Ordner nicht anlegen kann.

                Sind unter Countdown angelegt.

                Dein Script habe ich dementsprechend geändert.

                Das string-Widget verknüpft mit Countdown.countdown.

                Das radiobuttons valuelist ebenfalls mit Countdown.countdown.

                Das hywidget on/off hast du bestimmt mit "hm-rpc.1.CUX0200005.1.STATE" von deinem Script verknüpft?

                Oder wie schaltest du das Ganze ein?

                Wie lege ich das in CuxD an?

                CuxD habe ich installiert. Hatte dort schon eine Fernbedienung angelegt. Natürlich auch mit Hilfe vom Homematic-Forum.

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

                  nicht ganz richtig.

                  mit radiobuttons gibt doch doch die laufzeit vor:

                  also verknüpfen mit Zeitvorgabe
                  filename="bild1.jpg" index="0">~~

                  Das string-Widget verknüpft mit Countdown.countdown.
                  

                  ja, richtig.

                  Wie lege ich das in CuxD an?
                  

                  cux brauchst du nicht.

                  Lege einfach eine neue Variable an mit der du an/aus machen willst z.B. 'javascript.0…....'

                  und die trägst du dann bei den on's ein.

                  mfg

                  1 Reply Last reply Reply Quote 0
                  • 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
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            777
                                            Online

                                            32.1k
                                            Users

                                            80.7k
                                            Topics

                                            1.3m
                                            Posts

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