Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [gelöst] Rollo Script / Wie kann ich das Script kürzen?

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    [gelöst] Rollo Script / Wie kann ich das Script kürzen?

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

      Hallo zusammen,

      ich versuche mich gerade an meinem Rollo Sonnenschutz Script.

      An einer stelle habe ich folgende Function:

      function hochOst (Anwesenheit){
          var timer = 0;
          if (Anwesenheit === "anwesend") {
              if(getState(idRGaesteBad).val !== 100){setStateDelayed(idRGaesteBad,100,timer);timer = timer + 2000;}
              if(getState(idRArbeitenFenster).val !== 100){setStateDelayed(idRArbeitenFenster,100,timer);timer = timer + 2000;}
              if(getState(idRBad).val !== 100){setStateDelayed(idRBad,100,timer);timer = timer + 2000;}
              if(getState(idRLenn).val !== 100){setStateDelayed(idRLenn,100,timer);timer = timer + 2000;} 
      
          }
          if (Anwesenheit === "abwesend")
          {
              if(getState(idRGaesteBad).val !== 100 && getState(idKGaesteBad).val === false){setStateDelayed(idRGaesteBad,100,timer);timer = timer + 2000;}
              if(getState(idRArbeitenFenster).val !== 100 && getState(idKArbeitenFenster).val === false){setStateDelayed(idRArbeitenFenster,100,timer);timer = timer + 2000;}
              if(getState(idRBad).val !== 100 && getState(idKBad).val === 0){setStateDelayed(idRBad,100,timer);timer = timer + 2000;}
              if(getState(idRLenn).val !== 100 && getState(idKLenn).val === 0){setStateDelayed(idRLenn,100,timer);timer = timer + 2000;}
      
          }
          setState(idStatusOst,false);
          setState(idTimerOst,false);  
      }
      

      Also in Abhängigkeit der Abwesenheit soll noch der Fensterkontakt abgefragt werden.

      Jetzt die Frage an die Experten: Habt Ihr noch Idee wie man das alles kürzer scripten kann ?

      Gruß

      Michael

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

        So ?

        var rollosR = [idRGaesteBad, idRArbeitenFenster, idRBad, idRLenn];
        var rollosK = [idKGaesteBad, idKArbeitenFenster, idKBad, idKLenn];
        function hochOst(Anwesenheit){
            var timer = 0;
            if (Anwesenheit === "anwesend") {
        		for (var r = 0; r < rollosR.length; r++) {
        			if (getState(rollosR[r]).val !== 100) setStateDelayed(rollosR[r], 100, (timer += 2000));
        		}        
            } else
            if (Anwesenheit === "abwesend") {
        		for (var r = 0; r < rollosR.length; r++) {
        			if (getState(rollosR[r]).val !== 100 && !getState(rollosK[r]).val === false) setStateDelayed(rollosR[r], 100, (timer += 2000));
        		}                
            }
            setState(idStatusOst, false);
            setState(idTimerOst,  false);  
        }
        
        1 Reply Last reply Reply Quote 0
        • M
          mctom last edited by

          Danke funktioniert super.

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

          Support us

          ioBroker
          Community Adapters
          Donate

          861
          Online

          31.9k
          Users

          80.2k
          Topics

          1.3m
          Posts

          2
          3
          916
          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