Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. (Gelöst) Blocky Wert der Helligkeit in drei Stuffen herunterdimmen.

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    (Gelöst) Blocky Wert der Helligkeit in drei Stuffen herunterdimmen.

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

      wie wäre es denn hinzukriegen, das die Lampe z.B. innerhalb 1 Stunde sich langsam runter dimmt?

      Ansätze:

      (Wobei mir die Funktion der wiederhole-Bausteine noch nicht ganz klar ist, wann und in welchen zeitlichen Abstand wiederholt wird. Finde auch keine Beschreibung)

      1586_2017-10-13_15_24_31-iobroker.admin.jpg

      1 Reply Last reply Reply Quote 0
      • AlCalzone
        AlCalzone Developer last edited by

        @andyb:

        (Wobei mir die Funktion der wiederhole-Bausteine noch nicht ganz klar ist, wann und in welchen zeitlichen Abstand wiederholt wird. `
        Das wiederholt einfach den Code innerhalb des Mauls x-mal oder bis eine Bedingung erfüllt ist. Wichtig über Timeouts ist zu wissen, dass der Code im Timeout später ausgeführt wird, aber der eigentliche Code wird nicht pausiert.

        Willst du also im Abstand von 1sek 5 Timer starten, brauchst du eine Zählervariable, die du mit der Schleife hochzählst, z.b. i. Der Timeout braucht dann eine Verzögerung von i*1000ms, damit erzeugst du 5 Timeouts, die nach 1,2,3,4 und 5s ausgeführt werden. Wie das aber in Blockly geht, keine Ahnung…

        Dein erster Code ist daher recht problematisch. Du erstellst ca. 1 Minute lang endlos viele Timeouts, die dann nach 1 Minute alle auf einmal den Wert verändern und damit vermutlich die Bedingung nicht mehr erfüllen. Die restlichen Timeouts die bis dahin erstellt wurden, feuern auch noch alle und verändern den Wert weiterhin.

        Du erreichst also keinen Dimmvorgang, sondern treibst die CPU-Last deines Hosts in die Höhe. Angenommen, das erstellen eines Timeouts dauert 1ms:

        0ms: timeout 1 erstellt
        1ms: timeout 2 erstellt
        2ms: timeout 3 erstellt
        ...
        60000ms: 
        timeout 60000 erstellt
        timeout 1 feuert --> Helligkeit reduziert um 2
        60001ms: 
        timeout 60001 erstellt
        timeout 2 feuert --> Helligkeit reduziert um 2
        ...
        60050ms: 
        timeout 60050 erstellt
        timeout 50 feuert --> Helligkeit reduziert um 2\. Ist jetzt 0, daher beendet die Schleife, keine weiteren Timeouts
        ...
        120050ms: timeout 60050 feuert
        
        

        Dein Ziel kann man schematisch wie folgt erreichen:

        • Steuercode (Helligkeit um 1 Stufe reduzieren) in eine Funktion auslagern

        • Einen Timeout auf diese Funktion setzen (1 mal!)

        • In der Funktion prüfen, ob die End-Bedingung erreicht ist, wenn nicht erneut einen Timeout auf die Funktion setzen

        1 Reply Last reply Reply Quote 0
        • A
          andyb last edited by

          @AlCalzone:

          Dein Ziel kann man schematisch wie folgt erreichen:

          • Steuercode (Helligkeit um 1 Stufe reduzieren) in eine Funktion auslagern

          • Einen Timeout auf diese Funktion setzen (1 mal!)

          • In der Funktion prüfen, ob die End-Bedingung erreicht ist, wenn nicht erneut einen Timeout auf die Funktion setzen `
            Danke, also so?

          1586_2017-10-14_09_48_32-iobroker.admin.jpg

          var timeout2, timeout3;
          
          /**
           * Beschreibe diese Funktion …
           */
          function dimmen1() {
            setState("hue.0.Philips_hue.Schlafzimmer.level"/*Philips_hue.Schlafzimmer.level*/, (getState("hue.0.Philips_hue.Schlafzimmer.level").val - 1));
            if (getState("hue.0.Philips_hue.Schlafzimmer.level").val > 0) {
              timeout3 = setTimeout(function () {
                dimmen1();
              }, 60000);
            }
          }
          
          on({id: 'hue.0.Philips_hue.Schlafzimmer.level', change: "ne"}, function (obj) {
            var value = obj.state.val;
            var oldValue = obj.oldState.val;
            while (!(getState("hue.0.Philips_hue.Schlafzimmer.level").val == 0)) {
            }
          });
          
          timeout2 = setTimeout(function () {
            dimmen1();
          }, 60000);
          
          //JTNDeG1sJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjE5OTklMkZ4aHRtbCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm9uX2V4dCUyMiUyMGlkJTNEJTIycG8tQlBfUHBtY2hUUEJvaEdPJTNEbiUyMiUyMHglM0QlMjIxMyUyMiUyMHklM0QlMjItMTIlMjIlM0UlM0NtdXRhdGlvbiUyMGl0ZW1zJTNEJTIyMSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQ09ORElUSU9OJTIyJTNFbmUlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFDS19DT05ESVRJT04lMjIlM0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMk9JRDAlMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIyZmllbGRfb2lkJTIyJTIwaWQlM0QlMjJNN0F2ISUyQzNUJTIzISFoc2hnUHlJaTklMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJvaWQlMjIlM0VodWUuMC5QaGlsaXBzX2h1ZS5TY2hsYWZ6aW1tZXIubGV2ZWwlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQyUyRnZhbHVlJTNFJTNDc3RhdGVtZW50JTIwbmFtZSUzRCUyMlNUQVRFTUVOVCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2xzX3doaWxlVW50aWwlMjIlMjBpZCUzRCUyMnklM0QxWnAtQjdkKU51LSU3RFIlM0F4bldFJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTU9ERSUyMiUzRVVOVElMJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCT09MJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfY29tcGFyZSUyMiUyMGlkJTNEJTIyYmUuan5QJTJCb2ZrVHIoelIwUShBJTNEJTIyJTIwaW5saW5lJTNEJTIyZmFsc2UlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUCUyMiUzRUVRJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyZ2V0X3ZhbHVlJTIyJTIwaWQlM0QlMjJpakghWFghJTVEbiU1RTU5JTNEQ0tTJTVFQiU3QjclMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBVFRSJTIyJTNFdmFsJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VodWUuMC5QaGlsaXBzX2h1ZS5TY2hsYWZ6aW1tZXIubGV2ZWwlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMkdMQyU1RSo2RS5ZISUyRk1paiU3QnglN0ROY1ElMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UwJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDJTJGYmxvY2slM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ0aW1lb3V0c19zZXR0aW1lb3V0JTIyJTIwaWQlM0QlMjIqMiUzRiU1QlNYamxTTSUyQ2lUUChJJTNBWCUyNUklMjIlMjB4JTNEJTIyLTYzJTIyJTIweSUzRCUyMjQxMyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5BTUUlMjIlM0V0aW1lb3V0MiUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyREVMQVklMjIlM0UxJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJVTklUJTIyJTNFbWluJTNDJTJGZmllbGQlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyU1RBVEVNRU5UJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIycHJvY2VkdXJlc19jYWxsbm9yZXR1cm4lMjIlMjBpZCUzRCUyMiUyMyU2MCglN0IlM0ZVJTNEa3NYMkUtc3VRcH5OUyUyMiUzRSUzQ211dGF0aW9uJTIwbmFtZSUzRCUyMmRpbW1lbjElMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDJTJGYmxvY2slM0UlM0NibG9jayUyMHR5cGUlM0QlMjJwcm9jZWR1cmVzX2RlZm5vcmV0dXJuJTIyJTIwaWQlM0QlMjIlNUQlMjM5bmFzamx+YSUyMzNpZ3ZKJTJDUWlWJTIyJTIweCUzRCUyMi02MyUyMiUyMHklM0QlMjI1MTMlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOQU1FJTIyJTNFZGltbWVuMSUzQyUyRmZpZWxkJTNFJTNDY29tbWVudCUyMHBpbm5lZCUzRCUyMmZhbHNlJTIyJTIwaCUzRCUyMjgwJTIyJTIwdyUzRCUyMjE2MCUyMiUzRUJlc2NocmVpYmUlMjBkaWVzZSUyMEZ1bmt0aW9uJTIwJUUyJTgwJUE2JTNDJTJGY29tbWVudCUzRSUzQ3N0YXRlbWVudCUyMG5hbWUlM0QlMjJTVEFDSyUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2wlMjIlMjBpZCUzRCUyMk5VJTIzLm1pcWNQJTJDUCUyQ1AyKTFPKWlUJTIyJTNFJTNDbXV0YXRpb24lMjBkZWxheV9pbnB1dCUzRCUyMmZhbHNlJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VodWUuMC5QaGlsaXBzX2h1ZS5TY2hsYWZ6aW1tZXIubGV2ZWwlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMldJVEhfREVMQVklMjIlM0VGQUxTRSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX2FyaXRobWV0aWMlMjIlMjBpZCUzRCUyMiF2eSUyQm8lNURzQVlBUUNzJTNCd3clNDAlMkZkJTYwJTIyJTIwaW5saW5lJTNEJTIyZmFsc2UlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUCUyMiUzRU1JTlVTJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjIqTyU1RFN+cWIqJTI1JTJGJTQwZkF1bmslNjAlNDBvayUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTElM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmdldF92YWx1ZSUyMiUyMGlkJTNEJTIyQ3F+bXRPdyF0JTQwLkpxMC0lNDB+JTJDVn4lMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBVFRSJTIyJTNFdmFsJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VodWUuMC5QaGlsaXBzX2h1ZS5TY2hsYWZ6aW1tZXIubGV2ZWwlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjJ3ajMuYWZNbi5CVCU3REolN0JtSlBNdjQlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UxJTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29udHJvbHNfaWYlMjIlMjBpZCUzRCUyMmd2SDg0JTdDeXNmS1MlMkIxcG8hJTdEJTQwRWglMjIlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJJRjAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsb2dpY19jb21wYXJlJTIyJTIwaWQlM0QlMjIlNDBncE4qc1ZvJTNEanFjKCUzQi4zUXJpeCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9QJTIyJTNFR1QlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkElMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJnZXRfdmFsdWUlMjIlMjBpZCUzRCUyMlZzWkhEQWd0RS5yMSU1QkFIU0xuSmklMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBVFRSJTIyJTNFdmFsJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VodWUuMC5QaGlsaXBzX2h1ZS5TY2hsYWZ6aW1tZXIubGV2ZWwlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMmolM0FoJTIzWmgwTUk0ODRLSEo2JTQwS3lQJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyRE8wJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGltZW91dHNfc2V0dGltZW91dCUyMiUyMGlkJTNEJTIyJTNGSUppYVUlMjU4aEU1biUzRkolM0RZJTNGWVYwJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTkFNRSUyMiUzRXRpbWVvdXQzJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJERUxBWSUyMiUzRTElM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlVOSVQlMjIlM0VtaW4lM0MlMkZmaWVsZCUzRSUzQ3N0YXRlbWVudCUyMG5hbWUlM0QlMjJTVEFURU1FTlQlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJwcm9jZWR1cmVzX2NhbGxub3JldHVybiUyMiUyMGlkJTNEJTIyJTdERGglM0YlMkIlN0J1KiU1RCUyQlh5RGlXbCU3Q1UoWiUyMiUzRSUzQ211dGF0aW9uJTIwbmFtZSUzRCUyMmRpbW1lbjElMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZzdGF0ZW1lbnQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGeG1sJTNF
          
          1 Reply Last reply Reply Quote 0
          • K
            knopers1 last edited by

            komme nicht so wirklich weiter….

            Hier mein Blockly: Habe echt keine Ahnung weshalb es nicht funktionieren mag. Sieht jemand von Euch einen Fehler?

            Möglicherweise stimmt etwas mit dem Timer nicht. Das EIN in drei Stuffen scheint zu laufen. Das AUS nicht so wirklich....

            Der Timer liefert ein "true". Wenn es die Zeit abzählt, kommt in Log ein false. Unter Objekt ID "Timer" sehe ich aber keine Änderung!

            Irgendwie hängst sich mein Blockly irgendwie auf, so mein Gefühl...
            1526_unbenannt1.png
            1526_unbenannt2.png
            1526_unbenannt3.png

            1 Reply Last reply Reply Quote 0
            • AlCalzone
              AlCalzone Developer last edited by

              @andyb:

              Danke, also so? `
              Das Blockly sieht gut aus, aber du hast keinen Auslöser, der den Prozess startet, oder?

              Im JS-Code ist noch ein etwas verlorener Trigger drin, der nix tut außer ne Endlosschleife starten.

              1 Reply Last reply Reply Quote 0
              • AlCalzone
                AlCalzone Developer last edited by

                @knopers1:

                Möglicherweise stimmt etwas mit dem Timer nicht. Das EIN in drei Stuffen scheint zu laufen. Das AUS nicht so wirklich…. `
                Fehlt da was? Ich sehe nichts, wo die Timer-Variable auf True gesetzt wird, um den AUS-Dimmer zu starten.

                1 Reply Last reply Reply Quote 0
                • A
                  andyb last edited by

                  Ist klar, es ging mir ja nur um das dimmen. Trigger und sonstige Kosmetik fehlt noch.

                  Danke

                  1 Reply Last reply Reply Quote 0
                  • K
                    knopers1 last edited by

                    @AlCalzone:

                    @knopers1:

                    Möglicherweise stimmt etwas mit dem Timer nicht. Das EIN in drei Stuffen scheint zu laufen. Das AUS nicht so wirklich…. Fehlt da was? Ich sehe nichts, wo die Timer-Variable auf True gesetzt wird, um den AUS-Dimmer zu starten.

                    Die Variable "Timer" setzt sich selbst auf "true" mit dem Blockly für "Timer". Zumindest sehe ich im Log ständig ein "true". Wenn ich es manuell setze, kommt in Log für 12000ms ein "false", danach wieder "true".

                    Mit dem Bewegungsmelder setze ich den Timer auf "false" damit er wieder die Zeit abzählt.

                    1 Reply Last reply Reply Quote 0
                    • AlCalzone
                      AlCalzone Developer last edited by

                      @knopers1:

                      Die Variable "Timer" setzt sich selbst auf "true" mit dem Blockly für "Timer" `
                      Hast du nicht gepostet, aber gut. Füge mal an allen Stellen, wo was abgefragt wird oder gesteuert wird nen Debug-Log ein, dass du nachvollziehen kannst was passiert und was davon funktioniert. Auf den ersten Blick sehe ich nämlich nicht, warum es nicht gehen sollte.

                      1 Reply Last reply Reply Quote 0
                      • K
                        knopers1 last edited by

                        Danke Dir vorerst…

                        Habe zwischendurch den Timer Blockly weggelassen und probiere zu Hause so etwas aus... Müsste an sich ohne den Blockly Timer funktionieren.
                        1526_unbenannt3.png

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        533
                        Online

                        31.7k
                        Users

                        79.8k
                        Topics

                        1.3m
                        Posts

                        5
                        24
                        3135
                        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