Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Insert Objects from Folder into Array

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    22
    1
    1.1k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.1k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.4k

Insert Objects from Folder into Array

Scheduled Pinned Locked Moved JavaScript
4 Posts 2 Posters 231 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • Z Offline
    Z Offline
    Zäsch
    wrote on last edited by
    #1

    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

    paul53P 1 Reply Last reply
    0
    • Z Zäsch

      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

      paul53P Offline
      paul53P Offline
      paul53
      wrote on last edited by
      #2

      @zäsch sagte: mit getIdByName setzen kann

      getIdByName(name) verlangt vollständige Namen.

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      Z 1 Reply Last reply
      0
      • paul53P paul53

        @zäsch sagte: mit getIdByName setzen kann

        getIdByName(name) verlangt vollständige Namen.

        Z Offline
        Z Offline
        Zäsch
        wrote on last edited by
        #3

        @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"

        paul53P 1 Reply Last reply
        0
        • Z Zäsch

          @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"

          paul53P Offline
          paul53P Offline
          paul53
          wrote on last edited by paul53
          #4

          @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?

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

          1 Reply Last reply
          0
          Reply
          • Reply as topic
          Log in to reply
          • Oldest to Newest
          • Newest to Oldest
          • Most Votes


          Support us

          ioBroker
          Community Adapters
          Donate

          930

          Online

          32.5k

          Users

          81.6k

          Topics

          1.3m

          Posts
          Community
          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
          ioBroker Community 2014-2025
          logo
          • Login

          • Don't have an account? Register

          • Login or register to search.
          • First post
            Last post
          0
          • Home
          • Recent
          • Tags
          • Unread 0
          • Categories
          • Unreplied
          • Popular
          • GitHub
          • Docu
          • Hilfe