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. PWM Steuerung mit Fade

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    343

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.6k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.5k

PWM Steuerung mit Fade

Geplant Angeheftet Gesperrt Verschoben Blockly
97 Beiträge 2 Kommentatoren 6.2k Aufrufe 1 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:

    Also es ist ja nur eine von vier Steuerungen und jede für sich soll ja so lange in einer Schleife laufen bis ein anderer der Datenpunkte auf true gesetzt wird.

    Weshalb verwendest Du keine Werteliste mit den 5 Zuständen Aus/Sequenzial/Intervall/Pulse/Wellengang, denn es kann immer nur einer der Zustände aktiv sein und es sollte zwischen zwei aktiven Zuständen immer für mind. 5 s der Zustand "Aus" (0) geschaltet werden.

    Werteliste_Wellen.JPG

    Die Abfrage bei "Sequenzial" lautet dann:
    falls Wert == 1 setze sequenzial auf true
    sonst setze sequential auf false

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

    @paul53
    Das ja mal ne coole Funktion!
    Bin noch auf einem Geburtstag
    Teste ich heute Abend mal und wenn die Strömung für 5 Sek. Inaktiv sind beim Wechsel zwischen den Programmen stört mich das nicht

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

      @paul53
      Also ich teste gerade etwas.
      Es gibt die Steuerung Intervall:

      var wellenauswahl, inc, dec, sequenzial, spannung, delta, Intervall;
      
      
      wellenauswahl = getState("Aqua_Control.0.Tunze_Steuerung.Tunze_Wellen_Auswahl").val;
      inc = 1750 / getState("Aqua_Control.0.Tunze_Steuerung.Intervall_Wave_Hold").val;
      dec = -1750 / getState("Aqua_Control.0.Tunze_Steuerung.Intervall_Wave_Down").val;
      on({id: wellenauswahl == 2, change: "ne"}, function (obj) {
        var value = obj.state.val;
        var oldValue = obj.oldState.val;
        sequenzial = (obj.state ? obj.state.val : "");
        if (sequenzial) {
          spannung = 30;
          setState("sonoff.0.Aqua_Wave.Channel1"/*Aqua_Wave_Pump_1*/, spannung);
          delta = inc;
          Intervall = setInterval(function () {
            spannung = (typeof spannung == 'number' ? spannung : 0) + delta;
            setState("sonoff.0.Aqua_Wave.Channel1"/*Aqua_Wave_Pump_1*/, spannung);
            if (spannung >= 100) {
              delta = dec;
            }
            if (spannung <= 30) {
              delta = inc;
              if (!sequenzial) {
                (function () {if (Intervall) {clearInterval(Intervall); Intervall = null;}})();
              }
            }
          }, 25);
        }
      });
      // Sequenzial_Up (ms)
      on({id: 'Aqua_Control.0.Tunze_Steuerung.Intervall_Wave_Hold', change: "ne"}, function (obj) {
        var value = obj.state.val;
        var oldValue = obj.oldState.val;
        inc = 1750 / (obj.state ? obj.state.val : "");
      });
      // Sequenzial_Down (ms)
      on({id: 'Aqua_Control.0.Tunze_Steuerung.Intervall_Wave_Down', change: "ne"}, function (obj) {
        var value = obj.state.val;
        var oldValue = obj.oldState.val;
        dec = -1750 + (obj.state ? obj.state.val : "");
      });
      

      und die Steuerung Sequenzial:

      var wellenauswahl, inc, dec, sequenzial, spannung, delta, Intervall;
      
      
      wellenauswahl = getState("Aqua_Control.0.Tunze_Steuerung.Tunze_Wellen_Auswahl").val;
      inc = 1750 / getState("Aqua_Control.0.Tunze_Steuerung.Sequenzial_Wave_Up").val;
      dec = -1750 / getState("Aqua_Control.0.Tunze_Steuerung.Sequenzial_Wave_Down").val;
      on({id: wellenauswahl == 1, change: "ne"}, function (obj) {
        var value = obj.state.val;
        var oldValue = obj.oldState.val;
        sequenzial = (obj.state ? obj.state.val : "");
        if (sequenzial) {
          spannung = 30;
          setState("sonoff.0.Aqua_Wave.Channel1"/*Aqua_Wave_Pump_1*/, spannung);
          delta = inc;
          Intervall = setInterval(function () {
            spannung = (typeof spannung == 'number' ? spannung : 0) + delta;
            setState("sonoff.0.Aqua_Wave.Channel1"/*Aqua_Wave_Pump_1*/, spannung);
            if (spannung >= 100) {
              delta = dec;
            }
            if (spannung <= 30) {
              delta = inc;
              if (!sequenzial) {
                (function () {if (Intervall) {clearInterval(Intervall); Intervall = null;}})();
              }
            }
          }, 25);
        }
      });
      // Sequenzial_Up (ms)
      on({id: 'Aqua_Control.0.Tunze_Steuerung.Sequenzial_Wave_Up', change: "ne"}, function (obj) {
        var value = obj.state.val;
        var oldValue = obj.oldState.val;
        inc = 1750 / (obj.state ? obj.state.val : "");
      });
      // Sequenzial_Down (ms)
      on({id: 'Aqua_Control.0.Tunze_Steuerung.Sequenzial_Wave_Down', change: "ne"}, function (obj) {
        var value = obj.state.val;
        var oldValue = obj.oldState.val;
        dec = -1750 + (obj.state ? obj.state.val : "");
      });
      

      Dann gibt es diese Datenpunkte:
      Bildschirmfoto 2019-09-14 um 17.03.11.png
      Die switch Datenpunkte mal bei seite lassen.
      Den Datenpunkt Tunze Wellen Auswahl erstellt mit 0:Aus;1:Sequenzial;2:Intervall;3:Pulse;4:Wellengang
      den hab ich verknüpft damit je nach dem was in dem Datenpunkt steht soll die jeweilige Steuerung anspringen. Nur Leider will die Zeitsteuerung nicht so wie ich das will.
      Sicherlich ist ein Fehler darin das man nur für 10 sek testet.
      Zeitsteuerung:

      var Wellenauswahl, Sequenzial, Intervall, timeout, timeout3, timeout4;
      
      
      Wellenauswahl = getState("Aqua_Control.0.Tunze_Steuerung.Tunze_Wellen_Auswahl").val;
      Sequenzial = schedule('59 16 * * *', function () {
        setState("Aqua_Control.0.Tunze_Steuerung.Tunze_Wellen_Auswahl"/*Tunze Wellen Auswahl*/, 1);
        timeout = setTimeout(function () {
          setState("Aqua_Control.0.Tunze_Steuerung.Tunze_Wellen_Auswahl"/*Tunze Wellen Auswahl*/, 0);
          (function () {if (timeout) {clearTimeout(timeout); timeout = null;}})();
        }, 10000);
        setState("Aqua_Control.0.Tunze_Steuerung.Tunze_Wellen_Auswahl"/*Tunze Wellen Auswahl*/, 0);
      });
      Intervall = schedule('0 17 * * *', function () {
        setState("Aqua_Control.0.Tunze_Steuerung.Tunze_Wellen_Auswahl"/*Tunze Wellen Auswahl*/, 2);
        timeout3 = setTimeout(function () {
          setState("Aqua_Control.0.Tunze_Steuerung.Tunze_Wellen_Auswahl"/*Tunze Wellen Auswahl*/, 0);
          (function () {if (timeout) {clearTimeout(timeout); timeout = null;}})();
        }, 10000);
        timeout4 = setTimeout(function () {
          setState("Aqua_Control.0.Tunze_Steuerung.Tunze_Wellen_Auswahl"/*Tunze Wellen Auswahl*/, 0);
          (function () {if (timeout2) {clearTimeout(timeout2); timeout2 = null;}})();
        }, 5000);
      });
      
      paul53P 2 Antworten Letzte Antwort
      0
      • AphofisA Aphofis

        @paul53
        Also ich teste gerade etwas.
        Es gibt die Steuerung Intervall:

        var wellenauswahl, inc, dec, sequenzial, spannung, delta, Intervall;
        
        
        wellenauswahl = getState("Aqua_Control.0.Tunze_Steuerung.Tunze_Wellen_Auswahl").val;
        inc = 1750 / getState("Aqua_Control.0.Tunze_Steuerung.Intervall_Wave_Hold").val;
        dec = -1750 / getState("Aqua_Control.0.Tunze_Steuerung.Intervall_Wave_Down").val;
        on({id: wellenauswahl == 2, change: "ne"}, function (obj) {
          var value = obj.state.val;
          var oldValue = obj.oldState.val;
          sequenzial = (obj.state ? obj.state.val : "");
          if (sequenzial) {
            spannung = 30;
            setState("sonoff.0.Aqua_Wave.Channel1"/*Aqua_Wave_Pump_1*/, spannung);
            delta = inc;
            Intervall = setInterval(function () {
              spannung = (typeof spannung == 'number' ? spannung : 0) + delta;
              setState("sonoff.0.Aqua_Wave.Channel1"/*Aqua_Wave_Pump_1*/, spannung);
              if (spannung >= 100) {
                delta = dec;
              }
              if (spannung <= 30) {
                delta = inc;
                if (!sequenzial) {
                  (function () {if (Intervall) {clearInterval(Intervall); Intervall = null;}})();
                }
              }
            }, 25);
          }
        });
        // Sequenzial_Up (ms)
        on({id: 'Aqua_Control.0.Tunze_Steuerung.Intervall_Wave_Hold', change: "ne"}, function (obj) {
          var value = obj.state.val;
          var oldValue = obj.oldState.val;
          inc = 1750 / (obj.state ? obj.state.val : "");
        });
        // Sequenzial_Down (ms)
        on({id: 'Aqua_Control.0.Tunze_Steuerung.Intervall_Wave_Down', change: "ne"}, function (obj) {
          var value = obj.state.val;
          var oldValue = obj.oldState.val;
          dec = -1750 + (obj.state ? obj.state.val : "");
        });
        

        und die Steuerung Sequenzial:

        var wellenauswahl, inc, dec, sequenzial, spannung, delta, Intervall;
        
        
        wellenauswahl = getState("Aqua_Control.0.Tunze_Steuerung.Tunze_Wellen_Auswahl").val;
        inc = 1750 / getState("Aqua_Control.0.Tunze_Steuerung.Sequenzial_Wave_Up").val;
        dec = -1750 / getState("Aqua_Control.0.Tunze_Steuerung.Sequenzial_Wave_Down").val;
        on({id: wellenauswahl == 1, change: "ne"}, function (obj) {
          var value = obj.state.val;
          var oldValue = obj.oldState.val;
          sequenzial = (obj.state ? obj.state.val : "");
          if (sequenzial) {
            spannung = 30;
            setState("sonoff.0.Aqua_Wave.Channel1"/*Aqua_Wave_Pump_1*/, spannung);
            delta = inc;
            Intervall = setInterval(function () {
              spannung = (typeof spannung == 'number' ? spannung : 0) + delta;
              setState("sonoff.0.Aqua_Wave.Channel1"/*Aqua_Wave_Pump_1*/, spannung);
              if (spannung >= 100) {
                delta = dec;
              }
              if (spannung <= 30) {
                delta = inc;
                if (!sequenzial) {
                  (function () {if (Intervall) {clearInterval(Intervall); Intervall = null;}})();
                }
              }
            }, 25);
          }
        });
        // Sequenzial_Up (ms)
        on({id: 'Aqua_Control.0.Tunze_Steuerung.Sequenzial_Wave_Up', change: "ne"}, function (obj) {
          var value = obj.state.val;
          var oldValue = obj.oldState.val;
          inc = 1750 / (obj.state ? obj.state.val : "");
        });
        // Sequenzial_Down (ms)
        on({id: 'Aqua_Control.0.Tunze_Steuerung.Sequenzial_Wave_Down', change: "ne"}, function (obj) {
          var value = obj.state.val;
          var oldValue = obj.oldState.val;
          dec = -1750 + (obj.state ? obj.state.val : "");
        });
        

        Dann gibt es diese Datenpunkte:
        Bildschirmfoto 2019-09-14 um 17.03.11.png
        Die switch Datenpunkte mal bei seite lassen.
        Den Datenpunkt Tunze Wellen Auswahl erstellt mit 0:Aus;1:Sequenzial;2:Intervall;3:Pulse;4:Wellengang
        den hab ich verknüpft damit je nach dem was in dem Datenpunkt steht soll die jeweilige Steuerung anspringen. Nur Leider will die Zeitsteuerung nicht so wie ich das will.
        Sicherlich ist ein Fehler darin das man nur für 10 sek testet.
        Zeitsteuerung:

        var Wellenauswahl, Sequenzial, Intervall, timeout, timeout3, timeout4;
        
        
        Wellenauswahl = getState("Aqua_Control.0.Tunze_Steuerung.Tunze_Wellen_Auswahl").val;
        Sequenzial = schedule('59 16 * * *', function () {
          setState("Aqua_Control.0.Tunze_Steuerung.Tunze_Wellen_Auswahl"/*Tunze Wellen Auswahl*/, 1);
          timeout = setTimeout(function () {
            setState("Aqua_Control.0.Tunze_Steuerung.Tunze_Wellen_Auswahl"/*Tunze Wellen Auswahl*/, 0);
            (function () {if (timeout) {clearTimeout(timeout); timeout = null;}})();
          }, 10000);
          setState("Aqua_Control.0.Tunze_Steuerung.Tunze_Wellen_Auswahl"/*Tunze Wellen Auswahl*/, 0);
        });
        Intervall = schedule('0 17 * * *', function () {
          setState("Aqua_Control.0.Tunze_Steuerung.Tunze_Wellen_Auswahl"/*Tunze Wellen Auswahl*/, 2);
          timeout3 = setTimeout(function () {
            setState("Aqua_Control.0.Tunze_Steuerung.Tunze_Wellen_Auswahl"/*Tunze Wellen Auswahl*/, 0);
            (function () {if (timeout) {clearTimeout(timeout); timeout = null;}})();
          }, 10000);
          timeout4 = setTimeout(function () {
            setState("Aqua_Control.0.Tunze_Steuerung.Tunze_Wellen_Auswahl"/*Tunze Wellen Auswahl*/, 0);
            (function () {if (timeout2) {clearTimeout(timeout2); timeout2 = null;}})();
          }, 5000);
        });
        
        paul53P Offline
        paul53P Offline
        paul53
        schrieb am zuletzt editiert von paul53
        #39

        @Aphofis sagte:

        Dann gibt es diese Datenpunkte:

        Der Datenpunkt "Tunze Wellen Auswahl" ist keine Werteliste, denn der Wert einer Werteliste sieht so aus:
        Werteliste_Aus.JPG
        Poste mal die RAW-Daten des Datenpunktes in Code Tags.

        Man kann nicht auf Werte bzw. Vergleiche triggern, sondern nur auf Datenpunkt-IDs ! Der Vergleich muss mit einem falls-Logik-Baustein innerhalb des Triggers erfolgen.

        Blockly_temp.JPG

        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 Aphofis

          @paul53
          Also ich teste gerade etwas.
          Es gibt die Steuerung Intervall:

          var wellenauswahl, inc, dec, sequenzial, spannung, delta, Intervall;
          
          
          wellenauswahl = getState("Aqua_Control.0.Tunze_Steuerung.Tunze_Wellen_Auswahl").val;
          inc = 1750 / getState("Aqua_Control.0.Tunze_Steuerung.Intervall_Wave_Hold").val;
          dec = -1750 / getState("Aqua_Control.0.Tunze_Steuerung.Intervall_Wave_Down").val;
          on({id: wellenauswahl == 2, change: "ne"}, function (obj) {
            var value = obj.state.val;
            var oldValue = obj.oldState.val;
            sequenzial = (obj.state ? obj.state.val : "");
            if (sequenzial) {
              spannung = 30;
              setState("sonoff.0.Aqua_Wave.Channel1"/*Aqua_Wave_Pump_1*/, spannung);
              delta = inc;
              Intervall = setInterval(function () {
                spannung = (typeof spannung == 'number' ? spannung : 0) + delta;
                setState("sonoff.0.Aqua_Wave.Channel1"/*Aqua_Wave_Pump_1*/, spannung);
                if (spannung >= 100) {
                  delta = dec;
                }
                if (spannung <= 30) {
                  delta = inc;
                  if (!sequenzial) {
                    (function () {if (Intervall) {clearInterval(Intervall); Intervall = null;}})();
                  }
                }
              }, 25);
            }
          });
          // Sequenzial_Up (ms)
          on({id: 'Aqua_Control.0.Tunze_Steuerung.Intervall_Wave_Hold', change: "ne"}, function (obj) {
            var value = obj.state.val;
            var oldValue = obj.oldState.val;
            inc = 1750 / (obj.state ? obj.state.val : "");
          });
          // Sequenzial_Down (ms)
          on({id: 'Aqua_Control.0.Tunze_Steuerung.Intervall_Wave_Down', change: "ne"}, function (obj) {
            var value = obj.state.val;
            var oldValue = obj.oldState.val;
            dec = -1750 + (obj.state ? obj.state.val : "");
          });
          

          und die Steuerung Sequenzial:

          var wellenauswahl, inc, dec, sequenzial, spannung, delta, Intervall;
          
          
          wellenauswahl = getState("Aqua_Control.0.Tunze_Steuerung.Tunze_Wellen_Auswahl").val;
          inc = 1750 / getState("Aqua_Control.0.Tunze_Steuerung.Sequenzial_Wave_Up").val;
          dec = -1750 / getState("Aqua_Control.0.Tunze_Steuerung.Sequenzial_Wave_Down").val;
          on({id: wellenauswahl == 1, change: "ne"}, function (obj) {
            var value = obj.state.val;
            var oldValue = obj.oldState.val;
            sequenzial = (obj.state ? obj.state.val : "");
            if (sequenzial) {
              spannung = 30;
              setState("sonoff.0.Aqua_Wave.Channel1"/*Aqua_Wave_Pump_1*/, spannung);
              delta = inc;
              Intervall = setInterval(function () {
                spannung = (typeof spannung == 'number' ? spannung : 0) + delta;
                setState("sonoff.0.Aqua_Wave.Channel1"/*Aqua_Wave_Pump_1*/, spannung);
                if (spannung >= 100) {
                  delta = dec;
                }
                if (spannung <= 30) {
                  delta = inc;
                  if (!sequenzial) {
                    (function () {if (Intervall) {clearInterval(Intervall); Intervall = null;}})();
                  }
                }
              }, 25);
            }
          });
          // Sequenzial_Up (ms)
          on({id: 'Aqua_Control.0.Tunze_Steuerung.Sequenzial_Wave_Up', change: "ne"}, function (obj) {
            var value = obj.state.val;
            var oldValue = obj.oldState.val;
            inc = 1750 / (obj.state ? obj.state.val : "");
          });
          // Sequenzial_Down (ms)
          on({id: 'Aqua_Control.0.Tunze_Steuerung.Sequenzial_Wave_Down', change: "ne"}, function (obj) {
            var value = obj.state.val;
            var oldValue = obj.oldState.val;
            dec = -1750 + (obj.state ? obj.state.val : "");
          });
          

          Dann gibt es diese Datenpunkte:
          Bildschirmfoto 2019-09-14 um 17.03.11.png
          Die switch Datenpunkte mal bei seite lassen.
          Den Datenpunkt Tunze Wellen Auswahl erstellt mit 0:Aus;1:Sequenzial;2:Intervall;3:Pulse;4:Wellengang
          den hab ich verknüpft damit je nach dem was in dem Datenpunkt steht soll die jeweilige Steuerung anspringen. Nur Leider will die Zeitsteuerung nicht so wie ich das will.
          Sicherlich ist ein Fehler darin das man nur für 10 sek testet.
          Zeitsteuerung:

          var Wellenauswahl, Sequenzial, Intervall, timeout, timeout3, timeout4;
          
          
          Wellenauswahl = getState("Aqua_Control.0.Tunze_Steuerung.Tunze_Wellen_Auswahl").val;
          Sequenzial = schedule('59 16 * * *', function () {
            setState("Aqua_Control.0.Tunze_Steuerung.Tunze_Wellen_Auswahl"/*Tunze Wellen Auswahl*/, 1);
            timeout = setTimeout(function () {
              setState("Aqua_Control.0.Tunze_Steuerung.Tunze_Wellen_Auswahl"/*Tunze Wellen Auswahl*/, 0);
              (function () {if (timeout) {clearTimeout(timeout); timeout = null;}})();
            }, 10000);
            setState("Aqua_Control.0.Tunze_Steuerung.Tunze_Wellen_Auswahl"/*Tunze Wellen Auswahl*/, 0);
          });
          Intervall = schedule('0 17 * * *', function () {
            setState("Aqua_Control.0.Tunze_Steuerung.Tunze_Wellen_Auswahl"/*Tunze Wellen Auswahl*/, 2);
            timeout3 = setTimeout(function () {
              setState("Aqua_Control.0.Tunze_Steuerung.Tunze_Wellen_Auswahl"/*Tunze Wellen Auswahl*/, 0);
              (function () {if (timeout) {clearTimeout(timeout); timeout = null;}})();
            }, 10000);
            timeout4 = setTimeout(function () {
              setState("Aqua_Control.0.Tunze_Steuerung.Tunze_Wellen_Auswahl"/*Tunze Wellen Auswahl*/, 0);
              (function () {if (timeout2) {clearTimeout(timeout2); timeout2 = null;}})();
            }, 5000);
          });
          
          paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von
          #40

          @Aphofis
          Weshalb schaltest Du das Intervall 2 mal aus (nach 10 s und 5 s) ? Wozu dienen die stop timeout und stop timeout2 ?

          Sequenzial wird sofort nach dem Einschalten wieder ausgeschalten ?

          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 2 Antworten Letzte Antwort
          0
          • AphofisA Offline
            AphofisA Offline
            Aphofis
            schrieb am zuletzt editiert von
            #41

            Teste ich nachher! Ich muss erstmal au einen Geburtstag!

            1 Antwort Letzte Antwort
            0
            • paul53P paul53

              @Aphofis
              Weshalb schaltest Du das Intervall 2 mal aus (nach 10 s und 5 s) ? Wozu dienen die stop timeout und stop timeout2 ?

              Sequenzial wird sofort nach dem Einschalten wieder ausgeschalten ?

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

              mann schon wieder

              1 Antwort Letzte Antwort
              0
              • paul53P paul53

                @Aphofis
                Weshalb schaltest Du das Intervall 2 mal aus (nach 10 s und 5 s) ? Wozu dienen die stop timeout und stop timeout2 ?

                Sequenzial wird sofort nach dem Einschalten wieder ausgeschalten ?

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

                @paul53 sagte in PWM Steuerung mit Fade:

                @Aphofis
                Weshalb schaltest Du das Intervall 2 mal aus (nach 10 s und 5 s) ? Wozu dienen die stop timeout und stop timeout2 ?

                Sequenzial wird sofort nach dem Einschalten wieder ausgeschalten ?

                Du sagtest zwischen den steuerungen müssen 5 sek pause sein und die 10 sek waren nur als Test nachher sollen die einzelnen steuerungen zw 10 bis 30 min laufen.

                1 Antwort Letzte Antwort
                0
                • paul53P paul53

                  @Aphofis sagte:

                  Dann gibt es diese Datenpunkte:

                  Der Datenpunkt "Tunze Wellen Auswahl" ist keine Werteliste, denn der Wert einer Werteliste sieht so aus:
                  Werteliste_Aus.JPG
                  Poste mal die RAW-Daten des Datenpunktes in Code Tags.

                  Man kann nicht auf Werte bzw. Vergleiche triggern, sondern nur auf Datenpunkt-IDs ! Der Vergleich muss mit einem falls-Logik-Baustein innerhalb des Triggers erfolgen.

                  Blockly_temp.JPG

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

                  @paul53 sagte in PWM Steuerung mit Fade:

                  @Aphofis sagte:

                  Dann gibt es diese Datenpunkte:

                  Der Datenpunkt "Tunze Wellen Auswahl" ist keine Werteliste, denn der Wert einer Werteliste sieht so aus:
                  Werteliste_Aus.JPG
                  Poste mal die RAW-Daten des Datenpunktes in Code Tags.

                  Man kann nicht auf Werte bzw. Vergleiche triggern, sondern nur auf Datenpunkt-IDs ! Der Vergleich muss mit einem falls-Logik-Baustein innerhalb des Triggers erfolgen.

                  Blockly_temp.JPG

                  Hatte jetzt Zeichenkette genommen.
                  Wo soll denn werteliste sein !?

                  {
                    "from": "system.adapter.admin.0",
                    "user": "system.user.admin",
                    "ts": 1568470775091,
                    "common": {
                      "name": "Tunze Wellen Auswahl",
                      "role": "value",
                      "type": "string",
                      "desc": "0:Aus;1:Sequenzial;2:Intervall;3:Pulse;4:Wellengang",
                      "min": 0,
                      "max": 4,
                      "def": 0,
                      "read": true,
                      "write": true
                    },
                    "native": {},
                    "acl": {
                      "object": 1632,
                      "owner": "system.user.iobroker",
                      "ownerGroup": "system.group.administrator",
                      "state": 1632
                    },
                    "_id": "Aqua_Control.0.Tunze_Steuerung.Tunze_Wellen_Auswahl",
                    "type": "state"
                  }
                  
                  paul53P 2 Antworten Letzte Antwort
                  0
                  • AphofisA Aphofis

                    @paul53 sagte in PWM Steuerung mit Fade:

                    @Aphofis sagte:

                    Dann gibt es diese Datenpunkte:

                    Der Datenpunkt "Tunze Wellen Auswahl" ist keine Werteliste, denn der Wert einer Werteliste sieht so aus:
                    Werteliste_Aus.JPG
                    Poste mal die RAW-Daten des Datenpunktes in Code Tags.

                    Man kann nicht auf Werte bzw. Vergleiche triggern, sondern nur auf Datenpunkt-IDs ! Der Vergleich muss mit einem falls-Logik-Baustein innerhalb des Triggers erfolgen.

                    Blockly_temp.JPG

                    Hatte jetzt Zeichenkette genommen.
                    Wo soll denn werteliste sein !?

                    {
                      "from": "system.adapter.admin.0",
                      "user": "system.user.admin",
                      "ts": 1568470775091,
                      "common": {
                        "name": "Tunze Wellen Auswahl",
                        "role": "value",
                        "type": "string",
                        "desc": "0:Aus;1:Sequenzial;2:Intervall;3:Pulse;4:Wellengang",
                        "min": 0,
                        "max": 4,
                        "def": 0,
                        "read": true,
                        "write": true
                      },
                      "native": {},
                      "acl": {
                        "object": 1632,
                        "owner": "system.user.iobroker",
                        "ownerGroup": "system.group.administrator",
                        "state": 1632
                      },
                      "_id": "Aqua_Control.0.Tunze_Steuerung.Tunze_Wellen_Auswahl",
                      "type": "state"
                    }
                    
                    paul53P Offline
                    paul53P Offline
                    paul53
                    schrieb am zuletzt editiert von paul53
                    #45

                    @Aphofis sagte:

                    Wo soll denn werteliste sein !?

                    Nicht "desc", sondern "states" und "type": "number".

                      "type": "state",
                      "common": {
                        "name": "Tunze Wellen Auswahl",
                        "role": "",
                        "type": "number",
                        "desc": "Auswahl Wellen",
                        "states": "0:Aus;1:Sequenzial;2:Intervall;3:Pulse;4:Wellengang",
                        "min": 0,
                        "max": 4,
                        "def": 0,
                        "read": true,
                        "write": true
                      },
                    

                    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 Aphofis

                      @paul53 sagte in PWM Steuerung mit Fade:

                      @Aphofis sagte:

                      Dann gibt es diese Datenpunkte:

                      Der Datenpunkt "Tunze Wellen Auswahl" ist keine Werteliste, denn der Wert einer Werteliste sieht so aus:
                      Werteliste_Aus.JPG
                      Poste mal die RAW-Daten des Datenpunktes in Code Tags.

                      Man kann nicht auf Werte bzw. Vergleiche triggern, sondern nur auf Datenpunkt-IDs ! Der Vergleich muss mit einem falls-Logik-Baustein innerhalb des Triggers erfolgen.

                      Blockly_temp.JPG

                      Hatte jetzt Zeichenkette genommen.
                      Wo soll denn werteliste sein !?

                      {
                        "from": "system.adapter.admin.0",
                        "user": "system.user.admin",
                        "ts": 1568470775091,
                        "common": {
                          "name": "Tunze Wellen Auswahl",
                          "role": "value",
                          "type": "string",
                          "desc": "0:Aus;1:Sequenzial;2:Intervall;3:Pulse;4:Wellengang",
                          "min": 0,
                          "max": 4,
                          "def": 0,
                          "read": true,
                          "write": true
                        },
                        "native": {},
                        "acl": {
                          "object": 1632,
                          "owner": "system.user.iobroker",
                          "ownerGroup": "system.group.administrator",
                          "state": 1632
                        },
                        "_id": "Aqua_Control.0.Tunze_Steuerung.Tunze_Wellen_Auswahl",
                        "type": "state"
                      }
                      
                      paul53P Offline
                      paul53P Offline
                      paul53
                      schrieb am zuletzt editiert von
                      #46

                      @Aphofis sagte:

                      Hatte jetzt Zeichenkette genommen.

                      Ich schrieb "Werteliste", die man auswählen kann.

                      Werteliste_Wellen.JPG

                      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 2 Antworten Letzte Antwort
                      0
                      • paul53P paul53

                        @Aphofis sagte:

                        Hatte jetzt Zeichenkette genommen.

                        Ich schrieb "Werteliste", die man auswählen kann.

                        Werteliste_Wellen.JPG

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

                        @paul53
                        Warteliste ist also Logikwert!
                        Ok hab ich geändert und was kommt in Role rein ?

                        paul53P 1 Antwort Letzte Antwort
                        0
                        • AphofisA Aphofis

                          @paul53
                          Warteliste ist also Logikwert!
                          Ok hab ich geändert und was kommt in Role rein ?

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

                          @Aphofis sagte:

                          Warteliste ist also Logikwert!

                          Nein, Werteliste ist "Werteliste" (5. Auswahl von oben) mit type: "number".

                          @Aphofis sagte in PWM Steuerung mit Fade:

                          was kommt in Role rein ?

                          Bin mir nicht sicher, da in den Regeln nicht aufgeführt. Am ehesten "level" oder "level.mode", denn "value" ist für "read only" Datenpunkte.

                          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:

                            Hatte jetzt Zeichenkette genommen.

                            Ich schrieb "Werteliste", die man auswählen kann.

                            Werteliste_Wellen.JPG

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

                            @paul53 sagte in PWM Steuerung mit Fade:

                            @Aphofis sagte:

                            Hatte jetzt Zeichenkette genommen.

                            Ich schrieb "Werteliste", die man auswählen kann.

                            Werteliste_Wellen.JPG

                            Ich habe nur diese Werte zur Auswahl
                            BF87ACC2-C700-4340-9E7B-9833882582B2.jpeg

                            1 Antwort Letzte Antwort
                            0
                            • paul53P paul53

                              @Aphofis sagte:

                              Warteliste ist also Logikwert!

                              Nein, Werteliste ist "Werteliste" (5. Auswahl von oben) mit type: "number".

                              @Aphofis sagte in PWM Steuerung mit Fade:

                              was kommt in Role rein ?

                              Bin mir nicht sicher, da in den Regeln nicht aufgeführt. Am ehesten "level" oder "level.mode", denn "value" ist für "read only" Datenpunkte.

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

                              @paul53 sagte in PWM Steuerung mit Fade:

                              @Aphofis sagte:

                              Warteliste ist also Logikwert!

                              Nein, Werteliste ist "Werteliste" (5. Auswahl von oben) mit type: "number".

                              @Aphofis sagte in PWM Steuerung mit Fade:

                              was kommt in Role rein ?

                              Bin mir nicht sicher, da in den Regeln nicht aufgeführt. Am ehesten "level" oder "level.mode", denn "value" ist für "read only" Datenpunkte.

                              Ich habe einiges an verschiedenen Level und nur Level aber Level.mode gibt es nicht

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

                                Wie bekomme ich denn nun die werteliste
                                Wie sieht denn bei dir ram aus wenn du den datenpunkt als werteliste erstellst

                                paul53P 1 Antwort Letzte Antwort
                                0
                                • AphofisA Aphofis

                                  Wie bekomme ich denn nun die werteliste
                                  Wie sieht denn bei dir ram aus wenn du den datenpunkt als werteliste erstellst

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

                                  @Aphofis sagte:

                                  wenn du den datenpunkt als werteliste erstellst

                                  Habe ich schon gepostet

                                  {
                                    "_id": "javascript.1.test.Wellen",
                                    "type": "state",
                                    "common": {
                                      "name": "Wellen",
                                      "role": "",
                                      "type": "number",
                                      "desc": "Auswahl Wellen",
                                      "states": "0:Aus;1:Sequenzial;2:Intervall;3:Pulse;4:Wellengang",
                                      "min": 0,
                                      "max": 4,
                                      "def": 0,
                                      "read": true,
                                      "write": true
                                    },
                                    "native": {},
                                    "from": "system.adapter.admin.0",
                                    "user": "system.user.admin",
                                    "ts": 1568377978546,
                                    "acl": {
                                      "object": 1636,
                                      "owner": "system.user.admin",
                                      "ownerGroup": "system.group.administrator",
                                      "state": 1636
                                    }
                                  }
                                  

                                  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:

                                    wenn du den datenpunkt als werteliste erstellst

                                    Habe ich schon gepostet

                                    {
                                      "_id": "javascript.1.test.Wellen",
                                      "type": "state",
                                      "common": {
                                        "name": "Wellen",
                                        "role": "",
                                        "type": "number",
                                        "desc": "Auswahl Wellen",
                                        "states": "0:Aus;1:Sequenzial;2:Intervall;3:Pulse;4:Wellengang",
                                        "min": 0,
                                        "max": 4,
                                        "def": 0,
                                        "read": true,
                                        "write": true
                                      },
                                      "native": {},
                                      "from": "system.adapter.admin.0",
                                      "user": "system.user.admin",
                                      "ts": 1568377978546,
                                      "acl": {
                                        "object": 1636,
                                        "owner": "system.user.admin",
                                        "ownerGroup": "system.group.administrator",
                                        "state": 1636
                                      }
                                    }
                                    
                                    AphofisA Offline
                                    AphofisA Offline
                                    Aphofis
                                    schrieb am zuletzt editiert von
                                    #53

                                    @paul53 sagte in PWM Steuerung mit Fade:

                                    @Aphofis sagte:

                                    wenn du den datenpunkt als werteliste erstellst

                                    Habe ich schon gepostet

                                    {
                                      "_id": "javascript.1.test.Wellen",
                                      "type": "state",
                                      "common": {
                                        "name": "Wellen",
                                        "role": "",
                                        "type": "number",
                                        "desc": "Auswahl Wellen",
                                        "states": "0:Aus;1:Sequenzial;2:Intervall;3:Pulse;4:Wellengang",
                                        "min": 0,
                                        "max": 4,
                                        "def": 0,
                                        "read": true,
                                        "write": true
                                      },
                                      "native": {},
                                      "from": "system.adapter.admin.0",
                                      "user": "system.user.admin",
                                      "ts": 1568377978546,
                                      "acl": {
                                        "object": 1636,
                                        "owner": "system.user.admin",
                                        "ownerGroup": "system.group.administrator",
                                        "state": 1636
                                      }
                                    }
                                    

                                    Hab jetzt deine RAM genommen und in meinen Datenpunkt eingebunden.
                                    Jetzt habe ich ein Dropdown Menü mit einer 0 in Klammern dahinter.

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

                                      @paul53
                                      Also habe jetzt den Datenpunkt so wie beschrieben.
                                      Die Steuerung ist so richtig?

                                      var inc, dec, sequenzial, spannung, delta, Intervall;
                                      
                                      
                                      inc = 1750 / getState("Aqua_Control.0.Tunze_Steuerung.Sequenzial_Wave_Up").val;
                                      dec = -1750 / getState("Aqua_Control.0.Tunze_Steuerung.Sequenzial_Wave_Down").val;
                                      on({id: 'Aqua_Control.0.Tunze_Steuerung.Tunze_Wellen_Auswahl', change: "ne"}, function (obj) {
                                        var value = obj.state.val;
                                        var oldValue = obj.oldState.val;
                                        if ((obj.state ? obj.state.val : "") == 1) {
                                          sequenzial = true;
                                          // Aktionen
                                        } else {
                                          sequenzial = false;
                                        }
                                        sequenzial = (obj.state ? obj.state.val : "");
                                        if (sequenzial) {
                                          spannung = 30;
                                          setState("sonoff.0.Aqua_Wave.Channel1"/*Aqua_Wave_Pump_1*/, spannung);
                                          delta = inc;
                                          Intervall = setInterval(function () {
                                            spannung = (typeof spannung == 'number' ? spannung : 0) + delta;
                                            setState("sonoff.0.Aqua_Wave.Channel1"/*Aqua_Wave_Pump_1*/, spannung);
                                            if (spannung >= 100) {
                                              delta = dec;
                                            }
                                            if (spannung <= 30) {
                                              delta = inc;
                                              if (!sequenzial) {
                                                (function () {if (Intervall) {clearInterval(Intervall); Intervall = null;}})();
                                              }
                                            }
                                          }, 25);
                                        }
                                      });
                                      // Sequenzial_Up (ms)
                                      on({id: 'Aqua_Control.0.Tunze_Steuerung.Sequenzial_Wave_Up', change: "ne"}, function (obj) {
                                        var value = obj.state.val;
                                        var oldValue = obj.oldState.val;
                                        inc = 1750 / (obj.state ? obj.state.val : "");
                                      });
                                      // Sequenzial_Down (ms)
                                      on({id: 'Aqua_Control.0.Tunze_Steuerung.Sequenzial_Wave_Down', change: "ne"}, function (obj) {
                                        var value = obj.state.val;
                                        var oldValue = obj.oldState.val;
                                        dec = -1750 + (obj.state ? obj.state.val : "");
                                      });
                                      
                                      paul53P 1 Antwort Letzte Antwort
                                      0
                                      • AphofisA Offline
                                        AphofisA Offline
                                        Aphofis
                                        schrieb am zuletzt editiert von
                                        #55

                                        Hatte die Steuerung mal getestet, der Channel 1 vom Sonoff Aqua_Wave rennt auch los was ich sehen kann sind auch minus werte dabei und ich kann den Datenpunkt wieder nicht auf aus setzen oder stoppen.
                                        Kann man die Steuerung nicht irgendwie anders programmieren das nicht so viele Rechenschritte sind!? Ich denke der Pi ist damit überfordert oder bzw iobroker.

                                        1 Antwort Letzte Antwort
                                        0
                                        • AphofisA Aphofis

                                          @paul53
                                          Also habe jetzt den Datenpunkt so wie beschrieben.
                                          Die Steuerung ist so richtig?

                                          var inc, dec, sequenzial, spannung, delta, Intervall;
                                          
                                          
                                          inc = 1750 / getState("Aqua_Control.0.Tunze_Steuerung.Sequenzial_Wave_Up").val;
                                          dec = -1750 / getState("Aqua_Control.0.Tunze_Steuerung.Sequenzial_Wave_Down").val;
                                          on({id: 'Aqua_Control.0.Tunze_Steuerung.Tunze_Wellen_Auswahl', change: "ne"}, function (obj) {
                                            var value = obj.state.val;
                                            var oldValue = obj.oldState.val;
                                            if ((obj.state ? obj.state.val : "") == 1) {
                                              sequenzial = true;
                                              // Aktionen
                                            } else {
                                              sequenzial = false;
                                            }
                                            sequenzial = (obj.state ? obj.state.val : "");
                                            if (sequenzial) {
                                              spannung = 30;
                                              setState("sonoff.0.Aqua_Wave.Channel1"/*Aqua_Wave_Pump_1*/, spannung);
                                              delta = inc;
                                              Intervall = setInterval(function () {
                                                spannung = (typeof spannung == 'number' ? spannung : 0) + delta;
                                                setState("sonoff.0.Aqua_Wave.Channel1"/*Aqua_Wave_Pump_1*/, spannung);
                                                if (spannung >= 100) {
                                                  delta = dec;
                                                }
                                                if (spannung <= 30) {
                                                  delta = inc;
                                                  if (!sequenzial) {
                                                    (function () {if (Intervall) {clearInterval(Intervall); Intervall = null;}})();
                                                  }
                                                }
                                              }, 25);
                                            }
                                          });
                                          // Sequenzial_Up (ms)
                                          on({id: 'Aqua_Control.0.Tunze_Steuerung.Sequenzial_Wave_Up', change: "ne"}, function (obj) {
                                            var value = obj.state.val;
                                            var oldValue = obj.oldState.val;
                                            inc = 1750 / (obj.state ? obj.state.val : "");
                                          });
                                          // Sequenzial_Down (ms)
                                          on({id: 'Aqua_Control.0.Tunze_Steuerung.Sequenzial_Wave_Down', change: "ne"}, function (obj) {
                                            var value = obj.state.val;
                                            var oldValue = obj.oldState.val;
                                            dec = -1750 + (obj.state ? obj.state.val : "");
                                          });
                                          
                                          paul53P Offline
                                          paul53P Offline
                                          paul53
                                          schrieb am zuletzt editiert von paul53
                                          #56

                                          @Aphofis sagte:

                                          Die Steuerung ist so richtig?

                                          Nein. Zeile 15 (setze sequenzial auf Wert) muss raus und Zeilen 16 bis 33 sind die Aktionen, die anstelle des Kommentars "Aktionen" einzusetzen sind. Etwa so:

                                          Blockly_temp.JPG

                                          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

                                          758

                                          Online

                                          32.5k

                                          Benutzer

                                          81.7k

                                          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