Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. PWM Steuerung mit Fade

    NEWS

    • [erledigt] 15. 05. Wartungsarbeiten am ioBroker Forum

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    PWM Steuerung mit Fade

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

      @paul53
      Es soll
      mit 8 volt also 100% starten und in 2 sek runter gehen auf 30% in 1% schritten
      dann von 30% in 1,9 sek wieder hoch auf 100% in 1% schritten.

      var Sequenz_Zeit;
      
      
      schedule("*/2 * * * * *", function () {
        if (getState("sonoff.0.Aqua_Float_Pumps.Strömung_1").val == true) {
          setState("sonoff.0.Aqua_Float_Pumps.Stroemung_1_Float"/*Stroemung_1_Float*/, 30);
          Sequenz_Zeit = setTimeout(function () {
            setState("sonoff.0.Aqua_Float_Pumps.Stroemung_1_Float"/*Stroemung_1_Float*/, 100);
          }, 1900);
          (function () {if (Sequenz_Zeit) {clearTimeout(Sequenz_Zeit); Sequenz_Zeit = null;}})();
        }
      });
      

      hierbei bleibt die steuerung pulsend auf 30% stehen.
      gibt dann einen neuen Datenpunkt Stroemung_1_Float die den PWM Fluß steuert als Zahl mit min 0 und max 100%
      und Stroemung_1 steuert die steuerung ein oder aus

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

        @Aphofis sagte:

        100% starten und in 2 sek runter gehen auf 30%

        Also den Bereich 100 % bis 30 % innerhalb von 2 s durchlaufen ?

        Blockly_temp.JPG

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

          @paul53
          Ja der Bereich soll von 100-30 durchlaufen innerhalb von 2 sek.
          und wieder hoch von 30-100 in 1,9 sek.

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

            Steuerung läuft mehrmals durch und bleibt dann auf 100% stehen.
            die ganze steuerung soll ja in einer schleife laufen. bis Strömung_1 abgeschaltet wird und eine andere Strömung aktiviert wird.

            Ist es so korrekt?

            var spannung, Intervall, Intervall2;
            
            
            on({id: 'sonoff.0.Aqua_Float_Pumps.Strömung_1', val: true}, function (obj) {
              var value = obj.state.val;
              var oldValue = obj.oldState.val;
              spannung = 100;
              setState("sonoff.0.Aqua_Float_Pumps.Stroemung_1_Float"/*Stroemung_1_Float*/, spannung);
              Intervall = setInterval(function () {
                spannung = (typeof spannung == 'number' ? spannung : 0) + -1;
                setState("sonoff.0.Aqua_Float_Pumps.Stroemung_1_Float"/*Stroemung_1_Float*/, spannung);
                if (spannung <= 30) {
                  (function () {if (Intervall) {clearInterval(Intervall); Intervall = null;}})();
                  Intervall2 = setInterval(function () {
                    spannung = (typeof spannung == 'number' ? spannung : 0) + 1;
                    setState("sonoff.0.Aqua_Float_Pumps.Stroemung_1_Float"/*Stroemung_1_Float*/, spannung);
                    if (spannung >= 100) {
                      (function () {if (Intervall2) {clearInterval(Intervall2); Intervall2 = null;}})();
                    }
                  }, 27);
                }
              }, 29);
            });
            
            1 Reply Last reply Reply Quote 0
            • Aphofis
              Aphofis last edited by

              Hab die intervalle mal langsamer gemacht um zu sehen was passiert also die steuerung geht von 100 runter auf 30 und dann wieder hoch auf 100 und bleibt dann stehen. normal soll sie dann wieder von vorne anfangen also in einer schleife.

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

                wie entstehen 29 und 27 millisekunden !?
                wenn die steuerung von 100 auf 30 runter soll in 2 sek und rauf in 1,9 sekunden !?

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

                  @Aphofis sagte:

                  wie entstehen 29 und 27 millisekunden !?
                  wenn die steuerung von 100 auf 30 runter soll in 2 sek und rauf in 1,9 sekunden !?

                  Ja, sind allerdings nicht genau 2 s und 1,9 s.

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

                    @paul53
                    Ja nur was sagen die 29 und 27 sek aus !? wie lange bis auf 30 und wie lange bis auf 100 laufen soll !?
                    Ich versuche es nur zu verstehen um dasnn das script abzuwandeln für andere steuerungen

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

                      Hab mich bei der Steuerung auch etwas vertan es muss von 30 rauf auf 100 dann runter auf 30 und wieder hoch auf 100 und wieder runter auf 30
                      Die Steuerungen die abruppt starten sind Wellengang und impuls
                      Sequezial und intervall laufen normal rauf runter

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

                        @Aphofis
                        2000 : 70 = 28,57 (ca. 29)
                        1900 : 70 = 27,14 (ca. 27)

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

                          @paul53
                          OK bauchlöchern
                          also 70 entspricht den schritten 30 bis 100 also 70% die gezählt werden.
                          entspricht 1% schritt bei 2 sek dann 28,57 ms und bei 1,9 sek 27,14 ms

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

                            @Aphofis sagte:

                            also 70 entspricht den schritten 30 bis 100 also 70% die gezählt werden.
                            entspricht 1% schritt bei 2 sek dann 28,57 ms und bei 1,9 sek 27,14 ms

                            Exakt.

                            @Aphofis sagte in PWM Steuerung mit Fade:

                            es muss von 30 rauf auf 100 dann runter auf 30 und wieder hoch auf 100 und wieder runter auf 30
                            normal soll sie dann wieder von vorne anfangen also in einer schleife.

                            Blockly_temp.JPG

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

                              @Aphofis

                              Spitze!
                              Mal eine Persöhliche Frage, hast du sowas gelernt?
                              Also programmieren oder angeeignet?
                              Das echt der Hammer was du an Steuerungen aus dem Zauberhut holst. 👍 👍 👍

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

                                @paul53
                                ist es so Korrekt?

                                var sequenzial, Intervall, spannung, Intervall2;
                                
                                /**
                                 * Beschreibe diese Funktion …
                                 */
                                function Welle() {
                                  Intervall = setInterval(function () {
                                    spannung = (typeof spannung == 'number' ? spannung : 0) + 1;
                                    setState("sonoff.0.Aqua_Float_Pumps.Sequenzial_Float"/*Sequenzial_Float*/, spannung);
                                    if (spannung >= 100) {
                                      (function () {if (Intervall) {clearInterval(Intervall); Intervall = null;}})();
                                      Intervall2 = setInterval(function () {
                                        spannung = (typeof spannung == 'number' ? spannung : 0) + -1;
                                        setState("sonoff.0.Aqua_Float_Pumps.Sequenzial_Float"/*Sequenzial_Float*/, spannung);
                                        if (spannung <= 30) {
                                          (function () {if (Intervall2) {clearInterval(Intervall2); Intervall2 = null;}})();
                                          if (sequenzial) {
                                            Welle();
                                          }
                                        }
                                      }, 29);
                                    }
                                  }, 27);
                                }
                                
                                
                                on({id: 'sonoff.0.Aqua_Float_Pumps.Sequenzial', 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_Float_Pumps.Sequenzial_Float"/*Sequenzial_Float*/, spannung);
                                    Welle();
                                  }
                                });
                                
                                1 Reply Last reply Reply Quote 0
                                • paul53
                                  paul53 @Aphofis last edited by

                                  @Aphofis sagte:

                                  angeeignet?

                                  Ja.

                                  @Aphofis sagte in PWM Steuerung mit Fade:

                                  ist es so Korrekt?

                                  Sieht gut aus.

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

                                    @paul53
                                    Echt Hut ab! Ich kenne ja nun einige Script Sprachen und hatte damals auch viel mit C++ am Hut wenn dir das vllt noch was sagt der IRC also Internet Relay Chat der vorgänger von ICQ alias Mirc.
                                    Aber einen Trick gibts da sicherlich auch nicht, um Blockly besser zu verstehen.
                                    Ich denke, entweder man schnallt es oder man schnallt es nicht.
                                    Wenn ich eine fertige Steuerung sehe, kann ich mir den Ablauf vorstellen aber selsbt programmieren klappt nicht so ganz.
                                    Zumindest wenn es um so komplexe Steuerungen geht.

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

                                      @paul53
                                      Ich hatte mir die Strömungen mal rausgeschrieben, dann siehst du vllt was ich vor habe an Strömungs Programmen.
                                      Ich hoffe du wirst schlau draus.

                                      IMG_5136.jpg
                                      IMG_5137.jpg
                                      Wie gesagt Sequenzial war falsch rum, so wie die jetzige Steuerung ist ist es perfekt.
                                      fehlen nur noch die drei anderen.
                                      Nur wie man von 30% dann zb in in 530 ms rauf geht auf 100% und dann abruppt runter auf 30% dort halten für 600 ms und dann wieder von vorne. weiß ich eher nicht.

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

                                        @Aphofis sagte:

                                        Nur wie man von 30% dann zb in in 530 ms rauf geht auf 100%

                                        Von 30% auf 100% wie gehabt - aber bitte nicht in 1 % Schritten (CPU-Last)

                                        und dann abruppt runter auf 30%

                                        falls spannung >= 100
                                        setze spannung auf 30
                                        steuere DP mit spannung

                                        dort halten für 600 ms und dann wieder von vorne.

                                        Timeout 600 ms: Funktion wieder aufrufen

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

                                          @Aphofis sagte:

                                          Ich kenne ja nun einige Script Sprachen und hatte damals auch viel mit C++ am Hut

                                          Dann sollte Javascript nicht schwer fallen. Meine ioBroker-Skripte erstelle ich nur in Javascript, denn Blockly hat Einschränkungen und finde ich umständlicher.

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

                                            @paul53
                                            Mann mann mann ne also blöcke da kann ich mir eher was vorstellen aber jeder wie er kann.
                                            Liegt vllt daran weil ich Handwerker bin aber dem einen liegt es mehr dem anderen weniger.
                                            Zu meinem Glück, gibt es ja nette Menschen wie dich, die mir bei sowas helfen.😁

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            556
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            2
                                            97
                                            5254
                                            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