NEWS
Insert Objects from Folder into Array
-
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
-
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 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 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"@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?
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden