Skip to content
  • Home
  • 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
ioBroker Logo

Community Forum

  1. ioBroker Community Home
  2. Deutsch
  3. Error/Bug
  4. Bug in adapter.js -> getEnum

NEWS

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

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

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

Bug in adapter.js -> getEnum

Scheduled Pinned Locked Moved Error/Bug
7 Posts 2 Posters 1.2k Views
  • 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.
  • carsten04C Online
    carsten04C Online
    carsten04
    Developer
    wrote on last edited by
    #1

    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
    0
    • BluefoxB Offline
      BluefoxB Offline
      Bluefox
      wrote on last edited by
      #2

      @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
      0
      • carsten04C Online
        carsten04C Online
        carsten04
        Developer
        wrote on last edited by
        #3

        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
        0
        • BluefoxB Offline
          BluefoxB Offline
          Bluefox
          wrote on last edited by
          #4

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

          1 Reply Last reply
          0
          • carsten04C Online
            carsten04C Online
            carsten04
            Developer
            wrote on last edited by
            #5

            you made my day :-)

            Danke.

            1 Reply Last reply
            0
            • BluefoxB Offline
              BluefoxB Offline
              Bluefox
              wrote on last edited by
              #6

              @carsten04:

              you made my day :-)

              Danke. `
              Hoffentlich ist das nicht ironisch gemeint.

              Ich meine das ernst. ;)

              1 Reply Last reply
              0
              • carsten04C Online
                carsten04C Online
                carsten04
                Developer
                wrote on last edited by
                #7

                Hi Bluefox,

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

                Grüße

                Carsten

                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

                653

                Online

                32.4k

                Users

                81.4k

                Topics

                1.3m

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

                • Don't have an account? Register

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