NEWS
[gelöst] Frage zur Klammersetzung beim Script
-
Hallo!
Ziel des Script ist es, per Virtuellem Taster Netflix auf dem TV aufzurufen und das Licht zu dimmen.
Es funktioniert aber ich glaube kaum, das es so richtig geschrieben ist.
Am Ende habe ich 11 geschwungene Klammern.
Wie fasst man das besser zusammen?
// //################# Schalter ###################### on({id: "hm-rpc.0.BidCoS-RF.20.PRESS_SHORT", val: true, ack: true}, function() //################# Licht ###################### //Wohnzimmer { timeout = setTimeout(function () {setState("hm-rpc.0.OEQ0368258.1.LEVEL", 30); }, 1000); //Balken { timeout = setTimeout(function () {setState("hm-rpc.0.OEQ0368172.1.LEVEL", 30); }, 3000); //Esszimmer { timeout = setTimeout(function () {setState("hm-rpc.0.OEQ0368419.1.LEVEL", 0); }, 3000); //################# TV Steuerung ###################### { timeout = setTimeout(function () {setState("bosesoundtouch.0.on", true); }, 1000); { timeout = setTimeout(function () {setState("samsung.0.Input.Source", true); }, 8000); { timeout = setTimeout(function () {setState("samsung.0.Navigation.Down", true); }, 10000); { timeout = setTimeout(function () {setState("samsung.0.Navigation.Right", true); }, 11000); { timeout = setTimeout(function () {setState("samsung.0.Navigation.Right", true); }, 12000); { timeout = setTimeout(function () {setState("samsung.0.Navigation.Right", true); }, 13000); { timeout = setTimeout(function () {setState("samsung.0.Navigation.Right", true); }, 14000); { timeout = setTimeout(function () {setState("samsung.0.Navigation.Enter", true); }, 16000); }}}}}}}}}}});
-
Wie fasst man das besser zusammen? `
Etwa so.//################# Taster ###################### on({id: "hm-rpc.0.BidCoS-RF.20.PRESS_SHORT"}, function() { //################# Licht ###################### //Wohnzimmer setTimeout(function () { setState("hm-rpc.0.OEQ0368258.1.LEVEL", 30); }, 1000); //Balken setTimeout(function () { setState("hm-rpc.0.OEQ0368172.1.LEVEL", 30); }, 3000); //Esszimmer setTimeout(function () { setState("hm-rpc.0.OEQ0368419.1.LEVEL", 0); }, 3000); //################# TV Steuerung ###################### setTimeout(function () { setState("bosesoundtouch.0.on", true); }, 1000); setTimeout(function () { setState("samsung.0.Input.Source", true); }, 8000); setTimeout(function () { setState("samsung.0.Navigation.Down", true); }, 10000); setTimeout(function () { setState("samsung.0.Navigation.Right", true); }, 11000); setTimeout(function () { setState("samsung.0.Navigation.Right", true); }, 12000); setTimeout(function () { setState("samsung.0.Navigation.Right", true); }, 13000); setTimeout(function () { setState("samsung.0.Navigation.Right", true); }, 14000); setTimeout(function () { setState("samsung.0.Navigation.Enter", true); }, 16000); });
-
Also einfach { timeout = weglassen.
und vor setTimeout muss keine {
Wieder etwas gelernt! Vielen Dank!
-
-
Das ginge aber auch einfacher mit
setStateDelayed(ID,true,1000);
-
Wieder etwas gelernt! Vielen Dank! `
Und ich würde mir das richtige Einrücken des Code angewöhnen.
Dadurch ist es deutlich besser zu lesen und zu verstehen.
-
Wieder etwas gelernt! Vielen Dank! `
Und ich würde mir das richtige Einrücken des Code angewöhnen.
Dadurch ist es deutlich besser zu lesen und zu verstehen. `
Mit "richtig" eingerückt, ist gemeint, dass am anfang keine Klammer o.Ä steht und alles in einer Linie steht?Und wäre der Code so richtig?
setStateDelayed(ID,true,1000); { setState("hm-rpc.0.OEQ0368258.1.LEVEL", 30); }
Tut mir leid für die vielen blöden Fragen. Stehe noch ganz am Anfang.
-
Mit "richtig" eingerückt, ist gemeint, dass am anfang keine Klammer o.Ä steht und alles in einer Linie steht? `
Nein, Einrückung meint, dass der Code, der zu einer Funktion gehört (innerhalb von geschweifeten Klammern steht) nach rechts gerückt wird. Beispiel Funktion:setTimeout(function () { setState("hm-rpc.0.OEQ0368258.1.LEVEL", 30); }, 1000);
oder Anweisungsblock:
if(a > b) { Anweisung1; Anweisung2; }
Und wäre der Code so richtig? `
Nein, die geschweiften Klammern sind überflüssig (verwirren eher).Geschweifte Klammern verwendet man für Beginn / Ende eines Funktionskörpers oder für Beginn / Ende eines Anweisungsblockes (mehrere Anweisungen hintereinander im gleichen Kontext).