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

  • wichtiges UPDATE für controller 7.2.2 im stable
    HomoranH
    Homoran
    10
    1
    2.3k

  • Neues YouTube-Video: Visualisierung im Devices-Adapter
    BluefoxB
    Bluefox
    16
    1
    4.2k

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    8
    1
    3.7k

Bug in adapter.js -> getEnum

Geplant Angeheftet Gesperrt Verschoben Error/Bug
7 Beiträge 2 Kommentatoren 1.4k 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 Online
    carsten04C Online
    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 Online
        carsten04C Online
        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 Online
            carsten04C Online
            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 Online
                carsten04C Online
                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

                436

                Online

                33.0k

                Benutzer

                83.4k

                Themen

                1.3m

                Beiträge
                Community
                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                ioBroker Community 2014-2026
                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