Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. zählen i von 6 bis 1 geht nicht - gelöst!

    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

    zählen i von 6 bis 1 geht nicht - gelöst!

    This topic has been deleted. Only users with topic management privileges can see it.
    • haus-automatisierung
      haus-automatisierung Developer Most Active @Wagner last edited by

      @wagner Zeig mal bitte den generierten JavaScript Code

      W 1 Reply Last reply Reply Quote 0
      • MartinP
        MartinP @Wagner last edited by MartinP

        @wagner In einem ersten Schritt könntest Du Dir das Javascript anschauen, was da generiert wird

        33c7df11-2b7b-45fc-bb6e-b0ecac8e382c-grafik.png

        wird zu:

        for (i = 6; i >= 1; i--) {
        }
        

        Der Blockly Javascript Generator "weiß" wohl selber dass es "abwärts" geht, und nimmt "--"

        EDIT: Das führt zum selben Code:

        951df525-d094-476b-a86b-91ed4c76daff-grafik.png

        Da sitzt der Hase im Pfeffer:
        9687a70d-1984-4a6f-b3e7-717137677add-grafik.png Nummer sechs wird als estes dur19abb18f-26bd-4373-864b-a5f7ae45cdb1-grafik.png

        Nummer 6 wird zwar als Erster durchlaufen, aber durch die längste Verzögerung als Letzter geschaltet....

        3000 * (5-i) wäre die bessere Wahl

        paul53 1 Reply Last reply Reply Quote 2
        • paul53
          paul53 @Wagner last edited by

          @wagner sagte: von 1 nach 6 an/aus!

          Bei mir (JS 8.7.6) stimmt die Reihenfolge.

          Blockly_temp.JPG

          W 1 Reply Last reply Reply Quote 0
          • haus-automatisierung
            haus-automatisierung Developer Most Active @Wagner last edited by haus-automatisierung

            @wagner sagte in zählen i von 6 bis 1 geht nicht:

            gehen die Leuchten stets von 1 nach 6 an/aus! Was mache ich falsch?

            Naja 1x3000 ist halt auch der kleinste Wert und somit geht der Kanal mit der 1 als erstes an/aus mit dem Code

            Egal wie rum die Schleife läuft

            W 1 Reply Last reply Reply Quote 0
            • W
              Wagner @haus-automatisierung last edited by

              @haus-automatisierung

              • var i;
              • console.warn('LampenAus');
              • for (i = 6; i >= 1; i--) {
              • setStateDelayed(('alias.0.EigeneGeräte.Lichtschalter.GartenWeg.GartenwegPower' + String(i)), { val: false, ack: false }, parseInt((((3000 * i)) || '').toString(), 10), false);
              • console.error(i);
              • }
              1 Reply Last reply Reply Quote 0
              • W
                Wagner @haus-automatisierung last edited by

                @haus-automatisierung 👍

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

                  @martinp sagte: 3000 * (5-i) wäre die bessere Wahl

                  3000 * (6 - i) - keine negativen Werte.
                  Oder anstelle der variablen Verzögerung eine Pause von 3 s.

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

                    @paul53 👍 mit Pause gehts

                    Asgothian 1 Reply Last reply Reply Quote 0
                    • MartinP
                      MartinP last edited by

                      @paul53 Mit (6-i) "feuert" der erste sofort, mit (7-i) würde der erste mit 1 Sekunde Verzögerung feuern....

                      War abgelenkt, und habe in die falsche Richtung gedacht 😉

                      1 Reply Last reply Reply Quote 0
                      • Asgothian
                        Asgothian Developer @Wagner last edited by Asgothian

                        @wagner sagte in zählen i von 6 bis 1 geht nicht - gelöst!:

                        @paul53 👍 mit Pause gehts

                        Mit pause geht es. Schlecht ist es trotzdem.

                        Besser so:

                        Screenshot 2024-08-30 at 15.33.55.png
                        Diese Anordnung von Blöcken kannst du in einen Trigger einbauen und musst dich nicht darum kümmern was passiert wenn der innerhalb von weniger als 18 Sekunden 2 mal aufgerufen wird.

                        A.

                        p.s. da ich dein Objekt LichtAn nicht hab habe ich da einfach ein wahr stehen lassen - die Transferleistung das anzupassen traue ich aber jedem zu.

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        866
                        Online

                        31.9k
                        Users

                        80.2k
                        Topics

                        1.3m
                        Posts

                        5
                        11
                        498
                        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