Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly
  5. [gelöst] Schaltzustand Verzögern

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.2k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    742

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.0k

[gelöst] Schaltzustand Verzögern

Geplant Angeheftet Gesperrt Verschoben Blockly
262 Beiträge 4 Kommentatoren 23.0k Aufrufe 2 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • paul53P paul53

    @Aphofis sagte:

    Osmose Schwimmer ist false und Magnet Ventil läuft einfach weiter

    Laufen die Wellen-Skripte, so dass der Computer vielleicht überlastet ist ?

    AphofisA Offline
    AphofisA Offline
    Aphofis
    schrieb am zuletzt editiert von Aphofis
    #56

    @paul53
    Nein die sind aus!
    16% RAM sind frei

    paul53P 1 Antwort Letzte Antwort
    0
    • AphofisA Aphofis

      @paul53
      Nein die sind aus!
      16% RAM sind frei

      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von paul53
      #57

      @Aphofis
      Sollte eigentlich nicht nötig sein, aber füge mal im Skript in Zeile 37 (s. Skript oben) ein:

        else setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false);
      

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      AphofisA 1 Antwort Letzte Antwort
      0
      • paul53P paul53

        @Aphofis
        Sollte eigentlich nicht nötig sein, aber füge mal im Skript in Zeile 37 (s. Skript oben) ein:

          else setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false);
        
        AphofisA Offline
        AphofisA Offline
        Aphofis
        schrieb am zuletzt editiert von
        #58

        @paul53 mach ich!

        Mein Script sieht so aus

        const idRestzeit = 'Osmose.Restzeit';
        
        const text_ein = ['Filter Max unterschritten, Skimmer & Osmose','\n','wurden wieder eingeschaltet'].join('');
        
        const text_aus = ['Filter Max erreicht, Skimmer & Osmose','\n','wurden abgeschaltet'].join('');
        
         
        
        createState(idRestzeit, 300, {type: 'number', unit: 's'});
        
         
        
        var Osmosefreigabe = !getState('sonoff.0.Aqua_Float.POWER4').val;
        
        var Schwimmer = getState("sonoff.0.Aqua_Float.POWER1").val;
        
        var Restzeit, timeout_aus, timeout_ein, Magnetventil_Kontrolle;
        
         
        
        function Magnetventil_Ein() {
        
          if (!Magnetventil_Kontrolle && Restzeit > 0 && Osmosefreigabe) {
        
            Magnetventil_Kontrolle = setInterval(function () {
        
              if (Restzeit > 0 && Schwimmer && Osmosefreigabe) {
        
                Restzeit--;
        
                setState(idRestzeit, 2 * Restzeit, true);
        
              } else {
        
                setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false);
        
                clearInterval(Magnetventil_Kontrolle); 
        
                Magnetventil_Kontrolle = null;
        
              }
        
            }, 2000);
        
            setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, true);
        
          }
        
        }
        
         
        
        // Skripstart
        
        setTimeout(function() {
        
            Restzeit = getState(idRestzeit).val / 2;
        
            if(Schwimmer && Osmosefreigabe) Magnetventil_Ein();
        
            else setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false);
        
        }, 200);
        
         
        
        on({id: 'sonoff.0.Aqua_Float.POWER1', change: "ne"}, function (obj) {
        
          Schwimmer = obj.state.val;
        
          if(Schwimmer) Magnetventil_Ein();
        
        });
        
         
        
        schedule("0 0 * * *", function () {
        
          Restzeit = 150;
        
          setState(idRestzeit, 300, true);
        
          if(Schwimmer) Magnetventil_Ein();
        
        });
        
         
        
        on({id: 'sonoff.0.Aqua_Float.POWER4', change: "ne"}, function (obj) {
        
          if (obj.state.val) {
        
            timeout_aus = setTimeout(function () {
        
              Osmosefreigabe = false;  
        
              setState("sonoff.0.Aqua_Power.POWER3"/*Aqua_Power_Skimmer*/, false);
        
              setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false);
        
            }, 5000);
        
            if (timeout_ein) {
        
                clearTimeout(timeout_ein); 
        
                timeout_ein = null;
        
            }
        
          } else {
        
            timeout_ein = setTimeout(function () {
        
              Osmosefreigabe = true;
        
              if(Schwimmer) Magnetventil_Ein();                
        
              setStateDelayed("sonoff.0.Aqua_Power.POWER3"/*Aqua_Power_Skimmer*/, true, 10000);
        
            }, 10000);
        
            if (timeout_aus) {
        
                clearTimeout(timeout_aus); 
        
                timeout_aus = null;
        
            }
        
          }
        
        });
        
         
        
        on({id: 'sonoff.0.Aqua_Power.POWER3', change: "ne"}, function (obj) {
        
          var txt;  
        
          if (obj.state.val) txt = text_ein;   
        
          else txt = text_aus;   
        
          sendTo("telegram.0", "send", {
        
            text: txt
        
          });
        
          log(txt);
        
        });
        

        Wo soll ich es hier einfügen ?

        paul53P 1 Antwort Letzte Antwort
        0
        • AphofisA Aphofis

          @paul53 mach ich!

          Mein Script sieht so aus

          const idRestzeit = 'Osmose.Restzeit';
          
          const text_ein = ['Filter Max unterschritten, Skimmer & Osmose','\n','wurden wieder eingeschaltet'].join('');
          
          const text_aus = ['Filter Max erreicht, Skimmer & Osmose','\n','wurden abgeschaltet'].join('');
          
           
          
          createState(idRestzeit, 300, {type: 'number', unit: 's'});
          
           
          
          var Osmosefreigabe = !getState('sonoff.0.Aqua_Float.POWER4').val;
          
          var Schwimmer = getState("sonoff.0.Aqua_Float.POWER1").val;
          
          var Restzeit, timeout_aus, timeout_ein, Magnetventil_Kontrolle;
          
           
          
          function Magnetventil_Ein() {
          
            if (!Magnetventil_Kontrolle && Restzeit > 0 && Osmosefreigabe) {
          
              Magnetventil_Kontrolle = setInterval(function () {
          
                if (Restzeit > 0 && Schwimmer && Osmosefreigabe) {
          
                  Restzeit--;
          
                  setState(idRestzeit, 2 * Restzeit, true);
          
                } else {
          
                  setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false);
          
                  clearInterval(Magnetventil_Kontrolle); 
          
                  Magnetventil_Kontrolle = null;
          
                }
          
              }, 2000);
          
              setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, true);
          
            }
          
          }
          
           
          
          // Skripstart
          
          setTimeout(function() {
          
              Restzeit = getState(idRestzeit).val / 2;
          
              if(Schwimmer && Osmosefreigabe) Magnetventil_Ein();
          
              else setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false);
          
          }, 200);
          
           
          
          on({id: 'sonoff.0.Aqua_Float.POWER1', change: "ne"}, function (obj) {
          
            Schwimmer = obj.state.val;
          
            if(Schwimmer) Magnetventil_Ein();
          
          });
          
           
          
          schedule("0 0 * * *", function () {
          
            Restzeit = 150;
          
            setState(idRestzeit, 300, true);
          
            if(Schwimmer) Magnetventil_Ein();
          
          });
          
           
          
          on({id: 'sonoff.0.Aqua_Float.POWER4', change: "ne"}, function (obj) {
          
            if (obj.state.val) {
          
              timeout_aus = setTimeout(function () {
          
                Osmosefreigabe = false;  
          
                setState("sonoff.0.Aqua_Power.POWER3"/*Aqua_Power_Skimmer*/, false);
          
                setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false);
          
              }, 5000);
          
              if (timeout_ein) {
          
                  clearTimeout(timeout_ein); 
          
                  timeout_ein = null;
          
              }
          
            } else {
          
              timeout_ein = setTimeout(function () {
          
                Osmosefreigabe = true;
          
                if(Schwimmer) Magnetventil_Ein();                
          
                setStateDelayed("sonoff.0.Aqua_Power.POWER3"/*Aqua_Power_Skimmer*/, true, 10000);
          
              }, 10000);
          
              if (timeout_aus) {
          
                  clearTimeout(timeout_aus); 
          
                  timeout_aus = null;
          
              }
          
            }
          
          });
          
           
          
          on({id: 'sonoff.0.Aqua_Power.POWER3', change: "ne"}, function (obj) {
          
            var txt;  
          
            if (obj.state.val) txt = text_ein;   
          
            else txt = text_aus;   
          
            sendTo("telegram.0", "send", {
          
              text: txt
          
            });
          
            log(txt);
          
          });
          

          Wo soll ich es hier einfügen ?

          paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von
          #59

          @Aphofis sagte:

          Wo soll ich es hier einfügen ?

          In Zeile 72.

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

          AphofisA 1 Antwort Letzte Antwort
          0
          • paul53P paul53

            @Aphofis sagte:

            Wo soll ich es hier einfügen ?

            In Zeile 72.

            AphofisA Offline
            AphofisA Offline
            Aphofis
            schrieb am zuletzt editiert von
            #60

            @paul53
            nach:

            if(Schwimmer) Magnetventil_Ein();
             else setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false); 
            
            paul53P 1 Antwort Letzte Antwort
            0
            • AphofisA Aphofis

              @paul53
              nach:

              if(Schwimmer) Magnetventil_Ein();
               else setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false); 
              
              paul53P Offline
              paul53P Offline
              paul53
              schrieb am zuletzt editiert von paul53
              #61

              @Aphofis sagte:

              nach:

              Richtig. Und in Zeile 70 füge noch ein Log ein, um zu sehen ob richtig getriggert wird:

                log('Schwimmer: ' + Schwimmer);
              

              Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
              Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

              1 Antwort Letzte Antwort
              0
              • AphofisA Offline
                AphofisA Offline
                Aphofis
                schrieb am zuletzt editiert von
                #62

                ok
                korrekt?

                on({id: 'sonoff.0.Aqua_Float.POWER1', change: "ne"}, function (obj) {
                
                  Schwimmer = obj.state.val;
                
                  if(Schwimmer) Magnetventil_Ein();
                
                 else setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false); 
                 
                });
                
                paul53P 1 Antwort Letzte Antwort
                0
                • AphofisA Aphofis

                  ok
                  korrekt?

                  on({id: 'sonoff.0.Aqua_Float.POWER1', change: "ne"}, function (obj) {
                  
                    Schwimmer = obj.state.val;
                  
                    if(Schwimmer) Magnetventil_Ein();
                  
                   else setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false); 
                   
                  });
                  
                  paul53P Offline
                  paul53P Offline
                  paul53
                  schrieb am zuletzt editiert von paul53
                  #63

                  @Aphofis sagte:

                  korrekt?

                  Ja, jedoch die Leerzeilen sind überflüssig: Sie entstehen beim Kopieren aus dem Forum.

                  Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                  Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                  AphofisA 1 Antwort Letzte Antwort
                  0
                  • AphofisA Offline
                    AphofisA Offline
                    Aphofis
                    schrieb am zuletzt editiert von
                    #64

                    Magnetventil Stecker ist wieder drin JS neu gestartet.
                    OK also kann ich die rasu nehmen?

                    1 Antwort Letzte Antwort
                    0
                    • paul53P paul53

                      @Aphofis sagte:

                      korrekt?

                      Ja, jedoch die Leerzeilen sind überflüssig: Sie entstehen beim Kopieren aus dem Forum.

                      AphofisA Offline
                      AphofisA Offline
                      Aphofis
                      schrieb am zuletzt editiert von Aphofis
                      #65

                      @paul53
                      ist es so in Ordnung ?

                      const idRestzeit = 'Osmose.Restzeit';
                      const text_ein = ['Filter Max unterschritten, Skimmer & Osmose','\n','wurden wieder eingeschaltet'].join('');
                      const text_aus = ['Filter Max erreicht, Skimmer & Osmose','\n','wurden abgeschaltet'].join('');
                      
                      createState(idRestzeit, 300, {type: 'number', unit: 's'});
                      
                      var Osmosefreigabe = !getState('sonoff.0.Aqua_Float.POWER4').val;
                      var Schwimmer = getState("sonoff.0.Aqua_Float.POWER1").val;
                      var Restzeit, timeout_aus, timeout_ein, Magnetventil_Kontrolle;
                      
                      function Magnetventil_Ein() {
                        if (!Magnetventil_Kontrolle && Restzeit > 0 && Osmosefreigabe) {
                          Magnetventil_Kontrolle = setInterval(function () {
                            if (Restzeit > 0 && Schwimmer && Osmosefreigabe) {
                              Restzeit--;
                              setState(idRestzeit, 2 * Restzeit, true);
                            } else {
                              setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false);
                              clearInterval(Magnetventil_Kontrolle); 
                              Magnetventil_Kontrolle = null;
                            }
                          }, 2000);
                          setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, true);
                        }
                      }
                      // Skripstart
                      setTimeout(function() {
                          Restzeit = getState(idRestzeit).val / 2;
                          if(Schwimmer && Osmosefreigabe) Magnetventil_Ein();
                          else setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false);
                      }, 200);
                      on({id: 'sonoff.0.Aqua_Float.POWER1', change: "ne"}, function (obj) {
                        Schwimmer = obj.state.val;
                        if(Schwimmer) Magnetventil_Ein();
                       else setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false); 
                      });
                      
                      schedule("0 0 * * *", function () {
                        Restzeit = 150;
                        setState(idRestzeit, 300, true);
                        if(Schwimmer) Magnetventil_Ein();
                      });
                      
                      on({id: 'sonoff.0.Aqua_Float.POWER4', change: "ne"}, function (obj) {
                        if (obj.state.val) {
                          timeout_aus = setTimeout(function () {
                            Osmosefreigabe = false;  
                            setState("sonoff.0.Aqua_Power.POWER3"/*Aqua_Power_Skimmer*/, false);
                            setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false);
                          }, 5000);
                        if (timeout_ein) {
                              clearTimeout(timeout_ein); 
                              timeout_ein = null;
                          }
                        } else {
                          timeout_ein = setTimeout(function () {
                            Osmosefreigabe = true;
                            if(Schwimmer) Magnetventil_Ein();                
                            setStateDelayed("sonoff.0.Aqua_Power.POWER3"/*Aqua_Power_Skimmer*/, true, 10000);
                          }, 10000);
                        if (timeout_aus) {
                              clearTimeout(timeout_aus); 
                              timeout_aus = null;
                          }
                        }
                      });
                      
                      on({id: 'sonoff.0.Aqua_Power.POWER3', change: "ne"}, function (obj) {
                        var txt;  
                        if (obj.state.val) txt = text_ein;   
                        else txt = text_aus;   
                        sendTo("telegram.0", "send", {
                          text: txt
                        });
                        log(txt);
                        log('Schwimmer: ' + Schwimmer);
                      });
                      

                      so

                      paul53P 1 Antwort Letzte Antwort
                      0
                      • AphofisA Aphofis

                        @paul53
                        ist es so in Ordnung ?

                        const idRestzeit = 'Osmose.Restzeit';
                        const text_ein = ['Filter Max unterschritten, Skimmer & Osmose','\n','wurden wieder eingeschaltet'].join('');
                        const text_aus = ['Filter Max erreicht, Skimmer & Osmose','\n','wurden abgeschaltet'].join('');
                        
                        createState(idRestzeit, 300, {type: 'number', unit: 's'});
                        
                        var Osmosefreigabe = !getState('sonoff.0.Aqua_Float.POWER4').val;
                        var Schwimmer = getState("sonoff.0.Aqua_Float.POWER1").val;
                        var Restzeit, timeout_aus, timeout_ein, Magnetventil_Kontrolle;
                        
                        function Magnetventil_Ein() {
                          if (!Magnetventil_Kontrolle && Restzeit > 0 && Osmosefreigabe) {
                            Magnetventil_Kontrolle = setInterval(function () {
                              if (Restzeit > 0 && Schwimmer && Osmosefreigabe) {
                                Restzeit--;
                                setState(idRestzeit, 2 * Restzeit, true);
                              } else {
                                setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false);
                                clearInterval(Magnetventil_Kontrolle); 
                                Magnetventil_Kontrolle = null;
                              }
                            }, 2000);
                            setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, true);
                          }
                        }
                        // Skripstart
                        setTimeout(function() {
                            Restzeit = getState(idRestzeit).val / 2;
                            if(Schwimmer && Osmosefreigabe) Magnetventil_Ein();
                            else setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false);
                        }, 200);
                        on({id: 'sonoff.0.Aqua_Float.POWER1', change: "ne"}, function (obj) {
                          Schwimmer = obj.state.val;
                          if(Schwimmer) Magnetventil_Ein();
                         else setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false); 
                        });
                        
                        schedule("0 0 * * *", function () {
                          Restzeit = 150;
                          setState(idRestzeit, 300, true);
                          if(Schwimmer) Magnetventil_Ein();
                        });
                        
                        on({id: 'sonoff.0.Aqua_Float.POWER4', change: "ne"}, function (obj) {
                          if (obj.state.val) {
                            timeout_aus = setTimeout(function () {
                              Osmosefreigabe = false;  
                              setState("sonoff.0.Aqua_Power.POWER3"/*Aqua_Power_Skimmer*/, false);
                              setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false);
                            }, 5000);
                          if (timeout_ein) {
                                clearTimeout(timeout_ein); 
                                timeout_ein = null;
                            }
                          } else {
                            timeout_ein = setTimeout(function () {
                              Osmosefreigabe = true;
                              if(Schwimmer) Magnetventil_Ein();                
                              setStateDelayed("sonoff.0.Aqua_Power.POWER3"/*Aqua_Power_Skimmer*/, true, 10000);
                            }, 10000);
                          if (timeout_aus) {
                                clearTimeout(timeout_aus); 
                                timeout_aus = null;
                            }
                          }
                        });
                        
                        on({id: 'sonoff.0.Aqua_Power.POWER3', change: "ne"}, function (obj) {
                          var txt;  
                          if (obj.state.val) txt = text_ein;   
                          else txt = text_aus;   
                          sendTo("telegram.0", "send", {
                            text: txt
                          });
                          log(txt);
                          log('Schwimmer: ' + Schwimmer);
                        });
                        

                        so

                        paul53P Offline
                        paul53P Offline
                        paul53
                        schrieb am zuletzt editiert von paul53
                        #66

                        @Aphofis sagte:

                        ist es so in Ordnung ?

                        Ja, aber wegen der besseren Lesbarkeit füge vorn in Zeile 35 (vor else) ein Leerzeichen ein; in Zeilen 51 und 61 vor if zwei Leerzeichen ein.

                        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                        AphofisA 1 Antwort Letzte Antwort
                        0
                        • paul53P paul53

                          @Aphofis sagte:

                          ist es so in Ordnung ?

                          Ja, aber wegen der besseren Lesbarkeit füge vorn in Zeile 35 (vor else) ein Leerzeichen ein; in Zeilen 51 und 61 vor if zwei Leerzeichen ein.

                          AphofisA Offline
                          AphofisA Offline
                          Aphofis
                          schrieb am zuletzt editiert von
                          #67

                          @paul53
                          So besser ?

                          const idRestzeit = 'Osmose.Restzeit';
                          const text_ein = ['Filter Max unterschritten, Skimmer & Osmose','\n','wurden wieder eingeschaltet'].join('');
                          const text_aus = ['Filter Max erreicht, Skimmer & Osmose','\n','wurden abgeschaltet'].join('');
                          
                          createState(idRestzeit, 300, {type: 'number', unit: 's'});
                          
                          var Osmosefreigabe = !getState('sonoff.0.Aqua_Float.POWER4').val;
                          var Schwimmer = getState("sonoff.0.Aqua_Float.POWER1").val;
                          var Restzeit, timeout_aus, timeout_ein, Magnetventil_Kontrolle;
                          
                          function Magnetventil_Ein() {
                            if (!Magnetventil_Kontrolle && Restzeit > 0 && Osmosefreigabe) {
                              Magnetventil_Kontrolle = setInterval(function () {
                                if (Restzeit > 0 && Schwimmer && Osmosefreigabe) {
                                  Restzeit--;
                                  setState(idRestzeit, 2 * Restzeit, true);
                                } else {
                                  setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false);
                                  clearInterval(Magnetventil_Kontrolle); 
                                  Magnetventil_Kontrolle = null;
                                }
                              }, 2000);
                              setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, true);
                            }
                          }
                          // Skripstart
                          setTimeout(function() {
                              Restzeit = getState(idRestzeit).val / 2;
                              if(Schwimmer && Osmosefreigabe) Magnetventil_Ein();
                              else setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false);
                          }, 200);
                          on({id: 'sonoff.0.Aqua_Float.POWER1', change: "ne"}, function (obj) {
                            Schwimmer = obj.state.val;
                            if(Schwimmer) Magnetventil_Ein();
                              else setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false); 
                          });
                          
                          schedule("0 0 * * *", function () {
                            Restzeit = 150;
                            setState(idRestzeit, 300, true);
                            if(Schwimmer) Magnetventil_Ein();
                          });
                          
                          on({id: 'sonoff.0.Aqua_Float.POWER4', change: "ne"}, function (obj) {
                            if (obj.state.val) {
                              timeout_aus = setTimeout(function () {
                                Osmosefreigabe = false;  
                                setState("sonoff.0.Aqua_Power.POWER3"/*Aqua_Power_Skimmer*/, false);
                                setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false);
                              }, 5000);
                               if (timeout_ein) {
                                  clearTimeout(timeout_ein); 
                                  timeout_ein = null;
                              }
                            } else {
                              timeout_ein = setTimeout(function () {
                                Osmosefreigabe = true;
                                if(Schwimmer) Magnetventil_Ein();                
                                setStateDelayed("sonoff.0.Aqua_Power.POWER3"/*Aqua_Power_Skimmer*/, true, 10000);
                              }, 10000);
                               if (timeout_aus) {
                                  clearTimeout(timeout_aus); 
                                  timeout_aus = null;
                              }
                            }
                          });
                          
                          on({id: 'sonoff.0.Aqua_Power.POWER3', change: "ne"}, function (obj) {
                            var txt;  
                            if (obj.state.val) txt = text_ein;   
                            else txt = text_aus;   
                            sendTo("telegram.0", "send", {
                              text: txt
                            });
                            log(txt);
                            log('Schwimmer: ' + Schwimmer);
                          });
                          
                          paul53P 1 Antwort Letzte Antwort
                          0
                          • AphofisA Aphofis

                            @paul53
                            So besser ?

                            const idRestzeit = 'Osmose.Restzeit';
                            const text_ein = ['Filter Max unterschritten, Skimmer & Osmose','\n','wurden wieder eingeschaltet'].join('');
                            const text_aus = ['Filter Max erreicht, Skimmer & Osmose','\n','wurden abgeschaltet'].join('');
                            
                            createState(idRestzeit, 300, {type: 'number', unit: 's'});
                            
                            var Osmosefreigabe = !getState('sonoff.0.Aqua_Float.POWER4').val;
                            var Schwimmer = getState("sonoff.0.Aqua_Float.POWER1").val;
                            var Restzeit, timeout_aus, timeout_ein, Magnetventil_Kontrolle;
                            
                            function Magnetventil_Ein() {
                              if (!Magnetventil_Kontrolle && Restzeit > 0 && Osmosefreigabe) {
                                Magnetventil_Kontrolle = setInterval(function () {
                                  if (Restzeit > 0 && Schwimmer && Osmosefreigabe) {
                                    Restzeit--;
                                    setState(idRestzeit, 2 * Restzeit, true);
                                  } else {
                                    setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false);
                                    clearInterval(Magnetventil_Kontrolle); 
                                    Magnetventil_Kontrolle = null;
                                  }
                                }, 2000);
                                setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, true);
                              }
                            }
                            // Skripstart
                            setTimeout(function() {
                                Restzeit = getState(idRestzeit).val / 2;
                                if(Schwimmer && Osmosefreigabe) Magnetventil_Ein();
                                else setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false);
                            }, 200);
                            on({id: 'sonoff.0.Aqua_Float.POWER1', change: "ne"}, function (obj) {
                              Schwimmer = obj.state.val;
                              if(Schwimmer) Magnetventil_Ein();
                                else setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false); 
                            });
                            
                            schedule("0 0 * * *", function () {
                              Restzeit = 150;
                              setState(idRestzeit, 300, true);
                              if(Schwimmer) Magnetventil_Ein();
                            });
                            
                            on({id: 'sonoff.0.Aqua_Float.POWER4', change: "ne"}, function (obj) {
                              if (obj.state.val) {
                                timeout_aus = setTimeout(function () {
                                  Osmosefreigabe = false;  
                                  setState("sonoff.0.Aqua_Power.POWER3"/*Aqua_Power_Skimmer*/, false);
                                  setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false);
                                }, 5000);
                                 if (timeout_ein) {
                                    clearTimeout(timeout_ein); 
                                    timeout_ein = null;
                                }
                              } else {
                                timeout_ein = setTimeout(function () {
                                  Osmosefreigabe = true;
                                  if(Schwimmer) Magnetventil_Ein();                
                                  setStateDelayed("sonoff.0.Aqua_Power.POWER3"/*Aqua_Power_Skimmer*/, true, 10000);
                                }, 10000);
                                 if (timeout_aus) {
                                    clearTimeout(timeout_aus); 
                                    timeout_aus = null;
                                }
                              }
                            });
                            
                            on({id: 'sonoff.0.Aqua_Power.POWER3', change: "ne"}, function (obj) {
                              var txt;  
                              if (obj.state.val) txt = text_ein;   
                              else txt = text_aus;   
                              sendTo("telegram.0", "send", {
                                text: txt
                              });
                              log(txt);
                              log('Schwimmer: ' + Schwimmer);
                            });
                            
                            paul53P Offline
                            paul53P Offline
                            paul53
                            schrieb am zuletzt editiert von
                            #68

                            @Aphofis sagte:

                            So besser ?

                            Bedingt: Jetzt sind es zwei bzw. je ein Leerzeichen zuviel:

                            • else gehört linksbündig unter if
                            • if gehört linksbündig über die zugehörige schließende geschweifte Klammer in Zeilen 54, 64

                            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                            AphofisA 1 Antwort Letzte Antwort
                            0
                            • paul53P paul53

                              @Aphofis sagte:

                              So besser ?

                              Bedingt: Jetzt sind es zwei bzw. je ein Leerzeichen zuviel:

                              • else gehört linksbündig unter if
                              • if gehört linksbündig über die zugehörige schließende geschweifte Klammer in Zeilen 54, 64
                              AphofisA Offline
                              AphofisA Offline
                              Aphofis
                              schrieb am zuletzt editiert von
                              #69

                              @paul53 Ich schnalle die Struktur nicht so ganz!

                              const idRestzeit = 'Osmose.Restzeit';
                              const text_ein = ['Filter Max unterschritten, Skimmer & Osmose','\n','wurden wieder eingeschaltet'].join('');
                              const text_aus = ['Filter Max erreicht, Skimmer & Osmose','\n','wurden abgeschaltet'].join('');
                              
                              createState(idRestzeit, 300, {type: 'number', unit: 's'});
                              
                              var Osmosefreigabe = !getState('sonoff.0.Aqua_Float.POWER4').val;
                              var Schwimmer = getState("sonoff.0.Aqua_Float.POWER1").val;
                              var Restzeit, timeout_aus, timeout_ein, Magnetventil_Kontrolle;
                              
                              function Magnetventil_Ein() {
                              if (!Magnetventil_Kontrolle && Restzeit > 0 && Osmosefreigabe) {
                                  Magnetventil_Kontrolle = setInterval(function () {
                                  if (Restzeit > 0 && Schwimmer && Osmosefreigabe) {
                                      Restzeit--;
                                      setState(idRestzeit, 2 * Restzeit, true);
                                    } 
                              else {
                                      setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false);
                                      clearInterval(Magnetventil_Kontrolle); 
                                      Magnetventil_Kontrolle = null;
                                    }
                                  }, 2000);
                                  setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, true);
                                }
                              }
                              // Skripstart
                              setTimeout(function() {
                                  Restzeit = getState(idRestzeit).val / 2;
                                   if(Schwimmer && Osmosefreigabe) Magnetventil_Ein();
                                  else setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false);
                              }, 200);
                              on({id: 'sonoff.0.Aqua_Float.POWER1', change: "ne"}, function (obj) {
                                Schwimmer = obj.state.val;
                              if(Schwimmer) Magnetventil_Ein();
                                  else setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false); 
                              });
                              
                              schedule("0 0 * * *", function () {
                                Restzeit = 150;
                                setState(idRestzeit, 300, true);
                              if(Schwimmer) Magnetventil_Ein();
                              });
                              
                              on({id: 'sonoff.0.Aqua_Float.POWER4', change: "ne"}, function (obj) {
                              if (obj.state.val) {
                                  timeout_aus = setTimeout(function () {
                                    Osmosefreigabe = false;  
                                    setState("sonoff.0.Aqua_Power.POWER3"/*Aqua_Power_Skimmer*/, false);
                                    setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false);
                                  }, 5000);
                                  if (timeout_ein) {
                                      clearTimeout(timeout_ein); 
                                      timeout_ein = null;
                                  }
                                } else {
                                  timeout_ein = setTimeout(function () {
                                    Osmosefreigabe = true;
                                  if(Schwimmer) Magnetventil_Ein();                
                                    setStateDelayed("sonoff.0.Aqua_Power.POWER3"/*Aqua_Power_Skimmer*/, true, 10000);
                                  }, 10000);
                                  if (timeout_aus) {
                                      clearTimeout(timeout_aus); 
                                      timeout_aus = null;
                                  }
                                }
                              });
                              
                              on({id: 'sonoff.0.Aqua_Power.POWER3', change: "ne"}, function (obj) {
                                var txt;  
                               if (obj.state.val) txt = text_ein;   
                              else txt = text_aus;   
                                sendTo("telegram.0", "send", {
                                  text: txt
                                });
                                log(txt);
                                log('Schwimmer: ' + Schwimmer);
                              });
                              
                              paul53P 1 Antwort Letzte Antwort
                              0
                              • AphofisA Aphofis

                                @paul53 Ich schnalle die Struktur nicht so ganz!

                                const idRestzeit = 'Osmose.Restzeit';
                                const text_ein = ['Filter Max unterschritten, Skimmer & Osmose','\n','wurden wieder eingeschaltet'].join('');
                                const text_aus = ['Filter Max erreicht, Skimmer & Osmose','\n','wurden abgeschaltet'].join('');
                                
                                createState(idRestzeit, 300, {type: 'number', unit: 's'});
                                
                                var Osmosefreigabe = !getState('sonoff.0.Aqua_Float.POWER4').val;
                                var Schwimmer = getState("sonoff.0.Aqua_Float.POWER1").val;
                                var Restzeit, timeout_aus, timeout_ein, Magnetventil_Kontrolle;
                                
                                function Magnetventil_Ein() {
                                if (!Magnetventil_Kontrolle && Restzeit > 0 && Osmosefreigabe) {
                                    Magnetventil_Kontrolle = setInterval(function () {
                                    if (Restzeit > 0 && Schwimmer && Osmosefreigabe) {
                                        Restzeit--;
                                        setState(idRestzeit, 2 * Restzeit, true);
                                      } 
                                else {
                                        setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false);
                                        clearInterval(Magnetventil_Kontrolle); 
                                        Magnetventil_Kontrolle = null;
                                      }
                                    }, 2000);
                                    setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, true);
                                  }
                                }
                                // Skripstart
                                setTimeout(function() {
                                    Restzeit = getState(idRestzeit).val / 2;
                                     if(Schwimmer && Osmosefreigabe) Magnetventil_Ein();
                                    else setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false);
                                }, 200);
                                on({id: 'sonoff.0.Aqua_Float.POWER1', change: "ne"}, function (obj) {
                                  Schwimmer = obj.state.val;
                                if(Schwimmer) Magnetventil_Ein();
                                    else setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false); 
                                });
                                
                                schedule("0 0 * * *", function () {
                                  Restzeit = 150;
                                  setState(idRestzeit, 300, true);
                                if(Schwimmer) Magnetventil_Ein();
                                });
                                
                                on({id: 'sonoff.0.Aqua_Float.POWER4', change: "ne"}, function (obj) {
                                if (obj.state.val) {
                                    timeout_aus = setTimeout(function () {
                                      Osmosefreigabe = false;  
                                      setState("sonoff.0.Aqua_Power.POWER3"/*Aqua_Power_Skimmer*/, false);
                                      setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false);
                                    }, 5000);
                                    if (timeout_ein) {
                                        clearTimeout(timeout_ein); 
                                        timeout_ein = null;
                                    }
                                  } else {
                                    timeout_ein = setTimeout(function () {
                                      Osmosefreigabe = true;
                                    if(Schwimmer) Magnetventil_Ein();                
                                      setStateDelayed("sonoff.0.Aqua_Power.POWER3"/*Aqua_Power_Skimmer*/, true, 10000);
                                    }, 10000);
                                    if (timeout_aus) {
                                        clearTimeout(timeout_aus); 
                                        timeout_aus = null;
                                    }
                                  }
                                });
                                
                                on({id: 'sonoff.0.Aqua_Power.POWER3', change: "ne"}, function (obj) {
                                  var txt;  
                                 if (obj.state.val) txt = text_ein;   
                                else txt = text_aus;   
                                  sendTo("telegram.0", "send", {
                                    text: txt
                                  });
                                  log(txt);
                                  log('Schwimmer: ' + Schwimmer);
                                });
                                
                                paul53P Offline
                                paul53P Offline
                                paul53
                                schrieb am zuletzt editiert von
                                #70

                                @Aphofis sagte:

                                Ich schnalle die Struktur nicht so ganz!

                                Die vorherige Version war besser !

                                Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                AphofisA 1 Antwort Letzte Antwort
                                0
                                • paul53P paul53

                                  @Aphofis sagte:

                                  Ich schnalle die Struktur nicht so ganz!

                                  Die vorherige Version war besser !

                                  AphofisA Offline
                                  AphofisA Offline
                                  Aphofis
                                  schrieb am zuletzt editiert von
                                  #71

                                  @paul53
                                  Na toll

                                  paul53P 1 Antwort Letzte Antwort
                                  0
                                  • AphofisA Aphofis

                                    @paul53
                                    Na toll

                                    paul53P Offline
                                    paul53P Offline
                                    paul53
                                    schrieb am zuletzt editiert von
                                    #72

                                    @Aphofis
                                    Nimm diese:
                                    Osmose.js.txt

                                    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                    AphofisA 1 Antwort Letzte Antwort
                                    0
                                    • paul53P paul53

                                      @Aphofis
                                      Nimm diese:
                                      Osmose.js.txt

                                      AphofisA Offline
                                      AphofisA Offline
                                      Aphofis
                                      schrieb am zuletzt editiert von Aphofis
                                      #73

                                      @paul53
                                      Da fehlt dann nur

                                       log('Schwimmer: ' + Schwimmer); 
                                      
                                      paul53P 1 Antwort Letzte Antwort
                                      0
                                      • AphofisA Aphofis

                                        @paul53
                                        Da fehlt dann nur

                                         log('Schwimmer: ' + Schwimmer); 
                                        
                                        paul53P Offline
                                        paul53P Offline
                                        paul53
                                        schrieb am zuletzt editiert von
                                        #74

                                        @Aphofis sagte:

                                        Da fehlt dann nur

                                        Wo ?

                                        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                        AphofisA 1 Antwort Letzte Antwort
                                        0
                                        • paul53P paul53

                                          @Aphofis sagte:

                                          Da fehlt dann nur

                                          Wo ?

                                          AphofisA Offline
                                          AphofisA Offline
                                          Aphofis
                                          schrieb am zuletzt editiert von
                                          #75

                                          @paul53
                                          In der txt die ich nehmen sollte oder ist der Log da schon irgendwo drin?

                                          paul53P 1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          445

                                          Online

                                          32.6k

                                          Benutzer

                                          82.0k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe