Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [gelöst] Frage zur Klammersetzung beim Script

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [gelöst] Frage zur Klammersetzung beim Script

    This topic has been deleted. Only users with topic management privileges can see it.
    • J
      Jankb89 last edited by

      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);
      
      }}}}}}}}}}});
      
      
      1 Reply Last reply Reply Quote 0
      • paul53
        paul53 last edited by

        @Jankb89:

        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);
        });
        
        
        1 Reply Last reply Reply Quote 0
        • J
          Jankb89 last edited by

          Also einfach { timeout = weglassen.

          und vor setTimeout muss keine {

          Wieder etwas gelernt! Vielen Dank!

          1 Reply Last reply Reply Quote 0
          • paul53
            paul53 last edited by

            @Jankb89:

            und vor setTimeout muss keine { `
            Nein, sonst erfordert es die vielen } am Ende.
            @Jankb89:

            Wieder etwas gelernt! `
            Dann markiere bitte das Thema im Betreff des ersten Beitrags als [geklärt].

            1 Reply Last reply Reply Quote 0
            • cash
              cash Most Active last edited by

              Das ginge aber auch einfacher mit

              setStateDelayed(ID,true,1000);
              
              1 Reply Last reply Reply Quote 0
              • htrecksler
                htrecksler Forum Testing last edited by

                @Jankb89:

                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.

                1 Reply Last reply Reply Quote 0
                • J
                  Jankb89 last edited by

                  @htrecksler:

                  @Jankb89:

                  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.

                  1 Reply Last reply Reply Quote 0
                  • paul53
                    paul53 last edited by

                    @Jankb89:

                    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;
                    }
                    

                    @Jankb89:

                    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).

                    1 Reply Last reply Reply Quote 0
                    • First post
                      Last post

                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    542
                    Online

                    31.7k
                    Users

                    79.8k
                    Topics

                    1.3m
                    Posts

                    4
                    8
                    460
                    Loading More Posts
                    • Oldest to Newest
                    • Newest to Oldest
                    • Most Votes
                    Reply
                    • Reply as topic
                    Log in to reply
                    Community
                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                    The ioBroker Community 2014-2023
                    logo