Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Mehrere Und-Abfragen

    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

    Mehrere Und-Abfragen

    This topic has been deleted. Only users with topic management privileges can see it.
    • bahnuhr
      bahnuhr Forum Testing Most Active last edited by

      Nehme folgendes Script:

      //Variablen
          var idPumpe = "xxx"
      
      //Trigger
          on({id: idPumpe, change: "ne", val: true}, function(){          // Pumpe wurde ein geschaltet
              var idKreislauf1 = getState("...").val; 
              var idKreislauf2 = getState("...").val;
              var idKreislauf3 = getState("...").val;
              var idKreislauf4 = getState("...").val;
      
              if (idKreislauf1 == false && idKreislauf2 == false && idKreislauf3 == false && idKreislauf4 == false) {
                  setTimeout(function() { setState(idPumpe, false); }, 900000); 
              }
          });
      

      Voraussetzung für das Script:
      Deine Pumpe zeigt true wenn sie an ist.
      Die Kreisläufe zeigen true wenn sie an sind; bzw. false wenn sie aus sind.

      mfg

      Dutchman Asgothian 2 Replies Last reply Reply Quote 0
      • Dutchman
        Dutchman Developer Most Active Administrators @bahnuhr last edited by

        @bahnuhr

        Passt für ihn bis auf ne fehlende if Abfrage ob die Automationssystem und läuft Erklärung was wofür ist 🙂

        Btw auch der time-out hat die falsche Zeit und wir nicht angehalten wen er bereits läuft da können sich Sachen überschlagen da muss im Script noch was ergänzt werden 😉

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

          @Dutchman sagte in Mehrere Und-Abfragen:

          time-out hat die falsche Zeit

          wieso?
          900000 = 15 Minuten
          was soll da falsch sein ?

          @Dutchman sagte in Mehrere Und-Abfragen:

          nicht angehalten wen er bereits läuft

          stimmt

          Dutchman 1 Reply Last reply Reply Quote 0
          • Dutchman
            Dutchman Developer Most Active Administrators @bahnuhr last edited by

            @bahnuhr sagte in Mehrere Und-Abfragen:

            900000 = 15 Minuten

            🙈 ich brauche mehr Kaffee heute 😒

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

              @Dutchman sagte in Mehrere Und-Abfragen:

              @bahnuhr sagte in Mehrere Und-Abfragen:

              900000 = 15 Minuten

              🙈 ich brauche mehr Kaffee heute 😒

              hab ich auch gerade geholt, es hilft !! 😉

              1 Reply Last reply Reply Quote 1
              • Asgothian
                Asgothian Developer @bahnuhr last edited by

                @bahnuhr
                Interessanter Vorschlag. Ich würde es systematisch anders lösen:

                Dabei ist wichtig das alles in EINEM Blockly Skript liegt, sprich dieser Block muss im gleichen Script mit drin sein.

                Screen Shot 2020-08-30 at 10.36.57 .png

                Dann kannst du im eigentlichen Script einfach die Variable "PathInUse" abfragen. Wenn die >1 ist dann ist mindestens ein Kreislauf aktiv.

                Warum so - damit ich nicht jedes mal wenn die Pumpe geschaltet wird die Datenpunkte aller Kreisläufe abgefragt werden.

                Alternativ gibt es noch eine elegante Lösung:

                Du kannst bei dem trigger auf das einschalten der Pumpe testen wer das ausgelöst hat - es gibt dazu den "origin of value" Baustein (sorry, ich weiss nicht wie der auf deutsch heisst). Wenn das Pumpenscript die Pumpe schaltet, dann beinhaltet der origin "javascript.0". Wenn du ihn manuell schaltest, oder die Pumpe sogar extern geschaltet wird gibt es da einen anderen Eintrag.

                A.

                Torsten K. 1 Reply Last reply Reply Quote 0
                • Torsten K.
                  Torsten K. @Asgothian last edited by Torsten K.

                  erst einmal vielen Dank für die Hilfe.

                  Ich hab das Skript von @bahnuhr einmal auf mich angepasst.(da ich nicht so viel Ahnung habe, hoffentlich richtig)

                  //Variablen
                      var idPumpe = "sonoff.0.Sonoff Pumpe.POWER"
                   
                  //Trigger
                      on({id: idPumpe, change: "ne", val: true}, function(){          // Pumpe wurde ein geschaltet
                          var idKreislauf1 = getState("0_userdata.0.Wasser_20_10_10_10").val; 
                          var idKreislauf2 = getState("0_userdata.0.Wasser_30_10_10").val;
                          var idKreislauf3 = getState("0_userdata.0.Wasser_30_o_4").val;
                          var idKreislauf4 = getState("0_userdata.0.testbutton").val;
                          var idKreislauf5 = getState("0_userdata.0.Wasser1_20min").val;
                          var idKreislauf6 = getState("0_userdata.0.Wasser1_30min").val;
                   
                          if (idKreislauf1 == false && idKreislauf2 == false && idKreislauf3 == false && idKreislauf4 == false && idKreislauf5 == false && idKreislauf6 == false) {
                              setTimeout(function() { setState(idPumpe, false); }, 5000); 
                          }
                      });
                  
                  

                  Die 5000 habe ich nur zu Testzwecken verringert. Scheint soweit zu funktionieren. Werde ich jetzt die Tage mal im Alltag testen.

                  Dutchman 1 Reply Last reply Reply Quote 0
                  • Dutchman
                    Dutchman Developer Most Active Administrators @Torsten K. last edited by

                    @Torsten-K sagte in Mehrere Und-Abfragen:

                    Die 5000 habe ich nur zu Testzwecken verringert. Scheint soweit zu funktionieren. Werde ich jetzt die Tage mal im Alltag testen.

                    Wichtig noch das du den time-out anhältst oder anderweitig dafür sorgst das er nicht doppelt starten kan

                    1 Reply Last reply Reply Quote 0
                    • I
                      ITCrowd @RappiRN last edited by ITCrowd

                      @RappiRN Falls lange Kaskaden von UND oder ODER Blöcken nerven. Packs in JS.

                      Beispiel 8fach UND

                      8f6b1b05-3ea8-4932-ae27-e6b857a95fe6-grafik.png

                      8441fb6b-c128-4ae5-8a75-d058e7ac09dd-grafik.png

                      return I1 && I2 && I3 && I4 && I5 && I6 && I7 && I8;

                      R 1 Reply Last reply Reply Quote 0
                      • R
                        RappiRN Most Active @ITCrowd last edited by

                        @ITCrowd
                        Hat mich bisher nicht genervt, aber danke für die Info, werde ich mal ausprobieren.

                        Enrico

                        1 Reply Last reply Reply Quote 0
                        • dslraser
                          dslraser Forum Testing Most Active @Torsten K. last edited by dslraser

                          @Torsten-K

                          Zum Thema mehrere und Abragen. Es gibt auf GitHub etwas interessantes dazu (habe ich aber selbst noch nicht probiert.)

                          Blockly-plus

                          https://github.com/excal-foley/ioBroker.blockly-plus

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

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          405
                          Online

                          31.9k
                          Users

                          80.2k
                          Topics

                          1.3m
                          Posts

                          7
                          15
                          1700
                          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