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
    741

  • 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.
  • 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
                                        • AphofisA Aphofis

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

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

                                          @Aphofis sagte:

                                          ist der Log da schon irgendwo drin?

                                          Zeile 36.

                                          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
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          609

                                          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