Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • 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. Error/Bug
  4. Bug in adapter.js -> getEnum

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    656

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    18
    1
    5.7k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.5k

Bug in adapter.js -> getEnum

Geplant Angeheftet Gesperrt Verschoben Error/Bug
7 Beiträge 2 Kommentatoren 1.3k Aufrufe
  • Ä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.
  • carsten04C Offline
    carsten04C Offline
    carsten04
    Developer
    schrieb am zuletzt editiert von
    #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 Antwort Letzte Antwort
    0
    • BluefoxB Offline
      BluefoxB Offline
      Bluefox
      schrieb am zuletzt editiert von
      #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 Antwort Letzte Antwort
      0
      • carsten04C Offline
        carsten04C Offline
        carsten04
        Developer
        schrieb am zuletzt editiert von
        #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 Antwort Letzte Antwort
        0
        • BluefoxB Offline
          BluefoxB Offline
          Bluefox
          schrieb am zuletzt editiert von
          #4

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

          1 Antwort Letzte Antwort
          0
          • carsten04C Offline
            carsten04C Offline
            carsten04
            Developer
            schrieb am zuletzt editiert von
            #5

            you made my day :-)

            Danke.

            1 Antwort Letzte Antwort
            0
            • BluefoxB Offline
              BluefoxB Offline
              Bluefox
              schrieb am zuletzt editiert von
              #6

              @carsten04:

              you made my day :-)

              Danke. `
              Hoffentlich ist das nicht ironisch gemeint.

              Ich meine das ernst. ;)

              1 Antwort Letzte Antwort
              0
              • carsten04C Offline
                carsten04C Offline
                carsten04
                Developer
                schrieb am zuletzt editiert von
                #7

                Hi Bluefox,

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

                Grüße

                Carsten

                1 Antwort Letzte Antwort
                0

                Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

                Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

                Mit deinem Input könnte dieser Beitrag noch besser werden 💗

                Registrieren Anmelden
                Antworten
                • In einem neuen Thema antworten
                Anmelden zum Antworten
                • Älteste zuerst
                • Neuste zuerst
                • Meiste Stimmen


                Support us

                ioBroker
                Community Adapters
                Donate

                517

                Online

                32.7k

                Benutzer

                82.6k

                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