Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. wLED-Abfrage

    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

    wLED-Abfrage

    This topic has been deleted. Only users with topic management privileges can see it.
    • B
      baluderbär last edited by baluderbär

      Hallo zusammen,
      aktuell lasse ich ein Skript laufen, um mir alle eingeschalteten Lichter (Homematic, Lichter über Shelly, Hue ...) mit Namen anzeigen zu lassen.

      var cacheSelectorwled = $('state[id=*.on](functions=Licht)[role=switch]');
      

      Bei wLED wird in den Objekten bei "on" die role=switch.light ausgegeben. Dadurch funktioniert der Teil des Skripts nicht.

      wLED.jpg

      Ich kann natürlich bei role es von switch.light auf switch händisch umstellen, was allerdings umständlich ist, wenn es sich nach einem Reset wieder zurückstellt.
      Was muss ich im Code ändern, um es auf switch.light eingestellt lassen zu können?

      Der Versuch mit

      var cacheSelectorwled = $('state[id=*.on](functions=Licht)[role=switch.light]');
      

      klappte nicht.

      Sollten Infos fehlen bitte kurz melden.

      Schon mal tausend Dank und ein schönes Wochenende
      Lenus

      paul53 1 Reply Last reply Reply Quote 0
      • paul53
        paul53 @baluderbär last edited by paul53

        @baluderbär sagte: klappte nicht.

        Wird die Aufzählung "Licht" in der ID "enum.functions.Licht" genau so geschrieben?

        B 1 Reply Last reply Reply Quote 0
        • B
          baluderbär @paul53 last edited by

          @paul53
          Ja wLED_2.jpg

          paul53 1 Reply Last reply Reply Quote 0
          • paul53
            paul53 @baluderbär last edited by paul53

            @baluderbär sagte: Ja

            Dann sollte es so funktionieren.
            Was ergibt?

            log(cacheSelectorwled);
            
            B 1 Reply Last reply Reply Quote 0
            • B
              baluderbär @paul53 last edited by

              @paul53 ```
              javascript.0 (476) script.js.common.Servicemeldungen_Lichter_zählen: { '0': 'wled.0.40f5203efbxx.on', '1': 'wled.0.483fda4caaxx.on', '2': 'wled.0.500291da9fxx.on', '3': 'wled.0.98f4abbee4xx.on', '4': 'wled.0.c82b96207bxx.on', '5': 'wled.0.cc50e325d1xx.on', '6': 'wled.0.d8bfc0c030xx.on', '7': 'wled.0.e098069246xx.on', '8': 'wled.0.e868e789e9xx.on', '9': 'wled.0.f4cfa25d63xx.on', '10': 'wled.0.f4cfa266edxx.on', '11': 'wled.0.f4cfa26c0axx.on', '12': 'wled.0.f4cfa2da2cxx.on', '13': 'wled.0.fcf5c4a304xx.on', length: 14, each: [Function (anonymous)], getState: [Function (anonymous)], getStateAsync: [AsyncFunction (anonymous)], getBinaryState: [Function (anonymous)], getBinaryStateAsync: [Function (anonymous)], setState: [Function (anonymous)], setStateAsync: [AsyncFunction (anonymous)], setStateDelayed: [Function (anonymous)], setBinaryState: [Function (anonymous)], setBinaryStateAsync: [AsyncFunction (anonymous)], on: [Function (anonymous)], [Symbol(Symbol.iterator)]: [GeneratorFunction (anonymous)] }

              20:21:59.474 info javascript.0 (476) script.js.common.Servicemeldungen_Lichter_zählen: Text: EZ Lava,WZ Pineapple
              20:21:59.474 info javascript.0 (476) script.js.common.Servicemeldungen_Lichter_zählen: Anzahl Lichter: 31 # davon Lichter an: 2

              paul53 1 Reply Last reply Reply Quote 0
              • paul53
                paul53 @baluderbär last edited by paul53

                @baluderbär
                Der Selektor scheint nicht mehr richtig zu funktionieren, denn er enthält mehr als er sollte. Richtig müsste er so aussehen:

                { '0': 'wled.0.40f5203efbxx.on', '1': 'wled.0.483fda4caaxx.on', '2': 'wled.0.500291da9fxx.on', '3': 'wled.0.98f4abbee4xx.on', '4': 'wled.0.c82b96207bxx.on', '5': 'wled.0.cc50e325d1xx.on', '6': 'wled.0.d8bfc0c030xx.on', '7': 'wled.0.e098069246xx.on', '8': 'wled.0.e868e789e9xx.on', '9': 'wled.0.f4cfa25d63xx.on', '10': 'wled.0.f4cfa266edxx.on', '11': 'wled.0.f4cfa26c0axx.on', '12': 'wled.0.f4cfa2da2cxx.on', '13': 'wled.0.fcf5c4a304xx.on', length: 14}
                

                Habe Issue auf Github erstellt.

                haus-automatisierung 1 Reply Last reply Reply Quote 0
                • haus-automatisierung
                  haus-automatisierung Developer Most Active @paul53 last edited by

                  @paul53 sagte in wLED-Abfrage:

                  Der Selektor scheint nicht mehr richtig zu funktionieren, denn er enthält mehr als er sollte

                  Die Funktionen auf dem Ergebnis-Objekt gibt es aber schon seit über 6 Jahren. Siehe

                  https://github.com/ioBroker/ioBroker.javascript/blob/55cd5f7e670443383771ca4a54584da28e5baa1a/lib/sandbox.js#L923-L1074

                  Was ich in den aktuellen Versionen angepasst hatte, war die Art und Weise, wie Objekte im Log ausgegeben wurde. Ggf. wurde das vorher nur nie angezeigt. Existiert haben die Funktionen schon immer.

                  paul53 1 Reply Last reply Reply Quote 0
                  • paul53
                    paul53 @haus-automatisierung last edited by

                    @haus-automatisierung sagte: Was ich in den aktuellen Versionen angepasst hatte, war die Art und Weise, wie Objekte im Log ausgegeben wurde. Ggf. wurde das vorher nur nie angezeigt.

                    Dann ist das die beobachtete Änderung im Log des Objektes.

                    haus-automatisierung 1 Reply Last reply Reply Quote 0
                    • haus-automatisierung
                      haus-automatisierung Developer Most Active @paul53 last edited by haus-automatisierung

                      @paul53 sagte in wLED-Abfrage:

                      Dann ist das die beobachtete Änderung im Log des Objektes.

                      Welche jetzt korrekt ist, weil alles ausgegeben wird, was auch existiert (war vorher wohl nie jemandem aufgefallen).

                      Den Fehler probiere ich heute Abend mal zu reproduzieren. Der Selector-Code ist ja etwas... undurchsichtig. Da muss ich mich erstmal einlesen wie die Regeln aufeinander aufbauen.

                      paul53 2 Replies Last reply Reply Quote 0
                      • paul53
                        paul53 @haus-automatisierung last edited by

                        @haus-automatisierung sagte: Den Fehler probiere ich heute Abend mal zu reproduzieren. Der Selector-Code ist ja etwas... undurchsichtig.

                        Ich konnte den Fehler nicht reproduzieren: Bei mir funktioniert die Kombination von (functions=Licht) und [role=switch.light].

                        haus-automatisierung 1 Reply Last reply Reply Quote 1
                        • haus-automatisierung
                          haus-automatisierung Developer Most Active @paul53 last edited by

                          @paul53 sagte in wLED-Abfrage:

                          Bei mir funktioniert die Kombination von (functions=Licht) und [role=switch.light].

                          Auch mit der zusätzlichen Wildcard auf der Id?

                          paul53 1 Reply Last reply Reply Quote 0
                          • paul53
                            paul53 @haus-automatisierung last edited by paul53

                            @haus-automatisierung sagte: Auch mit der zusätzlichen Wildcard auf der Id?

                            const ids = $('*.on(functions=light)[role=switch.light]');
                            ids.each(function(id, i) {
                                log(id);
                            });
                            

                            funktioniert. Ebenso:

                            const ids = $('state[id=*.on](functions=light)[role=switch.light]');
                            ids.each(function(id, i) {
                                log(id);
                            });
                            
                            1 Reply Last reply Reply Quote 1
                            • paul53
                              paul53 @haus-automatisierung last edited by paul53

                              @haus-automatisierung sagte: Der Selector-Code ist ja etwas... undurchsichtig.

                              Laut der Log-Ausgabe funktioniert der $Selector auch bei @baluderbär.

                              @baluderbär Was ergibt im Log?

                              var cacheSelectorwled = $('state[id=*.on](functions=Licht)[role=switch.light]');
                              cacheSelectorwled.each(function(id, i) {
                                  log(id);
                              });
                              

                              Es müssten 14 IDs untereinander erscheinen.

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

                              Support us

                              ioBroker
                              Community Adapters
                              Donate

                              957
                              Online

                              31.9k
                              Users

                              80.1k
                              Topics

                              1.3m
                              Posts

                              3
                              13
                              662
                              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