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); }); -
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).
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden