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. [Gelöst] Werte aus Objektattributen in ein Array packen?

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    329

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.5k

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

[Gelöst] Werte aus Objektattributen in ein Array packen?

Geplant Angeheftet Gesperrt Verschoben JavaScript
5 Beiträge 2 Kommentatoren 474 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.
  • I Offline
    I Offline
    IobNordlicht
    schrieb am zuletzt editiert von IobNordlicht
    #1

    Hi zusammen,

    ich probiere mich gerade mit Arrays und dem Lambda-Ausdruck ( => ) aus.
    Ziel ist es, möglichst elegant in einer kurzen Zeile alle Werte aus den entsprechenden Objekten als Array zu bekommen.
    Folgend mein Code:

    var strSelector='channel[state.id=alias.0.intern.EG.sensors.Klima.*.temperature]';
    log("[Ø-Funktion.dynSelektor] Werte folgenden Selektor aus: '"+strSelektor+"'");
    var aObjects = $(strSelektor);
    log("[Ø-Funktion.dynSelektor] Werte des Selektors:");
    aResult = aObjects.each( index => getState(index).val );
    log("[Ø-Funktion.dynSelektor] Ergebnisse: '"+aResult.toString()+"'");
    return aResult;
    

    aObjects enthält alle Temperaturen als "array of objects" per Selektor gesammelt.
    Der Objektbaum dazu:
    fcbf35be-542c-4b04-88fc-d43f11009f0b-image.png
    aResult enthält aber wieder nur Objekte anstelle der konkreten Werte, die ich bei ".val" nun erwartet hätte?
    geloggt wird: "[Ø-Funktion.dynSelektor] Ergebnisse: '[object Object]'"
    Eigentlich hätte ich so was wie "[Ø-Funktion.dynSelektor] Ergebnisse: [ 20.71, 21.23, 20.95,23 ]" erwartet?

    Wo ist mein Verständnisfehler?

    Ausführliches Log:


    15:53:39.767 info javascript.0 (3434688) script.js.common.Generic_functions: [Ø-Funktion.dynSelektor] Werte folgenden Selektor aus: 'channel[state.id=alias.0.intern.EG.sensors.Klima.*.temperature]'
    15:53:39.798 info javascript.0 (3434688) script.js.common.Generic_functions: [Ø-Funktion.dynSelektor] Inhalte des Selektors:
    15:53:39.799 info javascript.0 (3434688) script.js.common.Generic_functions: getState(id=alias.0.intern.EG.sensors.Klima.Bad.temperature, timerId=undefined) => {"val":20.71,"ack":true,"ts":1704206700335,"q":0,"from":"system.adapter.zigbee.0","user":"system.user.admin","lc":1704204900770}
    15:53:39.799 info javascript.0 (3434688) script.js.common.Generic_functions: getState(id=alias.0.intern.EG.sensors.Klima.Flur.temperature, timerId=undefined) => {"val":21.21,"ack":true,"ts":1704205687931,"q":0,"from":"system.adapter.zigbee.0","user":"system.user.admin","lc":1704205687931}
    15:53:39.799 info javascript.0 (3434688) script.js.common.Generic_functions: getState(id=alias.0.intern.EG.sensors.Klima.HWR.temperature, timerId=undefined) => {"val":20.95,"ack":true,"ts":1704206537319,"q":0,"from":"system.adapter.zigbee.0","user":"system.user.admin","lc":1704206537319}
    15:53:39.799 info javascript.0 (3434688) script.js.common.Generic_functions: getState(id=alias.0.intern.EG.sensors.Klima.Wohnzimmer.temperature, timerId=undefined) => {"val":23,"ack":true,"ts":1704206273718,"q":0,"from":"system.adapter.zigbee.0","user":"system.user.admin","lc":1704202695526}
    15:53:39.766 info javascript.0 (3434688) script.js.common.Generic_functions: [Ø-Funktion.dynSelektor] Ergebnisse: '[object Object]'

    paul53P 1 Antwort Letzte Antwort
    0
    • I IobNordlicht

      Hi zusammen,

      ich probiere mich gerade mit Arrays und dem Lambda-Ausdruck ( => ) aus.
      Ziel ist es, möglichst elegant in einer kurzen Zeile alle Werte aus den entsprechenden Objekten als Array zu bekommen.
      Folgend mein Code:

      var strSelector='channel[state.id=alias.0.intern.EG.sensors.Klima.*.temperature]';
      log("[Ø-Funktion.dynSelektor] Werte folgenden Selektor aus: '"+strSelektor+"'");
      var aObjects = $(strSelektor);
      log("[Ø-Funktion.dynSelektor] Werte des Selektors:");
      aResult = aObjects.each( index => getState(index).val );
      log("[Ø-Funktion.dynSelektor] Ergebnisse: '"+aResult.toString()+"'");
      return aResult;
      

      aObjects enthält alle Temperaturen als "array of objects" per Selektor gesammelt.
      Der Objektbaum dazu:
      fcbf35be-542c-4b04-88fc-d43f11009f0b-image.png
      aResult enthält aber wieder nur Objekte anstelle der konkreten Werte, die ich bei ".val" nun erwartet hätte?
      geloggt wird: "[Ø-Funktion.dynSelektor] Ergebnisse: '[object Object]'"
      Eigentlich hätte ich so was wie "[Ø-Funktion.dynSelektor] Ergebnisse: [ 20.71, 21.23, 20.95,23 ]" erwartet?

      Wo ist mein Verständnisfehler?

      Ausführliches Log:


      15:53:39.767 info javascript.0 (3434688) script.js.common.Generic_functions: [Ø-Funktion.dynSelektor] Werte folgenden Selektor aus: 'channel[state.id=alias.0.intern.EG.sensors.Klima.*.temperature]'
      15:53:39.798 info javascript.0 (3434688) script.js.common.Generic_functions: [Ø-Funktion.dynSelektor] Inhalte des Selektors:
      15:53:39.799 info javascript.0 (3434688) script.js.common.Generic_functions: getState(id=alias.0.intern.EG.sensors.Klima.Bad.temperature, timerId=undefined) => {"val":20.71,"ack":true,"ts":1704206700335,"q":0,"from":"system.adapter.zigbee.0","user":"system.user.admin","lc":1704204900770}
      15:53:39.799 info javascript.0 (3434688) script.js.common.Generic_functions: getState(id=alias.0.intern.EG.sensors.Klima.Flur.temperature, timerId=undefined) => {"val":21.21,"ack":true,"ts":1704205687931,"q":0,"from":"system.adapter.zigbee.0","user":"system.user.admin","lc":1704205687931}
      15:53:39.799 info javascript.0 (3434688) script.js.common.Generic_functions: getState(id=alias.0.intern.EG.sensors.Klima.HWR.temperature, timerId=undefined) => {"val":20.95,"ack":true,"ts":1704206537319,"q":0,"from":"system.adapter.zigbee.0","user":"system.user.admin","lc":1704206537319}
      15:53:39.799 info javascript.0 (3434688) script.js.common.Generic_functions: getState(id=alias.0.intern.EG.sensors.Klima.Wohnzimmer.temperature, timerId=undefined) => {"val":23,"ack":true,"ts":1704206273718,"q":0,"from":"system.adapter.zigbee.0","user":"system.user.admin","lc":1704202695526}
      15:53:39.766 info javascript.0 (3434688) script.js.common.Generic_functions: [Ø-Funktion.dynSelektor] Ergebnisse: '[object Object]'

      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von paul53
      #2

      @iobnordlicht sagte: Ergebnisse: [ 20.71, 21.23, 20.95,23 ]" erwartet?

      Wo ist das Werte-Array?

      const ids = $('alias.0.intern.EG.sensors.Klima.*.temperature');
      
      const arr = [];
      ids.each(function(id) {
          arr.push(getState(id).val);
      }); 
      log('Ergebnisse: ' + JSON.stringify(arr));
      

      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

      I 1 Antwort Letzte Antwort
      0
      • paul53P paul53

        @iobnordlicht sagte: Ergebnisse: [ 20.71, 21.23, 20.95,23 ]" erwartet?

        Wo ist das Werte-Array?

        const ids = $('alias.0.intern.EG.sensors.Klima.*.temperature');
        
        const arr = [];
        ids.each(function(id) {
            arr.push(getState(id).val);
        }); 
        log('Ergebnisse: ' + JSON.stringify(arr));
        
        I Offline
        I Offline
        IobNordlicht
        schrieb am zuletzt editiert von IobNordlicht
        #3

        @paul53
        ich dachte hier?

        aResult = aObjects.each( index => getState(index).val );
        

        Danke für deine alternative Lösung, ist nur so, dass ich gerade versuche, den Pfeil zu verstehen in der Anwendung und ich dachte, das müsste so doch klappen?

        paul53P 1 Antwort Letzte Antwort
        1
        • I IobNordlicht

          @paul53
          ich dachte hier?

          aResult = aObjects.each( index => getState(index).val );
          

          Danke für deine alternative Lösung, ist nur so, dass ich gerade versuche, den Pfeil zu verstehen in der Anwendung und ich dachte, das müsste so doch klappen?

          paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von paul53
          #4

          @iobnordlicht sagte: ich dachte hier?

          Der Selektor liefert ein Objekt mit IDs, das einem Array ähnlich, aber kein Array ist.

          @iobnordlicht sagte in Elegant Werte aus Objektattributen in ein Array packen?:

          versuche, den Pfeil zu verstehen

          Man kann auch den Pfeil verwenden:

          const ids = $('alias.0.intern.EG.sensors.Klima.*.temperature');
           
          const arr = [];
          ids.each(id => {
              arr.push(getState(id).val);
          }); 
          log('Ergebnisse: ' + JSON.stringify(arr));
          

          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

          I 1 Antwort Letzte Antwort
          0
          • paul53P paul53

            @iobnordlicht sagte: ich dachte hier?

            Der Selektor liefert ein Objekt mit IDs, das einem Array ähnlich, aber kein Array ist.

            @iobnordlicht sagte in Elegant Werte aus Objektattributen in ein Array packen?:

            versuche, den Pfeil zu verstehen

            Man kann auch den Pfeil verwenden:

            const ids = $('alias.0.intern.EG.sensors.Klima.*.temperature');
             
            const arr = [];
            ids.each(id => {
                arr.push(getState(id).val);
            }); 
            log('Ergebnisse: ' + JSON.stringify(arr));
            
            I Offline
            I Offline
            IobNordlicht
            schrieb am zuletzt editiert von
            #5

            @paul53
            Ok, danke. Also eine Liste und kein Array, daher mein Verständnisproblem :)

            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

            342

            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