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

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Entwicklung
  4. im Adapter alle eigenen Objekte durchgehen?

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.5k

im Adapter alle eigenen Objekte durchgehen?

Scheduled Pinned Locked Moved Entwicklung
adapterentwicklung
10 Posts 3 Posters 907 Views 2 Watching
  • 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.
  • ELKE Offline
    ELKE Offline
    ELK
    wrote on last edited by
    #1

    Moin! (bin erst seit ein paar Tagen im Thema...)
    Im Javascript-Adapter mache ich dies:

    var Objekte;
    Objekte = $("mein-adapter.0.Obj.*")
    

    Obj ist ein Ordner, in dem sich weitere Ordner befinden, in denen ich Datenpunkte durchsuchen möchte. Externe Hardware sendet mir eine ID (0..255), anhand der ich dann in "Objekte" das zu ändernde Objekt suche (ist eine Eigenschaft "Nr" unter "native"). Dieser Ansatz erschien mir richtig, muss er aber nicht sein...

    Nun gibt es ja im Adapter den Selector nicht. Wie kann ich nun in meinen eigenen Objekten jenes mit der gesuchten Nummer finden?

    paul53P 1 Reply Last reply
    0
    • ELKE ELK

      Moin! (bin erst seit ein paar Tagen im Thema...)
      Im Javascript-Adapter mache ich dies:

      var Objekte;
      Objekte = $("mein-adapter.0.Obj.*")
      

      Obj ist ein Ordner, in dem sich weitere Ordner befinden, in denen ich Datenpunkte durchsuchen möchte. Externe Hardware sendet mir eine ID (0..255), anhand der ich dann in "Objekte" das zu ändernde Objekt suche (ist eine Eigenschaft "Nr" unter "native"). Dieser Ansatz erschien mir richtig, muss er aber nicht sein...

      Nun gibt es ja im Adapter den Selector nicht. Wie kann ich nun in meinen eigenen Objekten jenes mit der gesuchten Nummer finden?

      paul53P Offline
      paul53P Offline
      paul53
      wrote on last edited by paul53
      #2

      @ELK
      Aus der Datei adapter.js (js-controller):

          /**
           * Read all states of this adapter, that pass the pattern
           *
           * Allows to read all states of current adapter according to pattern. To read all states of current adapter use:
           * <pre><code>
           *     adapter.getStates('*', function (err, states) {
           *         for (var id in states) {
           *              adapter.log.debug('"' + id + '" = "' + states[id].val);
           *         }
           *     });
           * </code></pre>
           *
           * @alias getStates
           * @memberof Adapter
           * @param {string} pattern string in form 'adapter.0.*' or like this. It can be array of IDs too.
           * @param {object} options optional argument to describe the user context
           * @param {function} callback return result function (err, states) {}, where states is an object like {"ID1": {"val": 1, "ack": true}, "ID2": {"val": 2, "ack": false}, ...}
           */
      
      adapter.getStates('mein-adapter.0.Obj.*', function (err, states) {
          for (var id in states) {
              // Auswertung
          }
      });
      

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      1 Reply Last reply
      0
      • ELKE Offline
        ELKE Offline
        ELK
        wrote on last edited by
        #3

        Danke für die schnelle Antwort!
        Sieht gut aus, doch leider klemmt es bei mir wohl noch irgendwo anders...

        this.log.info("vor getStates");
        adapter.getStates("mein-adapter.0.Obj.*",function(err,states) 
            {
            this.log.info("in getStates");
            for(var id in states)
                {
                this.log.info(id);
                }
            });
        this.log.info("nach getStates");
        

        ergibt im Log "vor getStates". Und das wars dann. Auch kein Fehler im Log. Stille...
        Das muss was unglaublich blödes sein... aber was?

        foxriver76F 1 Reply Last reply
        0
        • ELKE ELK

          Danke für die schnelle Antwort!
          Sieht gut aus, doch leider klemmt es bei mir wohl noch irgendwo anders...

          this.log.info("vor getStates");
          adapter.getStates("mein-adapter.0.Obj.*",function(err,states) 
              {
              this.log.info("in getStates");
              for(var id in states)
                  {
                  this.log.info(id);
                  }
              });
          this.log.info("nach getStates");
          

          ergibt im Log "vor getStates". Und das wars dann. Auch kein Fehler im Log. Stille...
          Das muss was unglaublich blödes sein... aber was?

          foxriver76F Offline
          foxriver76F Offline
          foxriver76
          Developer
          wrote on last edited by
          #4

          @ELK

          ist der Aufruf in promises geschachtelt? Dann wird der Fehler vermutlich vertuscht durch eine UnhandeldPromiseRejectionWarning. Du leitest den cb von getStates klassisch mit function ein statt einer Arrow-Function, dadurch wird ein neuer this Kontext geschaffen. Was auch immer this vorher für einen Fokus hatte, ist somit dahin und this wird im cb kein Attribut log haben.

          Videotutorials & mehr

          Hier könnt ihr mich unterstützen.

          1 Reply Last reply
          0
          • ELKE Offline
            ELKE Offline
            ELK
            wrote on last edited by
            #5

            Danke für die Geduld...
            Geschachtelt ist nix und auch mit Arrow Function hat sich nichts geändert. So sieht es jetzt aus:

            async onReady() 
                {
                this.log.info("vor getStates...");
                adapter.getStates("mein-adapter.0.Obj.*", (err, states) => 
                    {
                    this.log.info("in getStates...");
                    for(var id in states)
                        {
                        this.log.info(id.toString() + JSON.stringify(id));
                        }
                    });
            

            danach kommen noch div. Initialisierungen, die aber nicht mehr erreicht werden.
            Ist evtl. der Objektpfad falsch, so dass es keinen Rückgabewert gibt? Ich glaube, da habe ich noch Verständnisschwierigkeiten...
            Im Ordner mein-adapter.0 habe ich den Ordner Obj manuell angelegt, in dem sich verschiedene weitere Ordner befinden, in denen sich jeweils eine Anzahl Datenpunktobjekte befinden (schrieb ich ja oben schon). Ich möchte also alle Objekte unterhalb von mein-adapter.0.Obj durchgehen.
            Danke für die Anteilnahme!

            foxriver76F 1 Reply Last reply
            0
            • ELKE ELK

              Danke für die Geduld...
              Geschachtelt ist nix und auch mit Arrow Function hat sich nichts geändert. So sieht es jetzt aus:

              async onReady() 
                  {
                  this.log.info("vor getStates...");
                  adapter.getStates("mein-adapter.0.Obj.*", (err, states) => 
                      {
                      this.log.info("in getStates...");
                      for(var id in states)
                          {
                          this.log.info(id.toString() + JSON.stringify(id));
                          }
                      });
              

              danach kommen noch div. Initialisierungen, die aber nicht mehr erreicht werden.
              Ist evtl. der Objektpfad falsch, so dass es keinen Rückgabewert gibt? Ich glaube, da habe ich noch Verständnisschwierigkeiten...
              Im Ordner mein-adapter.0 habe ich den Ordner Obj manuell angelegt, in dem sich verschiedene weitere Ordner befinden, in denen sich jeweils eine Anzahl Datenpunktobjekte befinden (schrieb ich ja oben schon). Ich möchte also alle Objekte unterhalb von mein-adapter.0.Obj durchgehen.
              Danke für die Anteilnahme!

              foxriver76F Offline
              foxriver76F Offline
              foxriver76
              Developer
              wrote on last edited by
              #6

              @ELK Hast du den kompletten Code irgendwo zur Verfügung? Du sagst ja, dass 'in getStates ...' nicht geloggt wird, der cb also nie ausgeführt wird.

              Videotutorials & mehr

              Hier könnt ihr mich unterstützen.

              1 Reply Last reply
              0
              • ELKE Offline
                ELKE Offline
                ELK
                wrote on last edited by
                #7

                ja, klar... aber im Moment habe ich den Eindruck, dass ich irgendwelche ganz grundlegenden Fehler habe/mache. Bevor ich euch weiter sinnlos Zeit stehle, wühle ich erstmal etwas weiter. Ich schreibe wieder, wenn ich etwas qualifizierter sagen kann, was ich gemacht habe...
                Die Dokumentation der im Adapter verwendbaren Funktionen erscheint mir noch nicht einmal lückenhaft zu sein, bestenfalls "rudimentär angedeutet". Oder gibt es irgendwo noch weitere Informationen?

                paul53P 1 Reply Last reply
                0
                • ELKE ELK

                  ja, klar... aber im Moment habe ich den Eindruck, dass ich irgendwelche ganz grundlegenden Fehler habe/mache. Bevor ich euch weiter sinnlos Zeit stehle, wühle ich erstmal etwas weiter. Ich schreibe wieder, wenn ich etwas qualifizierter sagen kann, was ich gemacht habe...
                  Die Dokumentation der im Adapter verwendbaren Funktionen erscheint mir noch nicht einmal lückenhaft zu sein, bestenfalls "rudimentär angedeutet". Oder gibt es irgendwo noch weitere Informationen?

                  paul53P Offline
                  paul53P Offline
                  paul53
                  wrote on last edited by
                  #8

                  @ELK sagte:

                  bestenfalls "rudimentär angedeutet". Oder gibt es irgendwo noch weitere Informationen?

                  Da stimme ich zu. Auf Github zum js-controller sind innerhalb der Datei adapter.js einige Funktionen vor ihrer Deklaration recht ausführlich kommentiert.

                  Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                  Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                  1 Reply Last reply
                  0
                  • ELKE Offline
                    ELKE Offline
                    ELK
                    wrote on last edited by
                    #9

                    ok, danke... 7500 Zeilen... ich fange mal an :-)

                    1 Reply Last reply
                    0
                    • ELKE Offline
                      ELKE Offline
                      ELK
                      wrote on last edited by
                      #10

                      öhm.... kann ich irgendwie bessere Debugmeldungen bekommen? Mein Adapter steht schon auf debug, aber wenn bestimmte Fehler auftreten, passiert einfach kommentarlos nichts. Mein eigentlich gelöstes Kontextproblem von weiter oben war ja im log nicht zu sehen.

                      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

                      315

                      Online

                      32.7k

                      Users

                      82.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