Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Alle Geräte eines Ordner selektieren für eine for Schleife

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Alle Geräte eines Ordner selektieren für eine for Schleife

    This topic has been deleted. Only users with topic management privileges can see it.
    • A
      AkiraFFM last edited by

      Hallo,

      wie schaffe ich es alle Geräte eines Ordners zu selekteiern, um für jedes Geräte eine Abfrage zu machen? Ich dem an eine "for" schleife bekomme aber nicht alle Objekte selectiert.

      bei der der RegExp habe ich hier schon Unterstützung gehabt aber mit on wird ja nur auf eine Änderung des Objekts reagiert.

      on(/^My_Devices\.0\..+/, function (obj) {
      

      Vielen Dank im Vorraus.

      1 Reply Last reply Reply Quote 0
      • paul53
        paul53 last edited by

        @AkiraFFM:

        wie schaffe ich es alle Geräte eines Ordners zu selekteiern, `
        Meinst Du Geräte oder Datenpunkte ?

        Falls die erste Ebene unter dem Ordner "My_Devices.0." Geräte sind, kannst Du vielleicht mit https://forum.iobroker.net/viewtopic.php?f=21&t=17430&p=182576#p182404 etwas anfangen.

        1 Reply Last reply Reply Quote 0
        • A
          AkiraFFM last edited by

          Danke hat mir weitergeholfen. Bin aber gleich auf das nächste gestoßen.

          Die Requests die ich mache haben eine etwas längere Antwortzeit. Wie bekomme ich es hin mit den responses noch zu arbeiten?

          Habe mir schon Tutorials zu Callback und Promises angeschaut, aber nach erst drei Tagen JavaScript bin ich da noch überfordert.

          klemmen.each(function(id, i) {
          	var dsid = id.replace("My_Devices.0.Digitalstrom.Klemmen.", "")
                  console.log(dsid);
                  console.log(getState(id).val);
                  try {
                      console.log(`SessionToken = ${sessiontoken}`);
                      request({url: `https://${dssip}:${dssport}/json/device/getOutputValue?dsid=${dsid}&offset=0`, headers: {Cookie: `token=${sessiontoken}`}}, function(error, response, body) {
                          console.log(body);
                      });
                  } catch (e) { console.error(e); }
              });
          
          
          1 Reply Last reply Reply Quote 0
          • M
            mmtnrw last edited by

            Hihi Mal in meinem Thread mit den Rollladen mit dem function Return function kannst du asynchron arbeiten..

            1 Reply Last reply Reply Quote 0
            • A
              AkiraFFM last edited by

              Hmm versteh ich noch nicht. schaffe es nicht es in meinen Code zu integrieren.

              1 Reply Last reply Reply Quote 0
              • M
                mmtnrw last edited by

                Damit das Script selber nicht blockiert es einfach in einen Timeout reinsetzen, und es wird ein separater Thread erstellt…. und der läuft dann parallel.

                durch das function return function werden eigene variablen erst.....

                setTimeout( (function(a_klemmen){

                return function(){

                // Kann auch funktionieren wenn das hier einzelnd ist.....

                aklemmen.each(function(a_id, a_i) {

                return function(){

                var dsid = a_id.replace("My_Devices.0.Digitalstrom.Klemmen.", "")

                console.log(dsid);

                console.log(getState(a_id).val);

                try {

                console.log(SessionToken = ${sessiontoken});

                request({url: https://${dssip}:${dssport}/json/device/getOutputValue?dsid=${dsid}&offset=0, headers: {Cookie: token=${sessiontoken}}}, function(error, response, body) {

                console.log(body);

                });

                } catch (e) { console.error(e); }

                }})(id, i);

                // Bis hier

                }

                })(klemmen),200);

                1 Reply Last reply Reply Quote 0
                • First post
                  Last post

                Support us

                ioBroker
                Community Adapters
                Donate

                852
                Online

                31.9k
                Users

                80.1k
                Topics

                1.3m
                Posts

                3
                6
                408
                Loading More Posts
                • Oldest to Newest
                • Newest to Oldest
                • Most Votes
                Reply
                • Reply as topic
                Log in to reply
                Community
                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                The ioBroker Community 2014-2023
                logo