Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Error/Bug
    4. Bug in adapter.js -> getEnum

    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

    Bug in adapter.js -> getEnum

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

      In der adapter.js ist noch ein kleiner Bug in getEnum(…):

      falsch:

      that.getEnum = function getEnum(_enum, options, callback) {
      
                  ....
      
                  that.objects.getObjectView('system', 'enum', {startkey: _enum  + '.' , endkey: _enum + '.\u9999'}, options, function (err, res) {
      
                      ...
      
                  });
              };
      

      richtig wäre (ohne + '.'):

      that.getEnum = function getEnum(_enum, options, callback) {
      
                  ....
      
                  that.objects.getObjectView('system', 'enum', {startkey: _enum , endkey: _enum + '.\u9999'}, options, function (err, res) {
      
                      ...
      
                  });
              };
      

      ansonsten wird die view nicht richtig aufgelöst und result ist ein leeres Objekt.

      Grüße

      Carsten

      1 Reply Last reply Reply Quote 0
      • Bluefox
        Bluefox last edited by

        @carsten04:

        In der adapter.js ist noch ein kleiner Bug in getEnum(…):

        falsch:

        that.getEnum = function getEnum(_enum, options, callback) {
                    
                    ....
        
                    that.objects.getObjectView('system', 'enum', {startkey: _enum  + '.' , endkey: _enum + '.\u9999'}, options, function (err, res) {
                        
                        ...
                        
                    });
                };
        

        richtig wäre (ohne + '.'):

        that.getEnum = function getEnum(_enum, options, callback) {
                    
                    ....
        
                    that.objects.getObjectView('system', 'enum', {startkey: _enum , endkey: _enum + '.\u9999'}, options, function (err, res) {
                        
                        ...
                        
                    });
                };
        

        ansonsten wird die view nicht richtig aufgelöst und result ist ein leeres Objekt.

        Grüße

        Carsten `
        Was suchst du? Wenn ich zum Beispiel alle Räume sehen will dann wird enum.rooms. geschaut. Von mir aus passt?

        Wie ist dein Fall.

        1 Reply Last reply Reply Quote 0
        • carsten04
          carsten04 Developer last edited by

          Wenn Du alle Räume sehen willst, dann klappt das auch ohne Änderung -> Aufruf:

           adapter.getEnum('rooms',function (err, result, _enum) {
           ...
           }
          

          result enthält dann z.B.

          result = Object
           enum.rooms.büro = Object
           enum.rooms.küche = Object
           enum.rooms.wohnzimmer = Object
          

          Was nicht geht ist, wenn Dich nur ein bestimmter Raum interessiert -> Aufruf z.B.:

           adapter.getEnum('rooms.wohnzimmer',function (err, result, _enum) {
           ...
           }
          

          result enthält dann nur proto

          result = Object
           __proto__ = Object
          

          mit der Änderung aber:

          result = Object
           enum.rooms.wohnzimmer = Object
          

          wie es sein sollte.

          Wenn Du mit der Änderung aber nur

           adapter.getEnum('rooms',function (err, result, _enum) {
           ...
           }
          

          aufrufst, enthält result

          result = Object
           enum.rooms = Object
           enum.rooms.büro = Object
           enum.rooms.küche = Object
           enum.rooms.wohnzimmer = Object
          

          also noch zusätzlich:

          enum.rooms
          

          stört zwar nicht, ist aber auch nicht wirklich schön. Ich hoffe es ist rübergekommen was ich meine.

          Grüße

          Carsten

          1 Reply Last reply Reply Quote 0
          • Bluefox
            Bluefox last edited by

            Wenn du einzelne Enum lesen willst, dann verwende einfach getForeignObjekt.

            1 Reply Last reply Reply Quote 0
            • carsten04
              carsten04 Developer last edited by

              you made my day 🙂

              Danke.

              1 Reply Last reply Reply Quote 0
              • Bluefox
                Bluefox last edited by

                @carsten04:

                you made my day 🙂

                Danke. `
                Hoffentlich ist das nicht ironisch gemeint.

                Ich meine das ernst. 😉

                1 Reply Last reply Reply Quote 0
                • carsten04
                  carsten04 Developer last edited by

                  Hi Bluefox,

                  nein das war nicht ironisch gemeint, sondern Deine kurze Antwort hat mir gut weitergeholfen.

                  Grüße

                  Carsten

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

                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  869
                  Online

                  31.8k
                  Users

                  80.0k
                  Topics

                  1.3m
                  Posts

                  2
                  7
                  1111
                  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