Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. [gelöst] Enums werden nur teilw. ausgelesen

    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

    [gelöst] Enums werden nur teilw. ausgelesen

    This topic has been deleted. Only users with topic management privileges can see it.
    • P
      Pittini Developer last edited by Pittini

      Hi allerseits,
      ich hab ein Problem mit Enums, dabei ist es egal ob rooms oder functions.

      rooms = getEnums('rooms');  // Lade alle Raeume
      for (var i in rooms){        // loop ueber alle Raeume
          log("Raum " + rooms[i].name + " gefunden.","info");
      };
      

      Sollte eigentlich alle Räume anzeigen. Die Ausgabe sieht aber so aus:

      13:04:10.188	info	javascript.0 Start javascript script.js.common.TestEnumFunctions
      13:04:10.188	info	javascript.0 script.js.common.TestEnumFunctions: Raum [object Object] gefunden.
      13:04:10.189	info	javascript.0 script.js.common.TestEnumFunctions: Raum [object Object] gefunden.
      13:04:10.189	info	javascript.0 script.js.common.TestEnumFunctions: Raum [object Object] gefunden.
      13:04:10.189	info	javascript.0 script.js.common.TestEnumFunctions: Raum Dachboden gefunden.
      13:04:10.189	info	javascript.0 script.js.common.TestEnumFunctions: Raum Bad gefunden.
      13:04:10.189	info	javascript.0 script.js.common.TestEnumFunctions: Raum Flur EG gefunden.
      13:04:10.189	info	javascript.0 script.js.common.TestEnumFunctions: Raum Flur OG gefunden.
      13:04:10.189	info	javascript.0 script.js.common.TestEnumFunctions: Raum [object Object] gefunden.
      13:04:10.189	info	javascript.0 script.js.common.TestEnumFunctions: Raum Werkstatt gefunden.
      13:04:10.189	info	javascript.0 script.js.common.TestEnumFunctions: Raum [object Object] gefunden.
      13:04:10.189	info	javascript.0 script.js.common.TestEnumFunctions: Raum Gewaechshaus gefunden.
      13:04:10.189	info	javascript.0 script.js.common.TestEnumFunctions: Raum Garten gefunden.
      13:04:10.189	info	javascript.0 script.js.common.TestEnumFunctions: Raum Zelt gefunden.
      13:04:10.189	info	javascript.0 script.js.common.TestEnumFunctions: Raum Draussen gefunden.
      

      Die Gesamtzahl der Einträge ist korrekt, Woher kommen die [object Object] mittendrin? Die ersten 3 z.B. wären eigentlich Wohnzimmer, Schlafzimmer, Kueche. Keiner der Räume ist ohne Eintrag falls das relevant sein sollte.
      Was mach ich falsch, bzw. läuft da falsch?

      thewhobox paul53 2 Replies Last reply Reply Quote 0
      • thewhobox
        thewhobox @Pittini last edited by

        @Pittini Bau mal ein weiteres log mit ein:

        if(typeof rooms[i].name != "string") log(JSON.stringify(rooms[i].name);
        

        Ich vermute mal, dass die Eigenschaft name ein objekt ist mit localisierung:

        name: {
         de: "Hier deutscher Name",
         en: "Here is it in english"
        }
        
        P 1 Reply Last reply Reply Quote 0
        • paul53
          paul53 @Pittini last edited by

          @Pittini
          Versuche es mal so:

          var rooms = getEnums('rooms');
          
          for (var i in rooms){        // loop ueber alle Raeume
              var room = rooms[i].name;
              if(typeof room == 'object') room = room.de; 
              log("Raum " + room + " gefunden.");
          };
          
          P 1 Reply Last reply Reply Quote 0
          • P
            Pittini Developer @paul53 last edited by

            @paul53
            So klappt das, vielen Dank.

            1 Reply Last reply Reply Quote 0
            • P
              Pittini Developer @thewhobox last edited by

              @thewhobox
              Das wirft leider nen compile error.

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

                @Pittini sagte:

                Das wirft leider nen compile error.

                Es fehlt eine schließende Klammer.
                Bei der neunen Version des JS-Adapters (4.1.14) ist JSON.stringify() nicht erforderlich.

                P 1 Reply Last reply Reply Quote 0
                • P
                  Pittini Developer @paul53 last edited by

                  @paul53
                  Mit der Klammer haste recht, hätt ich ja auch selber mal nachzählen können.
                  Wenn Du mir jetzt noch erklären könntest wie ich nun alle Member eines Raums rauskrieg, haste mich für heute glücklich gemacht :).

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

                    @Pittini sagte:

                    alle Member eines Raums

                    var rooms = getEnums('rooms');
                    
                    for (var i in rooms){        // loop ueber alle Raeume
                        var room = rooms[i].name;
                        if(typeof room == 'object') room = room.de; 
                        var members = rooms[i].members;
                        for(let j in members) {
                            log(room + ': ' + members[j]);
                        }
                    };
                    
                    1 Reply Last reply Reply Quote 0
                    • First post
                      Last post

                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    408
                    Online

                    31.9k
                    Users

                    80.2k
                    Topics

                    1.3m
                    Posts

                    3
                    8
                    339
                    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