Skip to content
  • 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
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Entwicklung
  4. Auslesen von Objektstruktur über Javascript

NEWS

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.8k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.1k

Auslesen von Objektstruktur über Javascript

Scheduled Pinned Locked Moved Entwicklung
javaskript
13 Posts 2 Posters 1.6k Views 3 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.
  • G Offline
    G Offline
    gammler2003
    wrote on last edited by
    #3

    @paul53 said in Auslesen von Objektstruktur über Javascript:

    id = id.split('.'); // Datenpunkt-ID
    log(id[id.length - 2]);

    Hallo & vielen Dank für die schnelle Rückmeldung.
    Leider hilft mir das nur bedingt. Mein Ausgangspunkt soll der Ordner "tr-064.0.devices" sein.

    Die konkrete Anforderung => Gebe mir die Namen aller Ordner, die unter "tr-064.0.devices" liegen.

    paul53P 1 Reply Last reply
    0
    • G gammler2003

      @paul53 said in Auslesen von Objektstruktur über Javascript:

      id = id.split('.'); // Datenpunkt-ID
      log(id[id.length - 2]);

      Hallo & vielen Dank für die schnelle Rückmeldung.
      Leider hilft mir das nur bedingt. Mein Ausgangspunkt soll der Ordner "tr-064.0.devices" sein.

      Die konkrete Anforderung => Gebe mir die Namen aller Ordner, die unter "tr-064.0.devices" liegen.

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

      @gammler2003 sagte:

      Namen aller Ordner, die unter "tr-064.0.devices" liegen

      var devices = [];
      $('tr-064.0.devices.*').each(function(id, i) {
          let dev = id.split('.')[3];
          if(devices.indexOf(dev) == -1) devices.push(dev);
      });
      // Array devices enthält jedes Device einmal
      

      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
      • G Offline
        G Offline
        gammler2003
        wrote on last edited by
        #5

        Genau das habe ich gesucht - herzlichen Dank!

        1 Reply Last reply
        0
        • G Offline
          G Offline
          gammler2003
          wrote on last edited by
          #6

          Jetzt hat sich doch noch einmal eine Frage ergeben, auf die ich leider bisher keine passende Antwort gefunden habe.

          Besteht die Möglichkeit, dass ich einen Trigger auf den Knoten "devices" setze? Dieser soll immer dann anspringen, wenn in irgendeinem beliebigen Datenpunkt in der Struktur unter "devices" eine Änderung stattgefunden hat.

          Vielen Dank nochmals für euren Support!

          paul53P 1 Reply Last reply
          0
          • G gammler2003

            Jetzt hat sich doch noch einmal eine Frage ergeben, auf die ich leider bisher keine passende Antwort gefunden habe.

            Besteht die Möglichkeit, dass ich einen Trigger auf den Knoten "devices" setze? Dieser soll immer dann anspringen, wenn in irgendeinem beliebigen Datenpunkt in der Struktur unter "devices" eine Änderung stattgefunden hat.

            Vielen Dank nochmals für euren Support!

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

            @gammler2003 sagte:

            Besteht die Möglichkeit, dass ich einen Trigger auf den Knoten "devices" setze?

            Ja, $Selector.on()

            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

            G 1 Reply Last reply
            0
            • paul53P paul53

              @gammler2003 sagte:

              Besteht die Möglichkeit, dass ich einen Trigger auf den Knoten "devices" setze?

              Ja, $Selector.on()

              G Offline
              G Offline
              gammler2003
              wrote on last edited by
              #8

              @paul53 said in Auslesen von Objektstruktur über Javascript:

              $Selector.on()

              Vielen Dank - liefert mir aber, so wie ich es jetzt eingebaut habe, einen Fehler. Meine erste Zeile sieht wie folgt aus:

              $Selector.on({id: 'tr-064.0.devices.*', change: "ne"}, function (obj) {
              
              paul53P 1 Reply Last reply
              0
              • G gammler2003

                @paul53 said in Auslesen von Objektstruktur über Javascript:

                $Selector.on()

                Vielen Dank - liefert mir aber, so wie ich es jetzt eingebaut habe, einen Fehler. Meine erste Zeile sieht wie folgt aus:

                $Selector.on({id: 'tr-064.0.devices.*', change: "ne"}, function (obj) {
                
                paul53P Offline
                paul53P Offline
                paul53
                wrote on last edited by paul53
                #9

                @gammler2003 sagte:

                Meine erste Zeile sieht wie folgt aus:

                const ids = $('tr-064.0.devices.*'); // das ist der Selector
                var devices = [];
                
                ids.on(function() { // triggert bei Wertänderung aller Datenpunkte des Selectors
                    ids.each(function(id, i) {
                        let dev = id.split('.')[3];
                        if(devices.indexOf(dev) == -1) devices.push(dev);
                    });
                    // Array devices enthält jedes Device einmal
                });
                

                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
                • G Offline
                  G Offline
                  gammler2003
                  wrote on last edited by
                  #10

                  Super, danke! Trigger funktioniert und Array schreiben auch.
                  Jetzt will ich mit dem Array weiterarbeiten - genauer gesagt will ich in einem zweiten Array die Zustände der Geräte abfragen (true/false) und davon abhängig einen weiteren Datenpunkt setzen.

                  Jedoch habe ich das Problem, dass der Trigger

                  ids.on(function() { // triggert bei Wertänderung aller Datenpunkte des Selectors
                      ids.each(function(id, i) {
                          let dev = id.split('.')[3];
                          if(devices.indexOf(dev) == -1) devices.push(dev);
                      });
                      // Array devices enthält jedes Device einmal
                  });
                  
                  

                  nicht nur einmal triggert bei Wertänderung, sondern die Anzahl der Datenpunkte (in meinem Fall 4x).

                  Kurz gesagt: Wenn sich einer der Datenpunkte des Selektors ändert, soll einmalig getriggert werden.

                  Gibt es soetwas?

                  Vielen Dank.

                  paul53P 1 Reply Last reply
                  0
                  • G gammler2003

                    Super, danke! Trigger funktioniert und Array schreiben auch.
                    Jetzt will ich mit dem Array weiterarbeiten - genauer gesagt will ich in einem zweiten Array die Zustände der Geräte abfragen (true/false) und davon abhängig einen weiteren Datenpunkt setzen.

                    Jedoch habe ich das Problem, dass der Trigger

                    ids.on(function() { // triggert bei Wertänderung aller Datenpunkte des Selectors
                        ids.each(function(id, i) {
                            let dev = id.split('.')[3];
                            if(devices.indexOf(dev) == -1) devices.push(dev);
                        });
                        // Array devices enthält jedes Device einmal
                    });
                    
                    

                    nicht nur einmal triggert bei Wertänderung, sondern die Anzahl der Datenpunkte (in meinem Fall 4x).

                    Kurz gesagt: Wenn sich einer der Datenpunkte des Selektors ändert, soll einmalig getriggert werden.

                    Gibt es soetwas?

                    Vielen Dank.

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

                    @gammler2003 sagte:

                    Problem, dass der Tigger nicht nur einmal triggert bei Wertänderung, sondern die Anzahl der Datenpunkte

                    ?? Der Trigger reagiert jedesmal, wenn sich der Wert eines der Datenpunkte des Selectors ändert. In der each-Schleife werden dann alle Datenpunkte abgeklappert.
                    Was möchtest Du erreichen ?

                    @gammler2003 sagte in Auslesen von Objektstruktur über Javascript:

                    Zustände der Geräte abfragen (true/false)

                    Nur Datenpunkte haben Zustände.

                    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
                    • G Offline
                      G Offline
                      gammler2003
                      wrote on last edited by
                      #12

                      Ich möchte alle Datenpunkte unter einem Knoten überwachen. Sobald sich der Wert von einem dieser Datenpunkte ändert, soll eine Aktion (z.B. Konsolenausgabe) getriggert werden.

                      paul53P 1 Reply Last reply
                      0
                      • G gammler2003

                        Ich möchte alle Datenpunkte unter einem Knoten überwachen. Sobald sich der Wert von einem dieser Datenpunkte ändert, soll eine Aktion (z.B. Konsolenausgabe) getriggert werden.

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

                        @gammler2003 sagte:

                        Sobald sich der Wert von einem dieser Datenpunkte ändert

                        Genau dann wird getriggert: Wenn sich Wert eines der im Selector erfassen Datenpunkte ändert . Wie möchtest Du es auswerten ? Was soll in der Ausgabe erscheinen ?

                        const ids = $('tr-064.0.devices.*'); // das ist der Selector
                        // var devices = [];
                         
                        ids.on(function(dp) { // triggert bei Wertänderung eines der Datenpunkte des Selectors
                            log('Änderung von: ' + dp.common.name + ', neuer Wert: ' + dp.state.val);
                        /*    ids.each(function(id, i) {
                                let dev = id.split('.')[3];
                                if(devices.indexOf(dev) == -1) devices.push(dev);
                            });
                        */    // Array devices enthält jedes Device einmal
                        });
                        

                        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

                        443

                        Online

                        32.4k

                        Users

                        81.4k

                        Topics

                        1.3m

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

                        • Don't have an account? Register

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