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. Skripten / Logik
  4. JavaScript
  5. Alle Mitglieder einer Aufzählung schalten (gelöst)

NEWS

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    6
    1
    239

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    9
    1
    235

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    898

Alle Mitglieder einer Aufzählung schalten (gelöst)

Scheduled Pinned Locked Moved Solved JavaScript
30 Posts 7 Posters 3.2k Views 12 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.
  • bahnuhrB Online
    bahnuhrB Online
    bahnuhr
    Forum Testing Most Active
    wrote on last edited by
    #2

    Hallo,

    hier mal ein Script mit dem ich nachts alle Lichter (wenn sie an sind) 3 x blinken lassen und sie dann ausschalte.

    Vielleicht kannst du Scriptteile davon gebrauchen.

    
    // Licht/Dimmer nachts ausschalten und dabei 3x blinken
    
    
    function weiter() {
    
    var cacheSelectorState = $('channel[state.id=*.STATE](functions="Licht")'); 
    var cacheSelectorLevel = $('channel[state.id=*.LEVEL](functions="Licht")');
    
    cacheSelectorLevel.each(function (id, i) { 
        var name = getObject(id).common.name;
        var devicename = name.substring(0, name.indexOf(".LEVEL")); //.level aus Text entfernen
        var status = getState(id).val;     
        if (status > 0) {   // 3 x blinken
            setState(id, 0);
            setTimeout(function() {
                setState(id, status);  
            }, 2000);   
            setTimeout(function() {
                setState(id, 0);  
            }, 4000);   
            setTimeout(function() {
                setState(id, status);  
            }, 6000);   
            setTimeout(function() {
                setState(id, 0);  
            }, 8000);   
            setTimeout(function() {
                setState(id, status);  
            }, 10000);   
            setTimeout(function() {
                setState(id, 0);  
            }, 12000); 
        }
    });
    
    cacheSelectorState.each(function (id, i) { 
        var name = getObject(id).common.name;
        var devicename = name.substring(0, name.indexOf(".STATE")); //.state aus Text entfernen
        var status = getState(id).val;     
        if (status > 0) {      // 3 x blinken
            setState(id, false);
            setTimeout(function() {
                setState(id, true);  
            }, 2000);   
            setTimeout(function() {
                setState(id, false);  
            }, 4000);   
            setTimeout(function() {
                setState(id, true);  
            }, 6000);   
            setTimeout(function() {
                setState(id, false);  
            }, 8000);   
            setTimeout(function() {
                setState(id, true);  
            }, 10000);   
            setTimeout(function() {
                setState(id, false);  
            }, 12000); 
        }
    });
    
    }
    
    
    
    schedule("0 1,3,5,23 * * *", function () {
        weiter();
    });
    
    

    Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
    Danke.
    gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
    ScreenToGif :https://www.screentogif.com/downloads.html

    1 Reply Last reply
    0
    • OstfrieseUnterwegsO Offline
      OstfrieseUnterwegsO Offline
      OstfrieseUnterwegs
      wrote on last edited by
      #3

      Hast Du Dir mal den Scenes Adapter angeschaut? Der ist eigentlich für solche Aufgaben ideal.

      N 1 Reply Last reply
      0
      • OstfrieseUnterwegsO OstfrieseUnterwegs

        Hast Du Dir mal den Scenes Adapter angeschaut? Der ist eigentlich für solche Aufgaben ideal.

        N Offline
        N Offline
        NyanCat
        wrote on last edited by NyanCat
        #4

        @OstfrieseUnterwegs said in Alle Mitglieder einer Aufzählung schalten:

        Hast Du Dir mal den Scenes Adapter angeschaut? Der ist eigentlich für solche Aufgaben ideal.

        Ja das wäre meine Notlösung gewesen, ich hätte es über functions = light als einfacher erweiterbar empfunden.

        Die Lösung hier drunter funktioniert jedenfalls nicht:

        var cacheSelectorState;
        
        on({id: "javascript.0.scenes.general.lightAllOn", val: true}, function (obj) {
        cacheSelectorState = $('channel[state.id=*.STATE](functions="light")')
        cacheSelectorState.each(function (id, i) { 
                setState(id, true);
              });  
          console.log('Gesamtes Licht an');
        });
        // Button ALLE Mitglieder der Aufzählung function.light aus
        on({id: "javascript.0.scenes.general.lightAllOff", val: true}, function (obj) {
        cacheSelectorState = $('channel[state.id=*.STATE](functions="light")')
        cacheSelectorState.each(function (id, i) { 
                setState(id, true);
              });
          console.log('Gesamtes Licht aus');
        });
        

        Es passiert einfach nichts

        Bitte um Nachsicht: Bin ein hardcore Noob, was Coding angeht. Copy-Paste ist mein Freund.

        1 Reply Last reply
        0
        • bahnuhrB Online
          bahnuhrB Online
          bahnuhr
          Forum Testing Most Active
          wrote on last edited by
          #5

          auf den ersten Blick:

          wenn du aus schaltest, dann aber auch mit -> false


          Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
          Danke.
          gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
          ScreenToGif :https://www.screentogif.com/downloads.html

          N 1 Reply Last reply
          0
          • bahnuhrB Online
            bahnuhrB Online
            bahnuhr
            Forum Testing Most Active
            wrote on last edited by bahnuhr
            #6

            Das Gewerk heißt bei dir wirklich: "Light" ?

            Und zwar oben "light"
            und unten "Light"
            ??


            Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
            Danke.
            gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
            ScreenToGif :https://www.screentogif.com/downloads.html

            1 Reply Last reply
            0
            • bahnuhrB bahnuhr

              auf den ersten Blick:

              wenn du aus schaltest, dann aber auch mit -> false

              N Offline
              N Offline
              NyanCat
              wrote on last edited by
              #7

              @bahnuhr said in Alle Mitglieder einer Aufzählung schalten:

              auf den ersten Blick:

              wenn du aus schaltest, dann aber auch mit -> false

              haha ja, das war nur copy-paste, hatte erst mal nur probiert, ob an überhaupt geht (was nicht der Fall ist) ... wegen "light" und "Light" ... wo hast du denn "Light" entdeckt? also es sollte "light" sein, weil:

              "enum.functions.light","members":["sonoff.0.Sonoff_Basic_3.POWER","sonoff.0.Sonoff_Basic_5.POWER","sonoff.0.Sonoff_S20_1.POWER","sonoff.0.Sonoff_Touch_1.POWER","tradfri.0.L-65537.lightbulb.state","tradfri.0.L-65538.lightbulb.state"]
              

              da sind sie alle drin :-)

              Bitte um Nachsicht: Bin ein hardcore Noob, was Coding angeht. Copy-Paste ist mein Freund.

              paul53P 1 Reply Last reply
              0
              • bahnuhrB Online
                bahnuhrB Online
                bahnuhr
                Forum Testing Most Active
                wrote on last edited by bahnuhr
                #8

                habe dein Script bei mir probiert.
                Bei mir mit dem Gewerk "Licht" funktioniert es einwandfrei:

                var cacheSelectorState = $('channel[state.id=*.STATE](functions="Licht")')
                cacheSelectorState.each(function (id,i) { 
                    setState(id, true);
                });  
                  console.log('Gesamtes Licht an');
                
                

                6b7d6b1a-4086-419a-b607-6799b928b8c0-image.png


                Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
                Danke.
                gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
                ScreenToGif :https://www.screentogif.com/downloads.html

                1 Reply Last reply
                0
                • T Offline
                  T Offline
                  tempestas
                  wrote on last edited by
                  #9

                  Setz doch Mal setState("true") anstelle von setState(true).

                  In der Fehlermeldung steht doch, dass der sonoff einen String erwartet

                  <size="85">ioBroker | 21 Adapter | Ubuntu Server | intel NUC | Homematic CCU2 | Hue | Osram Lightify| Sonos | 2x Instar Cam | Samsung Tab A 2016 im Holzrahmen| 3x Echo dot | 1x Echo | Neato Botvac D5</size>

                  N 1 Reply Last reply
                  0
                  • N NyanCat

                    @bahnuhr said in Alle Mitglieder einer Aufzählung schalten:

                    auf den ersten Blick:

                    wenn du aus schaltest, dann aber auch mit -> false

                    haha ja, das war nur copy-paste, hatte erst mal nur probiert, ob an überhaupt geht (was nicht der Fall ist) ... wegen "light" und "Light" ... wo hast du denn "Light" entdeckt? also es sollte "light" sein, weil:

                    "enum.functions.light","members":["sonoff.0.Sonoff_Basic_3.POWER","sonoff.0.Sonoff_Basic_5.POWER","sonoff.0.Sonoff_S20_1.POWER","sonoff.0.Sonoff_Touch_1.POWER","tradfri.0.L-65537.lightbulb.state","tradfri.0.L-65538.lightbulb.state"]
                    

                    da sind sie alle drin :-)

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

                    @NyanCat sagte in Alle Mitglieder einer Aufzählung schalten:

                    da sind sie alle drin

                    Die IDs enden nicht mit .STATE, sondern mit .POWER und .state.

                    const Sonoff = $('state[id=*.POWER](functions="light")');
                    const Tadfri = $('state[id=*.state](functions="light")');
                    

                    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

                    N 1 Reply Last reply
                    0
                    • T tempestas

                      Setz doch Mal setState("true") anstelle von setState(true).

                      In der Fehlermeldung steht doch, dass der sonoff einen String erwartet

                      N Offline
                      N Offline
                      NyanCat
                      wrote on last edited by
                      #11

                      @tempestas said in Alle Mitglieder einer Aufzählung schalten:

                      Setz doch Mal setState("true") anstelle von setState(true).

                      In der Fehlermeldung steht doch, dass der sonoff einen String erwartet

                      Da passiert leider weiterhin nichts. Ich hab ja so ein bisschen das Gefühl, dass es etwas damit zu tun hat, dass ein paar Mitglieder mit .POWER enden und andere mit .state ... weil ich hatte mal eine Version, da gingen immerhin alle .POWER an, und zwar ohne Fehler. Aber die Tradfris halt nicht. (ich kann mich nur leider nicht mehr erinnern, was ich dafür genau geändert hatte)

                      // Button ALLE Mitglieder der Aufzählung function.light an
                      on({id: "javascript.0.scenes.general.lightAllOn", val: true}, function (obj) {
                        $('state(functions=light)').setState(true);
                        console.log('Gesamtes Licht an');
                      });
                      // Button ALLE Mitglieder der Aufzählung function.light aus
                      on({id: "javascript.0.scenes.general.lightAllOff", val: true}, function (obj) {
                        $('state(functions=light)').setState(false);
                        console.log('Gesamtes Licht aus');
                      });
                      

                      Das ist die Version, bei der ich mir den sonoff-Adapter mit den bekannten Fehlermeldungen abschieße. Es funktioniert zwar (also es wird einmal alles an- oder ausgeschaltet), aber danach ist der sonoff down.

                      Bitte um Nachsicht: Bin ein hardcore Noob, was Coding angeht. Copy-Paste ist mein Freund.

                      BBTownB 1 Reply Last reply
                      0
                      • paul53P paul53

                        @NyanCat sagte in Alle Mitglieder einer Aufzählung schalten:

                        da sind sie alle drin

                        Die IDs enden nicht mit .STATE, sondern mit .POWER und .state.

                        const Sonoff = $('state[id=*.POWER](functions="light")');
                        const Tadfri = $('state[id=*.state](functions="light")');
                        
                        N Offline
                        N Offline
                        NyanCat
                        wrote on last edited by
                        #12

                        @paul53 said in Alle Mitglieder einer Aufzählung schalten:

                        @NyanCat sagte in Alle Mitglieder einer Aufzählung schalten:

                        da sind sie alle drin

                        Die IDs enden nicht mit .STATE, sondern mit .POWER und .state.

                        const Sonoff = $('state[id=*.POWER](functions="light")');
                        const Tadfri = $('state[id=*.state](functions="light")');
                        

                        Ja in die Richtung hatte ich auch schon was probiert, probiere es aber nochmal. Kann man eigentlich auch irgendwie einer Variabel die ID's von beiden zuweisen, so dass ich keine 2 .each machen muss?

                        schon mal vielen Dank :-)

                        Bitte um Nachsicht: Bin ein hardcore Noob, was Coding angeht. Copy-Paste ist mein Freund.

                        paul53P 1 Reply Last reply
                        0
                        • N NyanCat

                          @paul53 said in Alle Mitglieder einer Aufzählung schalten:

                          @NyanCat sagte in Alle Mitglieder einer Aufzählung schalten:

                          da sind sie alle drin

                          Die IDs enden nicht mit .STATE, sondern mit .POWER und .state.

                          const Sonoff = $('state[id=*.POWER](functions="light")');
                          const Tadfri = $('state[id=*.state](functions="light")');
                          

                          Ja in die Richtung hatte ich auch schon was probiert, probiere es aber nochmal. Kann man eigentlich auch irgendwie einer Variabel die ID's von beiden zuweisen, so dass ich keine 2 .each machen muss?

                          schon mal vielen Dank :-)

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

                          @NyanCat sagte in Alle Mitglieder einer Aufzählung schalten:

                          Kann man eigentlich auch irgendwie einer Variabel die ID's von beiden zuweisen, so dass ich keine 2 .each machen muss?

                          Nein. Teste erst einmal, ob alle passenden IDs gefunden werden.

                          const Sonoff = $('state[id=*.POWER](functions="light")');
                          const Tadfri = $('state[id=*.state](functions="light")');
                          
                          Sonoff.each(function(id, i) {
                             log(id + ': ' + getState(id).val);
                          });
                          Tadfri.each(function(id, i) {
                             log(id + ': ' + getState(id).val);
                          });
                          

                          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
                          1
                          • N NyanCat

                            @tempestas said in Alle Mitglieder einer Aufzählung schalten:

                            Setz doch Mal setState("true") anstelle von setState(true).

                            In der Fehlermeldung steht doch, dass der sonoff einen String erwartet

                            Da passiert leider weiterhin nichts. Ich hab ja so ein bisschen das Gefühl, dass es etwas damit zu tun hat, dass ein paar Mitglieder mit .POWER enden und andere mit .state ... weil ich hatte mal eine Version, da gingen immerhin alle .POWER an, und zwar ohne Fehler. Aber die Tradfris halt nicht. (ich kann mich nur leider nicht mehr erinnern, was ich dafür genau geändert hatte)

                            // Button ALLE Mitglieder der Aufzählung function.light an
                            on({id: "javascript.0.scenes.general.lightAllOn", val: true}, function (obj) {
                              $('state(functions=light)').setState(true);
                              console.log('Gesamtes Licht an');
                            });
                            // Button ALLE Mitglieder der Aufzählung function.light aus
                            on({id: "javascript.0.scenes.general.lightAllOff", val: true}, function (obj) {
                              $('state(functions=light)').setState(false);
                              console.log('Gesamtes Licht aus');
                            });
                            

                            Das ist die Version, bei der ich mir den sonoff-Adapter mit den bekannten Fehlermeldungen abschieße. Es funktioniert zwar (also es wird einmal alles an- oder ausgeschaltet), aber danach ist der sonoff down.

                            BBTownB Offline
                            BBTownB Offline
                            BBTown
                            wrote on last edited by
                            #14

                            @NyanCat wie @paul53 bereits geschrieben hat:
                            ". STATE" ist nicht das gleiche wie ".state"

                            ioBroker auf NUC (VM debian v13 (Trixie ), node v22.22.2 npm v10.9.4, js-controller v7.1.1 jsonl/jsonl / HomeMatic CCU-2 (Wired und Funk) / Philips HUE / echo.DOT / Broadlink RM pro / SONOS

                            1 Reply Last reply
                            0
                            • N Offline
                              N Offline
                              NyanCat
                              wrote on last edited by NyanCat
                              #15
                              const enum_sonoff = $('state[id=*.POWER](functions="light")');
                              const enum_tradfri = $('state[id=*.state](functions="light")');
                              
                              on({id: "javascript.0.scenes.general.lightAllOn", val: true}, function (obj) {
                                enum_sonoff.each(function (id, i) {
                                      setState(id, true);
                                    });
                                enum_tradfri.each(function (id, i) {
                                      setState(id, true);
                                    });
                                console.log('Gesamtes Licht an');
                              });
                              

                              funktioniert (aus geht natürlich auch).

                              Dann erklärt sich auch warum ich den sonoff-Adapter abgeschossen habe mit unpassenden ID's. Die SetState's müssen also definitiv getrennt für unterschiedliche Endungen der Mitglieder gesetzt werden.

                              Vielen Dank an alle, das Problem ist somit gelöst.

                              Bitte um Nachsicht: Bin ein hardcore Noob, was Coding angeht. Copy-Paste ist mein Freund.

                              1 Reply Last reply
                              0
                              • smartboartS Offline
                                smartboartS Offline
                                smartboart
                                wrote on last edited by
                                #16

                                Hallo,
                                beim folgenden Selektor werden auch Geräte aufgeführt welche nicht dem Gewerk Licht zugeordnet sind.
                                var cacheSelectorState = $('channel[state.id=hm-rpc.0*.STATE](functions= Licht)');

                                zum Beispiel dieser hier... also Steckdose wird mit verarbeitet..
                                Unbenannt1.JPG

                                Fehler im Javascriptadapter ?

                                paul53P 1 Reply Last reply
                                0
                                • smartboartS smartboart

                                  Hallo,
                                  beim folgenden Selektor werden auch Geräte aufgeführt welche nicht dem Gewerk Licht zugeordnet sind.
                                  var cacheSelectorState = $('channel[state.id=hm-rpc.0*.STATE](functions= Licht)');

                                  zum Beispiel dieser hier... also Steckdose wird mit verarbeitet..
                                  Unbenannt1.JPG

                                  Fehler im Javascriptadapter ?

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

                                  @smartboart sagte:

                                  $('channel[state.id=hm-rpc.0*.STATE](functions= Licht)');

                                  Die Gewerke sind nicht Kanälen, sondern Datenpunkten zugeordnet. Versuche mal

                                  $('state[id=hm-rpc.0.*.STATE](functions=Licht)');
                                  

                                  In der ID enum.functions.Licht ist "Licht" groß geschrieben ?

                                  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

                                  smartboartS 1 Reply Last reply
                                  0
                                  • smartboartS Offline
                                    smartboartS Offline
                                    smartboart
                                    wrote on last edited by
                                    #18

                                    Hatte ich vorher.. Gleiches Verhalten!!!

                                    1 Reply Last reply
                                    0
                                    • paul53P paul53

                                      @smartboart sagte:

                                      $('channel[state.id=hm-rpc.0*.STATE](functions= Licht)');

                                      Die Gewerke sind nicht Kanälen, sondern Datenpunkten zugeordnet. Versuche mal

                                      $('state[id=hm-rpc.0.*.STATE](functions=Licht)');
                                      

                                      In der ID enum.functions.Licht ist "Licht" groß geschrieben ?

                                      smartboartS Offline
                                      smartboartS Offline
                                      smartboart
                                      wrote on last edited by smartboart
                                      #19

                                      @paul53 ja ist gross geschrieben..hab schon alle Varianten durch und getestet...
                                      Screenshot_20200213_210145_org.mozilla.firefox.jpg

                                      paul53P 1 Reply Last reply
                                      0
                                      • smartboartS smartboart

                                        @paul53 ja ist gross geschrieben..hab schon alle Varianten durch und getestet...
                                        Screenshot_20200213_210145_org.mozilla.firefox.jpg

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

                                        @smartboart sagte:

                                        hab schon alle Varianten durch und getestet...

                                        Welche Versionen haben ?

                                        • js-controller
                                        • Javascript-Adapter

                                        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

                                        smartboartS 1 Reply Last reply
                                        0
                                        • smartboartS Offline
                                          smartboartS Offline
                                          smartboart
                                          wrote on last edited by smartboart
                                          #21

                                          Hallo mein repo ist auf latest...

                                          Js-controller 2.2.9

                                          Javascript 4.4.2

                                          Ist aber schon länger so.. Habe jetzt erst nach unzähligen lösungsversuchen das Thema hier angesprochen..

                                          1 Reply Last reply
                                          0

                                          Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                          Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                          With your input, this post could be even better 💗

                                          Register Login
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          635

                                          Online

                                          32.8k

                                          Users

                                          82.8k

                                          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