Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Insert Objects from Folder into Array

    NEWS

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    • Save The Date: ioBroker@Smart Living Forum Solingen, 14.06.

    Insert Objects from Folder into Array

    This topic has been deleted. Only users with topic management privileges can see it.
    • Z
      Zäsch last edited by

      Hallo zusammen,

      ich habe mir ein Skript zum Szenenwechsel gebastelt, was durch ein Array loopt und die entsprechende Szene aktiviert. Aktuell muss ich das Array im Skript manuell erstellen.
      Wünschen würde ich mir, dass sich das Array aus den Objekten eines Ordners zusammensetzt.

      var idTaster    = ["zigbee.0.00158d0004505ebf.click", 'zigbee.0.00158d000450a5b9.click'/*Click event*/, 'zigbee.0.00158d000626914b.click'/*Click event*/];
      var idHueSzene  = "hue.0.Flur_.";
      var set         = getIdByName("SL.");
      
      var zaehler     = 0;
      console.log(set);
      
      on({id:idTaster, val: true}, 
      function (obj) {
          zaehler++;
          if (zaehler >= set.length) zaehler = 0;
          for (var count = 0; count < 2; count++) {
              setState(idHueSzene + set[zaehler], 'true');
        }
          
      });
      

      Also dachte ich, dass ich var set mit getIdByName setzen kann, sodass das Array alle IDs beinhaltet, die mit SL. starten. Offenbar habe ich einen Denkfehler, da mein Array undefined ist.
      idHueSzene werde ich dann vermutlich auch nicht mehr brauchen.
      Vielleicht kann mir jemand kurz auf die Sprünge helfen.

      Viele Dank

      paul53 1 Reply Last reply Reply Quote 0
      • paul53
        paul53 @Zäsch last edited by

        @zäsch sagte: mit getIdByName setzen kann

        getIdByName(name) verlangt vollständige Namen.

        Z 1 Reply Last reply Reply Quote 0
        • Z
          Zäsch @paul53 last edited by

          @paul53 Danke. Das erklärt es...

          Gibt es eine andere, elegante Möglichkeit mein Array mit den IDs zu befüllen, wenn man nicht den gesamten Namen hat?
          Case ist der, dass meine Freundin über die Hue App Szenen bauen möchte, die sie durch drücken eines Schalters durchwechseln können möchte. Das soll automatisch klappen, daher dachte ich, ich lasse das Skript das Array bauen, das Objekte beinhaltet, die mit SL. beginnen.
          Die Enum Funktion müsste ich ja auch manuell im nachpflegen, bevor das greifen würden, daher die Idee mit
          Obejcts where id starts with "hue.0.Flur_.SL"

          paul53 1 Reply Last reply Reply Quote 0
          • paul53
            paul53 @Zäsch last edited by paul53

            @zäsch sagte: Gibt es eine andere, elegante Möglichkeit mein Array mit den IDs zu befüllen, wenn man nicht den gesamten Namen hat?

            Versuch es mal so:

            const idsSL = $('hue.0.Flur_.SL*');
            var set = [];
            
            idsSL.each(function(id, i) {
                let name = getObject(id).common.name;
                if(name.startsWith('SL.')) set.push(id);
            });
            

            Die Abfrage des Namensbeginns kann man sich evtl. sparen?

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

            Support us

            ioBroker
            Community Adapters
            Donate

            476
            Online

            31.6k
            Users

            79.4k
            Topics

            1.3m
            Posts

            2
            4
            139
            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