Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
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.2k

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

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

Insert Objects from Folder into Array

Geplant Angeheftet Gesperrt Verschoben JavaScript
4 Beiträge 2 Kommentatoren 231 Aufrufe 1 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • Z Offline
    Z Offline
    Zäsch
    schrieb am zuletzt editiert von
    #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 Antwort Letzte Antwort
    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
      schrieb am zuletzt editiert von
      #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 Antwort Letzte Antwort
      0
      • paul53P paul53

        @zäsch sagte: mit getIdByName setzen kann

        getIdByName(name) verlangt vollständige Namen.

        Z Offline
        Z Offline
        Zäsch
        schrieb am zuletzt editiert von
        #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 Antwort Letzte Antwort
        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
          schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
          0
          Antworten
          • In einem neuen Thema antworten
          Anmelden zum Antworten
          • Älteste zuerst
          • Neuste zuerst
          • Meiste Stimmen


          Support us

          ioBroker
          Community Adapters
          Donate

          795

          Online

          32.5k

          Benutzer

          81.7k

          Themen

          1.3m

          Beiträge
          Community
          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
          ioBroker Community 2014-2025
          logo
          • Anmelden

          • Du hast noch kein Konto? Registrieren

          • Anmelden oder registrieren, um zu suchen
          • Erster Beitrag
            Letzter Beitrag
          0
          • Home
          • Aktuell
          • Tags
          • Ungelesen 0
          • Kategorien
          • Unreplied
          • Beliebt
          • GitHub
          • Docu
          • Hilfe