Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Osmose Dosierung }}} Problem {{{

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Osmose Dosierung }}} Problem {{{

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

      Ich habe ein Riesen Problem, seid mehreren Tagen dosiert mein Magnetventil nicht mehr.
      Wenn ich den Schwimmer einmal kurz von hand betätige praktisch ins auf den Zustand 0 bringe
      wird für 1-2 sek dosiert aber nicht mehr so lange bis der schwimmer false ist.
      Hier ist mein aktuelles Script erstellt von Paul53.
      Die Osmose Freigabe steht auf true und Restzeit ist auch vorhanden.
      Mechanisch habe ich den Schwimmer getestet er ist abfallend im true und oben auf false.
      Was ist hier falsch!?

      const idRestzeit = '0_userdata.0.Aqua_Control.0.Osmose_System.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, 500, {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);
      
      var entprell = null;
      
      on({id: 'sonoff.0.Aqua_Float.POWER1', change: "ne"}, function (obj) {
      
        log('Schwimmer: ' + obj.state.val)
      
        if(entprell) {
      
          clearTimeout(entprell);
      
          entprell = null;
      
        }  
      
        entprell = setTimeout(function() {
      
          Schwimmer = obj.state.val;
      
          if(Schwimmer) Magnetventil_Ein();
      
          else setState("sonoff.0.Aqua_Control.POWER1"/*Osmose_Magnetventil*/, false);
      
        }, 2000); // 2 s 
      
      });
      
       
      
      schedule("0 0 * * *", function () {
      
        Restzeit = 250;
      
        setState(idRestzeit, 500, 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.4", "send", {
      
          text: txt
      
        });
      
        log(txt);
      
      });
      
      

      Vielleicht kannst du @paul53 auch mal drüber gucken. Du kennst deine Scripte am besten.
      Es ist echt dringend, da ich jeden Tag um die 8 Liter nachkippen muss und dadurch der Salzgehalt im Becken täglich drastisch schwankt.

      Danke im Vorraus

      paul53 1 Reply Last reply Reply Quote 0
      • paul53
        paul53 @Aphofis last edited by

        @aphofis sagte: seid mehreren Tagen dosiert mein Magnetventil nicht mehr.

        Wenn es vor einigen Tagen noch funktioniert hat und das Skript seitdem nicht verändert wurde, kann sich nur das Verhalten der Hardware verändert haben. Füge ein paar Logs ein, um zu sehen, was passiert.

        Aphofis 1 Reply Last reply Reply Quote 0
        • Aphofis
          Aphofis @paul53 last edited by

          @paul53
          Wie soll ich denn Logs einfügen ich habe von JavaScript null Ahnung

          paul53 1 Reply Last reply Reply Quote 0
          • paul53
            paul53 @Aphofis last edited by

            @aphofis
            Der Schwimmer liefert schon ein Log. Passt das Verhalten?
            Dann sollte auch noch "POWER4" geloggt werden.

            on({id: 'sonoff.0.Aqua_Float.POWER4', change: "ne"}, function (obj) {
               log('POWER4: ' + obj.state.val);
            
            Aphofis 1 Reply Last reply Reply Quote 0
            • Aphofis
              Aphofis @paul53 last edited by

              @paul53
              ist es so korrekt

              schedule("0 0 * * *", function () {
              
                Restzeit = 250;
              
                setState(idRestzeit, 500, true);
              
                if(Schwimmer) Magnetventil_Ein();
              
              });
              
               
              
              on({id: 'sonoff.0.Aqua_Float.POWER4', change: "ne"}, function (obj) {
                 log('POWER4: ' + obj.state.val);
                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);
              
              paul53 1 Reply Last reply Reply Quote 0
              • paul53
                paul53 @Aphofis last edited by

                @aphofis sagte: ist es so korrekt

                Ja.

                Aphofis 1 Reply Last reply Reply Quote 0
                • Aphofis
                  Aphofis @paul53 last edited by

                  @paul53
                  Finde ich die Log dann ganz normal in den Logs ?
                  Ich glaube das läuft nicht mehr seid dem ich den Aktuellen JS-Controller Stable aktualisiert hatte

                  paul53 1 Reply Last reply Reply Quote 0
                  • paul53
                    paul53 @Aphofis last edited by

                    @aphofis sagte: Finde ich die Log dann ganz normal in den Logs ?

                    Ja, und unterhalb des Skripts im Editor.

                    Aphofis 1 Reply Last reply Reply Quote 0
                    • Aphofis
                      Aphofis @paul53 last edited by

                      @paul53
                      Weder im Script noch in der System Log wird etwas angezeigt.
                      Der schwimmer ist true und es wird nichts dosiert.

                      paul53 1 Reply Last reply Reply Quote 0
                      • paul53
                        paul53 @Aphofis last edited by

                        @aphofis sagte: Weder im Script noch in der System Log wird etwas angezeigt.

                        Dann wird offenbar nicht getriggert und es scheint somit ein grundsätzliches Problem zu sein, das nicht nur das eine Skript betrifft.

                        Aphofis 1 Reply Last reply Reply Quote 0
                        • Aphofis
                          Aphofis @paul53 last edited by

                          @paul53
                          nur wo kann das problem liegen?
                          Wenn ich den Schwimmer manuell ins false bringe wird dieser auch im sonoff adapter unter dem Gerät als false angezeigt nur die steuerung triggert nicht und aktiviert das Magnetventil

                          paul53 1 Reply Last reply Reply Quote 0
                          • paul53
                            paul53 @Aphofis last edited by paul53

                            @aphofis
                            Dann erstelle mal ein Testskript, das nur feststellt, ob der Schwimmer triggert, wenn er betätigt wird:

                            on('sonoff.0.Aqua_Float.POWER1', function(dp) {
                              log('Test Schwimmer: ' + dp.state.val)
                            });
                            
                            Aphofis 1 Reply Last reply Reply Quote 0
                            • Aphofis
                              Aphofis @paul53 last edited by

                              @paul53 sagte in Osmose Dosierung }}} Problem {{{:

                              on('sonoff.0.Aqua_Float.POWER1', function(dp) {

                              Der Schwimmer triggert
                              Nur was mir aufgefallen ist laut deines scripts wo soll da der Datenpunkt Osmosefreigabe liegen !?
                              Wenn der schwimmer unten ruht steht er auf true weil wasserstand zu niedrig, wenn ich denn dann ziehe also ins false bringe dosiert das Magnetventil für 0,5-1 sek und stoppt das macht das dann 2 mal beim manuellen betätigen danach ist schluss

                              osmose_schwimmer.png

                              paul53 1 Reply Last reply Reply Quote 0
                              • paul53
                                paul53 @Aphofis last edited by

                                @aphofis sagte: wo soll da der Datenpunkt Osmosefreigabe liegen !?

                                var Osmosefreigabe = !getState('sonoff.0.Aqua_Float.POWER4').val;
                                
                                Aphofis 2 Replies Last reply Reply Quote 0
                                • Aphofis
                                  Aphofis @paul53 last edited by

                                  @paul53
                                  OK Filter Niveau Max steht auf false ist unten auch richtig so.
                                  Habe die ESPs und Relais Karte manuell getestet mit gebrückten Schwimmer anschlüßen bei allen relevanten Geräten kommen auch 12 Volt an also Relais karte funktioniert und Schaltzustände der ESPs sind auch korrekt.

                                  1 Reply Last reply Reply Quote 0
                                  • Aphofis
                                    Aphofis @paul53 last edited by

                                    @paul53
                                    oder ist es ein Problem wie du mal sagtest, das

                                    const idRestzeit = '0_userdata.0.Aqua_Control.0.Osmose_System.Osmose.Restzeit';
                                    

                                    nicht im Javascript ordner liegt !?

                                    paul53 1 Reply Last reply Reply Quote 0
                                    • paul53
                                      paul53 @Aphofis last edited by

                                      @aphofis sagte: ist es ein Problem wie du mal sagtest, das

                                      const idRestzeit = '0_userdata.0.Aqua_Control.0.Osmose_System.Osmose.Restzeit';
                                      

                                      nicht im Javascript ordner liegt !?

                                      Nein.

                                      Überwache mal den Magnetventil-Datenpunkt in einem Prüfskript:

                                      on({id: 'sonoff.0.Aqua_Control.POWER1'}, function(dp) {
                                         log('Magnetventil: ' + dp.state.val + ', Ack: ' + dp.state.ack + ', Quelle: ' + dp.state.from);
                                      });
                                      
                                      Aphofis 1 Reply Last reply Reply Quote 0
                                      • Aphofis
                                        Aphofis @paul53 last edited by Aphofis

                                        @paul53
                                        wenn ich den schwimmer ziehe kommt nur das
                                        Magnetventil.png
                                        oder soll ich das magnetventil manuel per ESP schalten !?

                                        paul53 1 Reply Last reply Reply Quote 0
                                        • paul53
                                          paul53 @Aphofis last edited by

                                          @aphofis
                                          Wenn der Schwimmer nach ca. 1 s wieder auf false zurück geht, wird das Magnetventil nicht aktiviert, da erst die Entprellzeit von 2 s vergehen muss.

                                          Aphofis 1 Reply Last reply Reply Quote 0
                                          • Aphofis
                                            Aphofis @paul53 last edited by Aphofis

                                            @paul53
                                            was heisst das jetzt im klartext!?

                                            Ich teste morgen mal das magnetventil ob das einen defekt hat.
                                            Bei Meerwasser weiss man nie! Das Magnet Ventil ist zwar in einem Kunststoff gehäuse eingebaut aber Seeluft mit Salz kommt ja in der Technik in jede Ritze.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            601
                                            Online

                                            31.8k
                                            Users

                                            80.0k
                                            Topics

                                            1.3m
                                            Posts

                                            blockly javascript
                                            2
                                            28
                                            856
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo