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

  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.2k

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

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

JS setstate mehrere Objekte

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
8 Beiträge 5 Kommentatoren 1.2k Aufrufe
  • Ä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.
  • 0 Offline
    0 Offline
    0018
    schrieb am zuletzt editiert von
    #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 Antwort Letzte Antwort
    0
    • apollon77A Offline
      apollon77A Offline
      apollon77
      schrieb am zuletzt editiert von
      #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 Antwort Letzte Antwort
      0
      • N Offline
        N Offline
        NightWatcher
        schrieb am zuletzt editiert von
        #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 Antwort Letzte Antwort
        0
        • 0 Offline
          0 Offline
          0018
          schrieb am zuletzt editiert von
          #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 Antwort Letzte Antwort
          0
          • smartboartS Offline
            smartboartS Offline
            smartboart
            schrieb am zuletzt editiert von
            #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 Antwort Letzte Antwort
            0
            • paul53P Offline
              paul53P Offline
              paul53
              schrieb am zuletzt editiert von
              #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 Antwort Letzte Antwort
              0
              • smartboartS Offline
                smartboartS Offline
                smartboart
                schrieb am zuletzt editiert von
                #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 Antwort Letzte Antwort
                0
                • paul53P Offline
                  paul53P Offline
                  paul53
                  schrieb am zuletzt editiert von
                  #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 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

                  633

                  Online

                  32.4k

                  Benutzer

                  81.4k

                  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