Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Array durchlaufen und Inhalt erweitern?

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Array durchlaufen und Inhalt erweitern?

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

      Hallo zusammen,

      vermutlich für die Profis eine doofe Frage :oops: aber wie kann ich

      var lights = [
          "hue.0.Philips_hue.Wohnzimmer", 
          "hue.0.Philips_hue.Teich",
          ];
      
      

      durchlaufen und in folgenden Code einbauen? Hier muss ich dann ja jedes Item mit .command, .level, etc. erweitern.

      function fadeIN10to80(transTime){
          log("Funktion: fadeIN10to80()");
      
          // transTime kommt mit Minuten, also transTime *60 / 0.1 = fadeTime
          // da es zu schnell dunkel wird nur die halbe Zeit nehmen
          var fadeTime = transTime * 60 / 0.1 / 2;
      
          // Command leeren
          setState("hue.0.Philips_hue.Wohnzimmer.command"/*Philips_hue.Wohnzimmer.command*/,"{}");
      
          // Lampen anschalten ( command greift sonst nicht )
          setState("hue.0.Philips_hue.Wohnzimmer.on"/*Philips_hue.Wohnzimmer.on*/,true);
      
          // Initial level auf 10% setzen
          setState("hue.0.Philips_hue.Wohnzimmer.level"/*Philips_hue.Wohnzimmer.level*/,10);
      
          // 3 Sekunden warten, dann command ausfühen ( klappt nicht direkt nach einschalten )
          setTimeout(function() {
              var com = "{\"on\":true,\"level\":80,\"transitiontime\":" + fadeTime + "}";
              setState("hue.0.Philips_hue.Wohnzimmer.command"/*Philips_hue.Wohnzimmer.command*/,com);
          },3000);
      }
      
      
      function CheckStatus(){
          // Wenn Lampe aus
          if (getState("hue.0.Philips_hue.Wohnzimmer.on").val === false ){
              // Wenn restl. Zeit bis Sonneuntergang ( zwischen 2 und 0 Minuten )
              if(sunsetrest <= 2 && sunsetrest >=0){
                  log("Sonnenuntergang beginnt");
                  // dann führe function fadeINto80() aus
                  fadeIN10to80(Time1_2);
              // sonst tue nichts.
              } else {
                  log("Nothing to do. Sonnenuntergang in " + sunsetrest + " Minuten");
              }
          }
          // sonst tue nichts.
          else {
                  log("Nothing to do. Lampenstatus: " + getState("hue.0.Philips_hue.Wohnzimmer.on").val);
          }
      }
      

      So vielleicht?

      function fadeIN10to80(transTime){
          log("Funktion: fadeIN10to80()");
      
          // transTime kommt mit Minuten, also transTime *60 / 0.1 = fadeTime
          // da es zu schnell dunkel wird nur die halbe Zeit nehmen
          var fadeTime = transTime * 60 / 0.1 / 2;
          lights.forEach(function(element) {
              // Command leeren
             setState(element +".command","{}");
      
             // Lampen anschalten ( command greift sonst nicht )
             setState(element +".on",true);
      
             // Initial level auf 10% setzen
             setState(element+".level",10);
      
             // 3 Sekunden warten, dann command ausfühen ( klappt nicht direkt nach einschalten )
             setTimeout(function() {
             var com = "{\"on\":true,\"level\":80,\"transitiontime\":" + fadeTime + "}";
             setState(element+".command",com);
             },3000);
          });
      }
      
      function CheckStatus(){
      
        lights.forEach(function(element) {
            // Wenn Lampe aus
            if (getState(element+".on").val === false ){
                // Wenn restl. Zeit bis Sonneuntergang ( zwischen 2 und 0 Minuten )
                if(sunsetrest <= 2 && sunsetrest >=0){
                    log("Sonnenuntergang beginnt");
                    // dann führe function fadeINto80() aus
                    fadeIN10to80(Time1_2);
                // sonst tue nichts.
                } else {
                    log("Nothing to do. Sonnenuntergang in " + sunsetrest + " Minuten");
                }
            }
            // sonst tue nichts.
            else {
                    log("Nothing to do. Lampenstatus: " + getState(element+".on").val);
            }
          });
      }
      
      1 Reply Last reply Reply Quote 0
      • C
        CyberMicha last edited by

        Erledigt 🙂

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

        Support us

        ioBroker
        Community Adapters
        Donate

        759
        Online

        31.7k
        Users

        79.8k
        Topics

        1.3m
        Posts

        1
        2
        542
        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