NEWS
JS setstate mehrere Objekte
-
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 …..
-
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
-
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]
-
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
-
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...
-
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 ?
-
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..
-
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(); });