Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [gelöst]getState auf Variablentyp object: wie gezielt auslesen?

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [gelöst]getState auf Variablentyp object: wie gezielt auslesen?

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

      Hi,

      ich habe mit setState eine Variable vom Typ Object angelegt (ich nenne es mal so, damit's keine Verwechslung auf ein Device gibt).

      var meine_tabelle = { 
           '1': "#40000000",  '2': "#40000000",  '3': "#40000000",  '4': "#40000000",  '5': "#40030000",  '6': "#40030000",
           '7': "#90040000",  '8': "#442c0000",  '9': "#225b0600", '10': "#225b0620", '11': "#225b0600", '12': "#225b0600",
          '13': "#225b0600", '14': "#225b0600", '15': "#225b0600", '16': "#225b0600", '17': "#225b0600", '18': "#ff360010",
          '19': "#ff000000", '20': "#ff000000", '21': "#ff000000", '22': "#ff000000", '23': "#ff000000",  '0': "#50000000",
      };
      
      createState("javascript.0.tabellenbank", meine_tabelle, {
          type: 'object',
          name: 'Ich bin ein Objekt'
      });
      

      Geht auch:
      578_2017-09-12_19_29_12-iobroker.admin.png
      Auch wenn es in der allgemeinen Übersicht leer aussieht:
      578_2017-09-12_19_29_32-iobroker.admin.png

      Wie kann ich jetzt aber dieses Objekt gezielt auslesen? Also z. B. nur die Bankwerte aus 6 (#40030000).

      Schreibweisen wie

      getState("javascript.0.tabellenbank[6]").val;
      getState("javascript.0.tabellenbank[6]");
      getState("javascript.0.tabellenbank").[6];
      
      ````usw. sehen nicht nur komisch aus - sie funktionieren auch nicht.
      
      Danke für eine objectorientierte Antwort. :D
      
      So long,
      
      Fitti
      1 Reply Last reply Reply Quote 0
      • paul53
        paul53 last edited by

        Das funktioniert so nicht. Du hast die Tabelle unter obj.common erstellt. Möchte man ein Objekt per setState() übergeben, muss man es in einen JSON-String wandeln und beim zurücklesen mit JSON.parse wieder in ein Objekt wandeln.

        var meine_tabelle = {
             '1': "#40000000",  '2': "#40000000",  '3': "#40000000",  '4': "#40000000",  '5': "#40030000",  '6': "#40030000",
             '7': "#90040000",  '8': "#442c0000",  '9': "#225b0600", '10': "#225b0620", '11': "#225b0600", '12': "#225b0600",
            '13': "#225b0600", '14': "#225b0600", '15': "#225b0600", '16': "#225b0600", '17': "#225b0600", '18': "#ff360010",
            '19': "#ff000000", '20': "#ff000000", '21': "#ff000000", '22': "#ff000000", '23': "#ff000000",  '0': "#50000000",
        };
        
        createState("tabellenbank", JSON.stringify(meine_tabelle), {
            type: 'string',
            name: 'Ich bin ein Objekt'
        });
        
        

        Auslesen:

        var obj = JSON.parse(getState("tabellenbank").val);
        var wert6 = obj.6;  // oder obj['6']
        
        1 Reply Last reply Reply Quote 0
        • F
          Fitti last edited by

          Danke, das hat mir sehr geholfen.

          Warum ich die Tabelle unter obj.common erstellt habe erschließt sich mir nicht - auch finde ich nirgends dieses Objekt. Wahrscheinlich ist das was internes?

          Die Schreibweise var wert6 = obj.6; wollte er partout nicht. "a Leading decimal Points könnte mit einem Punkt verwechselt werden…."

          Egal, mittels wert6 = obj[6]; geht es sorgenfrei.

          Also Danke nochmals!

          Fitti

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

          Support us

          ioBroker
          Community Adapters
          Donate

          793
          Online

          31.7k
          Users

          79.8k
          Topics

          1.3m
          Posts

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