Skip to content
  • 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
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JS setstate mehrere Objekte

NEWS

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.8k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.0k

JS setstate mehrere Objekte

Scheduled Pinned Locked Moved Skripten / Logik
8 Posts 5 Posters 1.2k Views
  • 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.
  • 0 Offline
    0 Offline
    0018
    wrote on last edited by
    #1

    Hallo,

    ich möchte gerne über setstate mehre Geräte auf einmal ein/aus schalten. Hierzu habe ich bereits die Variablen angelegt.

    var dev1 = Objekt1
    var dev2 = Objekt2
    var dev3 = Objekt3
    var dev4 = Objekt4
    
    

    jetzt möchte ich gerne über setstate alle 4 gleichzeitig auf true/false setzten, also quasi

    setState(dev1,true);
    setState(dev2,true);
    setState(dev3,true);
    setState(dev4,true);
    
    

    Gibt es eine Möglichkeit das ganze nur mit einem setState hin zu bekommen? Eventuell so in der Art?

    var dev1 = Objekt1
    var dev2 = Objekt2
    var dev3 = Objekt3
    var dev4 = Objekt4
    var all = [dev1,dev2,dev3,dev4]
    
    setState(all,true);
    
    

    Leider scheiterts da bei mir …..

    Mfg
    0018

    1 Reply Last reply
    0
    • apollon77A Online
      apollon77A Online
      apollon77
      wrote on last edited by
      #2

      Nein, diese Option gibt es nicht. Faktisch würde, falls es das gäbe, der Code die auch nur nacheinander abarbeiten. Hätte also keinen Vorteil

      Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

      • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
      • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
      1 Reply Last reply
      0
      • N Offline
        N Offline
        NightWatcher
        wrote on last edited by
        #3

        Du kannst dir doch eine Helperfunktion bauen, die dein Array durchläuft. Was anderes wäre es auch nicht, wenn Bluefox das nativ integrieren würde.

        So in der Art

        call:

        setObjectArr(arr);
        
        `function setObjectArr(arr)
        {
        	if(arr.length > 0)
        	{
        		for(var i=0;i<arr.length;i++) {/setstate(arr[i],true);/}/<e=""></arr.length;i++)>`
        
        Ungetestet und in dem Stadium würde er alles auf true setzen. Du kannst also keinen Parameter mit übergeben.[/i]
        

        Wago 750-881 - mit über 200 Ein- und Ausgängen, DMX512 Art-Net für Beleuchtung, 1-Wire für Umweltsensoren Aussen und Innen, ioBroker als Visualisierung

        1 Reply Last reply
        0
        • 0 Offline
          0 Offline
          0018
          wrote on last edited by
          #4

          Alles klar danke,

          ich habe das ganze jetzt in eine function gepackt, welche ich dann mehrfach verwende und bei Bedarf muss ich dann nur einmal die function anpassen.

          So passt es auch 🙂

          Mfg
          0018

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

            Hallo, bin noch unerfahren mit scripte schreiben. Anpassen bekomme ich noch hin….

            Hat hier einer ein komplettes script um mit einer Taste 4 Aktoren zu schalten?

            Habe quasi 4 einzel bedienbare Ausgänge . jetzt möchte ich noch alle 4 gleichzeitig mit einem button einschalten und ausschalten können.

            Habe das als Scene versucht, aber das dumme war, das die Rückmeldung für den Alles ein button schon true zeigte obwohl nur einzelen Ausgänge gesetzt waren. Ich möchte damit einen 4CH Sonoff / Tasmota swich bedienen.

            Für etwas Hilfe wäre ich dankbar...

            1 Reply Last reply
            0
            • paul53P Offline
              paul53P Offline
              paul53
              wrote on last edited by
              #6

              @smartboart:

              jetzt möchte ich noch alle 4 gleichzeitig mit einem button einschalten und ausschalten können. `
              Toggle mit einer Taste oder getrennte Tasten für Aus und Ein ?

              Zustandsanzeige Aus/Ein in einem extra Datenpunkt für VIS ?

              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
              • smartboartS Offline
                smartboartS Offline
                smartboart
                wrote on last edited by
                #7

                Ja eine Taste für aus und ein aller 4 channnel inkl. einer Rückmeldung für aus und ein aber nur wenn alle 4 Channel true oder false sind..

                1 Reply Last reply
                0
                • paul53P Offline
                  paul53P Offline
                  paul53
                  wrote on last edited by
                  #8

                  Vorschlag:

                  const id1 = '...'; // ID Ausgang 1
                  const id2 = '...'; // ID Ausgang 2
                  const id3 = '...'; // ID Ausgang 3
                  const id4 = '...'; // ID Ausgang 4
                  const idButton = '...';
                  const idVis = '...'; // ID Zustandsanzeige
                  
                  var out1 = getState(id1).val;
                  var out2 = getState(id2).val;
                  var out3 = getState(id3).val;
                  var out4 = getState(id4).val;
                  var toggle = getState(idVis).val;
                  
                  function zustand() {
                     if(out1 && out2 && out3 && out4) toggle = true;
                     else if (!out1 && !out2 && !out3 && !out4)  toggle = false;
                     setState(idVis, toggle, true);
                  }
                  
                  on({id: idbutton}, function() {
                     var out = !toggle;
                     setState(id1, out);
                     setState(id2, out);
                     setState(id3, out);
                     setState(id4, out);
                  });
                  
                  on(id1, function(dp) {
                     out1 = dp.state.val;
                     zustand();
                  });
                  on(id2, function(dp) {
                     out2 = dp.state.val;
                     zustand();
                  });
                  on(id3, function(dp) {
                     out3 = dp.state.val;
                     zustand();
                  });
                  on(id4, function(dp) {
                     out4 = dp.state.val;
                     zustand();
                  });
                  
                  

                  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
                  Reply
                  • Reply as topic
                  Log in to reply
                  • Oldest to Newest
                  • Newest to Oldest
                  • Most Votes


                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  603

                  Online

                  32.4k

                  Users

                  81.4k

                  Topics

                  1.3m

                  Posts
                  Community
                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                  ioBroker Community 2014-2025
                  logo
                  • Login

                  • Don't have an account? Register

                  • Login or register to search.
                  • First post
                    Last post
                  0
                  • Recent
                  • Tags
                  • Unread 0
                  • Categories
                  • Unreplied
                  • Popular
                  • GitHub
                  • Docu
                  • Hilfe