Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Unter-Objekte ermitteln

    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

    Unter-Objekte ermitteln

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

      Hallo zusammen,

      ich habe eine Objektstruktur unter alias.0, die verschiedene Geräte mit unterschiedlichen Eigenschaften abbildet.
      Unter alias.0.devices gibt es dann für jedes Gerät einen Eintrag, z.B. alias.0.devices.nas3 oder alias.0.devices.pve. Ich möchte nun über ein Skript alle Kind-Elemente von alias.0.devices auslesen, also in obigem Beispiel "nas3" und "pve".
      Mit dem Selektor $('alias.0.devices.*').foreach... bekomme ich allerdings nicht nur die devices "nas3" und "pve", sondern deren States.

      Gibt es eine einfachere Möglichkeit, nur die direkten Kindelemente (devices) in einem Ordner abzufragen, als den kompletten Unterbaum durchzuiterieren und mit String-Operationen nur die interessante Ebene rauszufiltern?
      $('devices[id=...]') funktioniert übrigens nicht, scheinbar müssen dafür channels in den devices vorhanden sein - aber das hat bei mir auch nichts gebracht.

      Meine Idee war jetzt irgendwas wie getObject(id).getChildren() oder so zu verwenden... gibts da was in die Richtung?

      paul53 1 Reply Last reply Reply Quote 0
      • paul53
        paul53 @antimon last edited by paul53

        @antimon sagte: über ein Skript alle Kind-Elemente von alias.0.devices auslesen

        const devices = [];
        $('alias.0.devices.*').each(function(id, i) {
            let dev = id.split('.')[3];
            if(!devices.includes(dev)) devices.push(dev);  
        });
        log(devices.join(', '));
        
        A 1 Reply Last reply Reply Quote 0
        • A
          antimon @paul53 last edited by

          Okay, das heisst also wirklich, es gibt keine Methode getChildren() o.ä., sondern man muss den ganzen Baum durchrattern...

          Danke für deine Antwort und den Codeschnipsel @paul53

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

          Support us

          ioBroker
          Community Adapters
          Donate

          823
          Online

          31.8k
          Users

          80.0k
          Topics

          1.3m
          Posts

          2
          3
          146
          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