Navigation

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

    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

    ForEach mit Blockly

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

      Hallo,

      ich möchte gerne in ein Skript welches mit Blockly gebaut wurde folgendes einfügen:

      var Array = ["hm-rpc.0.XXXXXXXXXX.1.STATE","hm-rpc.0.XXXXXXXXXY.1.STATE"];
      
      Array.forEach(function(i, index, array){                                     
      	setState(i,true);   
      );
      
      

      Wie kann ich das umsetzen?

      So habe ich es versucht, aber leider habe ich jetzt keine Ahnung, was ich als Objekt auswählen muss.

      Da müsste jetzt ja ein "i" rein.
      1289_blockly.jpg

      Kann mir da jemand weiterhelfen?

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

        Hallo Pumbadinho

        Schau mal unter Variablen.

        Da hast Du jetzt eine Variable "i".

        Du must nur bei "steuere Objekt-ID" nicht "wahr" einsetzen sondern die Variable.

        Tipp: Wenn die auf das kleine Pfeilchen, bei "i", klickst, kannst Du die Variable umbenennen oder eine Neue erstellen.

        Grüße

        1 Reply Last reply Reply Quote 0
        • P
          Pumbadinho last edited by

          Ne, dann würde ich ja ein Objekt mit dem Objekt oben gleichsetzen. Das i muss ja als gesteuertes Objekt verwendet werden. Der soll ja i auf wahr setzen.

          Gesendet von meinem Nexus 6P mit Tapatalk

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

            Na klar. Wie soll ich wissen was Du machen willst.

            In Deinem Beispiel wird das Array durchlaufen und i bekommt den Inhalt von Array(x).

            Was willst Du denn erreichen?

            Grüße

            1 Reply Last reply Reply Quote 0
            • P
              Pumbadinho last edited by

              @rantanplan:

              Na klar. Wie soll ich wissen was Du machen willst.

              In Deinem Beispiel wird das Array durchlaufen und i bekommt den Inhalt von Array(x).

              Was willst Du denn erreichen?

              Grüße `

              var Array = ["hm-rpc.0.XXXXXXXXXX.1.STATE","hm-rpc.0.XXXXXXXXXY.1.STATE"];
              
              Array.forEach(function(i, index, array){                                     
                 setState(i,true);   
              );
              

              Ich dachte das wird hieraus deutlich. Ich habe ein Array mit Aktoren, die alle auf true gesetzt werden sollen.

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

                "Array" ist bei Dir eine lokale Variable.

                Die kannst Du nicht bei "Objekt ID" einsetzen.

                Du musst in ioBroker/Objekte ein Objekt anlegen und dies benutzen.

                Grüße

                1 Reply Last reply Reply Quote 0
                • P
                  Pumbadinho last edited by

                  @rantanplan:

                  "Array" ist bei Dir eine lokale Variable.

                  Die kannst Du nicht bei "Objekt ID" einsetzen.

                  Du musst in ioBroker/Objekte ein Objekt anlegen und dies benutzen.

                  Grüße `

                  Also, ich habe jetzt bereits Objekte und der Code so wie er oben steht funktioniert bei mir in einem anderen Skript.

                  Genau das will ich nachbauen.

                  Das kann dich nciht so schwer sein…

                  1 Reply Last reply Reply Quote 0
                  • P
                    Pumbadinho last edited by

                    Also das ist vielleicht etwas unglücklich gewählt, aber Array hieß vorher anders. Nur dummerweise habe ich den Namen für das Array in blockly so gewählt um schnell den Screen zu machen. blockly hat die danach automatisch umbenannt, da Array ja ein definierter Begriff ist.

                    Gesendet von meinem Nexus 6P mit Tapatalk

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

                      Hi Pumbadinho

                      Blockly ist immer noch Beta.

                      Somit ist noch nicht alles möglich und Bugs können auch noch vorkommen.

                      Ich wollte Dir ein Beispiel zusammen bauen und bin da wohl auf einen Bug gestoßen.

                      Muss ich aber noch validieren. (das aber erst nach den Feiertagen)

                      Wenn Du schnell eine Lösungs braucht, setze doch einfach ein paar "steuere…" untereinander.

                      Dein Array war ja nicht dynamisch geplant. Der Arbeitsaufwand ist also ähnlich aber einfacher.

                      Grüße und Frohe Festtage

                      1 Reply Last reply Reply Quote 0
                      • P
                        Pumbadinho last edited by

                        Eine schnelle Lösung brauche ich da nicht. Habe das so wie du gelöst. Nur wenn man intelligente Skripte bauen will, dann wäre das schon eine wünschenswerte Funktion.

                        Ist auch nichts ohne das ich nicht leben kann…

                        Gesendet von meinem Nexus 6P mit Tapatalk

                        1 Reply Last reply Reply Quote 0
                        • P
                          Pumbadinho last edited by

                          Gibt es hier ein Update?

                          Gesendet von meinem Nexus 6P mit Tapatalk

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

                            @Pumbadinho:

                            Hallo,

                            ich möchte gerne in ein Skript welches mit Blockly gebaut wurde folgendes einfügen:

                            var Array = ["hm-rpc.0.XXXXXXXXXX.1.STATE","hm-rpc.0.XXXXXXXXXY.1.STATE"];
                            
                            Array.forEach(function(i, index, array){                                     
                            	setState(i,true);   
                            );
                            
                            

                            Wie kann ich das umsetzen?

                            So habe ich es versucht, aber leider habe ich jetzt keine Ahnung, was ich als Objekt auswählen muss.

                            Da müsste jetzt ja ein "i" rein.

                            Blockly.JPG

                            Kann mir da jemand weiterhelfen? `
                            So?
                            48_2017-01-05_10_46_50-iobroker.admin.png

                            var myIDs, i;
                            
                            myIDs = ['default', 'default', 'default'];
                            for (var i_index in myIDs) {
                              i = myIDs[i_index];
                              setStateDelayed(i, true, false, parseInt(0, 10), false);
                            }
                            

                            Array is vordefiniertes Wort. Bitte nicht benutzen.

                            1 Reply Last reply Reply Quote 0
                            • P
                              Pumbadinho last edited by

                              Oh, das Update ist mir wohl irgendwie durchgegangen, werde ich Mal versuchen.

                              Gesendet von meinem Nexus 6P mit Tapatalk

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

                                Ich finde leider das Blockly äquivalent für getState der Object ID nicht.

                                Man müsste im Blockly die Object ID, also Variable i, einfügen können.

                                …

                                for (var i_index in BatteryArray) {

                                i = BatteryArray[i_index];

                                var value = getState(i).val;

                                …

                                Übersehe ich da was?

                                oder gibts es nur Schreiben?

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

                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                903
                                Online

                                31.8k
                                Users

                                79.9k
                                Topics

                                1.3m
                                Posts

                                4
                                14
                                3362
                                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