Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

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

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.3k

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.6k

im Adapter alle eigenen Objekte durchgehen?

Geplant Angeheftet Gesperrt Verschoben Entwicklung
adapterentwicklung
10 Beiträge 3 Kommentatoren 791 Aufrufe 2 Watching
  • Ä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.
  • ELKE Offline
    ELKE Offline
    ELK
    schrieb am zuletzt editiert von
    #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 Antwort Letzte Antwort
    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
      schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
      0
      • ELKE Offline
        ELKE Offline
        ELK
        schrieb am zuletzt editiert von
        #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 Antwort Letzte Antwort
        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
          schrieb am zuletzt editiert von
          #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 Antwort Letzte Antwort
          0
          • ELKE Offline
            ELKE Offline
            ELK
            schrieb am zuletzt editiert von
            #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 Antwort Letzte Antwort
            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
              schrieb am zuletzt editiert von
              #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 Antwort Letzte Antwort
              0
              • ELKE Offline
                ELKE Offline
                ELK
                schrieb am zuletzt editiert von
                #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 Antwort Letzte Antwort
                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
                  schrieb am zuletzt editiert von
                  #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 Antwort Letzte Antwort
                  0
                  • ELKE Offline
                    ELKE Offline
                    ELK
                    schrieb am zuletzt editiert von
                    #9

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

                    1 Antwort Letzte Antwort
                    0
                    • ELKE Offline
                      ELKE Offline
                      ELK
                      schrieb am zuletzt editiert von
                      #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 Antwort Letzte Antwort
                      0
                      Antworten
                      • In einem neuen Thema antworten
                      Anmelden zum Antworten
                      • Älteste zuerst
                      • Neuste zuerst
                      • Meiste Stimmen


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      525

                      Online

                      32.5k

                      Benutzer

                      81.7k

                      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