Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Vorlage Skript Ambient Light im Badezimmer, Lichtfarbe abhängig von der Tageszeit bei Bewegung einschalten.

    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

    Vorlage Skript Ambient Light im Badezimmer, Lichtfarbe abhängig von der Tageszeit bei Bewegung einschalten.

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

      Hallo Leute, renoviere gerade mein Badezimmer. Habe dabei schon kilometerweise Kabel verlegt um alles so smart wie möglich zu machen...Aktuell arbeite ich an einem Skript, welches abhängig von der Tageszeit bei Bewegung den Verstärker des LED Kontroler einschaltet und die Lichtfarbe regelt.
      Soweit alles kein Thema, Gedanken mache ich mir gerade nur über die Lichtfarbe zu bestimmten Uhrzeiten...Also nachts mal aufs Klo, welche Lichtfarbe um nicht gleich glockenhell wach zu sein, oder abends vorm Schlafen gehen, angenehme beruihgende Lichtfarbe, morgens zum wachwerden was aktivierendes, was dir aber nicht gleich in die Fres...haut.
      Und ausserdem hat das schonmal jemand umgesetzt ...Muss ja das Rad nicht neu erfinden wenn es so ist..
      Ansonsten wäre ich für ein paar Farbbeispiele für die rgbw Settings dankbar...
      Vlt. ist ja jemand interessiert. Wenn ich fertig bin, kann ich das skript gerne teilen...

      /* Skript für RGBW Steuerunung Tageszeitabhängig nach Astro bei  Bewegung für z.B 
      Ambientbeleuchtung im Bad , wie in dieser Vorlage
      von Smartboart 29.04.2019
      V 0.0.1
      */
      // State zum Ein und Ausschalten der für den Betrieb notwendigen Aktoren. Bei Änderung unten anpassen
      createState ('javascript.0.InnenbereichMotion.LEDAktoren_Bad', {def: 'false', type: 'boolean', name: 'Alle Aktoren für RGBW Betrieb ein'});
      
      //Einstellung State Bewegungsmelder hier eintragen
      const idMotion ='sonoff.0.Aktor_4CH_Bad.POWER4'/*Bewegungsmelder Bad*/
      // Einstellungen States für Schaltaktor 12V und Verstärker . State für Aktoren zum Einschalten des Verstärker falls vorhanden.
      const id12V ='sonoff.0.Aktor_4CH_Bad.POWER2'/*12V Netzteil Bad*/
      const idRGBWReceiver='sonoff.0.Aktor_4CH_Bad.POWER3'/*RGBW Verstaerker Bad*/
      //Einstellungen States für RGBW Controller. Hier die Kanäle des Controller eintragen
      const idCH1 ='sonoff.0.RGBWStripe_Bad.Channel1'/*RGBWStripe Bad  Channel1*/;
      const idCH2 ='sonoff.0.RGBWStripe_Bad.Channel2'/*RGBWStripe Bad  Channel2*/;
      const idCH3 ='sonoff.0.RGBWStripe_Bad.Channel3'/*RGBWStripe Bad  Channel3*/;
      const idCH4 ='sonoff.0.RGBWStripe_Bad.Channel4'/*RGBWStripe Bad  Channel4*/;
      // Einstellung des Einschaltstate des RGBW Controller hier eintragen
      const idLEDon ='sonoff.0.RGBWStripe_Bad.POWER'/*RGBWStripe Bad POWER*/;
      // Konstante für den Betrieb aller Aktoren . Hier oben erstellten State apassen wenn nicht wie oben erstellt
      const idBetrieb = 'javascript.0.InnenbereichMotion.LEDAktoren_Bad';
      
      
      // Einstellungen Variablen für Zeitfenster
      var Morgen = null;
      var Tag = null;
      var Abend = null;
      var Nacht = null;
      
      // Variablen für log
      
      var logging = true;
      var debug = true;
      
      // Variable Merker für Anwesenheit im Bad
      
      var merker = false;
      
      // Variable für Prüfung ob noch jemand im Bad ist
      
      var Timeout = 900*1000;
      
      // Erstellung der Zeitfenster nach Astro
      
      schedule({astro: "sunrise"}, function () {//Sonnenaufgang
      var Morgen = true;
      var Nacht = false;
      var Abend = false;
      var Tag = false;
      Morgenprogramm();
        if(debug)log('Bad Trigger sunrise aktiv');
      });
      
      schedule({astro: "sunset"}, function () {//Sonnenaufgang
      var Morgen = false;
      var Nacht = false;
      var Abend = true;
      var Tag = false;
      Abendprogramm();
        if(debug)log('Bad Trigger sunset / Abend aktiv');
      });
      
      schedule({astro: "dusk"}, function () {//Sonnenaufgang
      var Morgen = false;
      var Nacht = true;
      var Abend = false;
      var Tag = false;
      Nachtprogramm();
        if(debug)log('Bad Trigger dusk / Nacht aktiv');
      });
      
      schedule({astro: "sunriseEnd"}, function () {//Sonnenaufgang
      var Morgen = false;
      var Nacht = false;
      var Abend = false;
      var Tag = true;
      Tagprogramm();
        if(debug)log('Bad Trigger sunriseEnd / Tag aktiv');
      });
      
      // Einstellung der Programmparameter Morgen
      function Morgenprogramm(){
          setState(idCH1,100);
          setState(idCH2,100);
          setState(idCH3,100);
          setState(idCH4,100);
      }    
      
      // Einstellung der Programmparameter Abend
      function Abendprogramm(){
          setState(idCH1,100);
          setState(idCH2,100);
          setState(idCH3,100);
          setState(idCH4,100);
      }  
      
      // Einstellung der Programmparameter Nacht
      function Nachtprogramm(){
          setState(idCH1,100);
          setState(idCH2,100);
          setState(idCH3,100);
          setState(idCH4,100);
      }
      
      // Einstellung der Programmparameter Tag
      function Tagprogramm(){
          setState(idCH1,100);
          setState(idCH2,100);
          setState(idCH3,100);
          setState(idCH4,100);
      }
      
      // Einschalten der Netzteile und RGBW Controller bei Bewegung.
      
      
      function AktorenEin() {
      if (logging)log('Bewegung Relais Bad angezogen oder abgefallen');    
      var motion = getState(idMotion).val; // Bewegung Bad
      var Ein = getState(idBetrieb).val; // Aktoren Ein ?
          if (motion === true && merker === false){
              setState(idBetrieb, true);
              merker=true;
              if(logging)log('LED Bad ein bei Bewegung');
             }else{
                  if((motion === true && merker === true && Ein === true)){
                  clearStateDelayed(idBetrieb);
                  if (debug) log(' Timeout LED zum Ausschalten wurde wegen erneuter Bewegung zurück gesetzt');
                  }else{
                      if(merker === true && motion === false && Ein === true){
                      setStateDelayed(idBetrieb, false, Timeout); // Timeout bei welcher ohne Bewegung wieder ausgeschaltet wird
                      if (debug) log('LED Bad  wird nach Ablauf der Zeit ohne erneute Bewegung ausgeschaltet');
              
                  } 
              }
          }   
      }
      
      function BetriebStarten() {
          var Status = getState(idBetrieb).val;
          if(Status=== true){
              setState(idLEDon,true);
              setState(id12V,true);
              setState(idRGBWReceiver,true);
                  }else{
                      setState(idLEDon,false);
                      setState(id12V,false);
                      setState(idRGBWReceiver,false);
          }       
      }
      
      
      // Skriptstart
      AktorenEin();
      BetriebStarten();
      
      // Trigger zum Steuern des State für alle Aktoren
      on(idMotion,function(obj) {
          AktorenEin();
          if (debug)log('Trigger Bewegung Relais true oder false Bad');
      }); 
      
      // Trigger zum zurück setzen des Merker 
      on({id:'idMotion', val: false, change: 'ne'},function(obj) {
          merker=false;
          if (logging) log('Trigger LED Bad nach Timeout ausgeschaltet');
      });
      
      // Trigger zum Starten der Funktion Betrieb
      on(idBetrieb,function(obj) {
          BetriebStarten();
          if (debug)log('Trigger zum Starten und Stoppen des Betrieb aller Aktoren aktiv');
      }); 
      
      
      dslraser 1 Reply Last reply Reply Quote 0
      • dslraser
        dslraser Forum Testing Most Active @smartboart last edited by

        @smartboart
        Ich nutze HUE. Da stelle ich einfach Szenen nach Uhrzeiten ein.

        So z.B.

        Bildschirmfoto 2019-04-29 um 10.32.19.png

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

          Hallo, danke für den Beitrag...ich arbeite nicht mit Blockly, nur mit Javascript...Hue habe ich / kenne ich leider nicht...Sind dort Farbthemes für Uhrzeiten hinterlegt? oder müssen die Farben dort auch eingestellt werden... Mich würde die speziell die Farben zu den Uhrzeiten interssieren.
          also die Einstellungen der Channnel oder eben als Farbcode (Beispiel #000000)..

          dslraser 1 Reply Last reply Reply Quote 0
          • dslraser
            dslraser Forum Testing Most Active @smartboart last edited by

            @smartboart
            Man kann in der HUE App jede Farbe als Szene anlegen und per Script auslesen. Dies steht dann alles in ioBroker zur Verfügung.
            Alternativ kann man auch per Blockly (Java Script sicher auch, nutze ich aber wenig) über command Befehle einstellen. Dir HUE Adapter stellt diesen Datenpunkt für alle Leuchtmittel zur Verfügung.

            HUE Datenpunkte:

            Bildschirmfoto 2019-04-29 um 10.47.16.png

            Leider hast Du noch nichts zu Deinem "System" geschrieben...? (also was für LED, welche Adapter/Datenpunkte stehen zur Verfügung...)

            smartboart 1 Reply Last reply Reply Quote 0
            • smartboart
              smartboart @dslraser last edited by smartboart

              @dslraser
              ja, ich arbeite mit nem geflashten rgbw controller.
              im Prinzip kann ich hier mit allen Parameteren arbeiten...
              mit channel werten, oder eben Hue Werten oder auch mit rgbw farben selbst. auch mit rgbw werten wie #000000.funktioniert das....das ist alles soweit klar...
              mich interssieren eher die Farbbeispiele als die Umsetzung...
              Unbenannt.PNG

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

                kann natürlich auch mit dem rgb widget spielen und mir ein paar angenehme Lichtfarben einfach notieren... ist halt ein bisschen aufwand...

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

                  So hier nun das Script dazu ....die Einstellungen zur Lichtfarbe sind noch mit Standartparameter gefüllt.
                  Kann hier erst welche eintragen wenn ich sie ermitteln konnte. Die Renovierung ist noch nicht abgeschlossen.
                  Vlt. hat ja jemand Interesse daran.. Oder es hat einer Verbesserungswünsche / Vorschläge oder einfach nur Wünsche zur Erweiterung...

                  /* Skript für RGBW Steuerunung Tageszeitabhängig nach Astro bei  Bewegung für z.B 
                  Ambientbeleuchtung im Bad , wie in dieser Vorlage
                  von Smartboart 29.04.2019
                  V 0.0.1
                  */
                  // State zum Ein und Ausschalten der für den Betrieb notwendigen Aktoren. Bei Änderung unten anpassen
                  createState ('javascript.0.InnenbereichMotion.LEDAktoren_Bad', {def: 'false', type: 'boolean', name: 'Alle Aktoren für RGBW Betrieb ein'});
                  
                  //Einstellung State Bewegungsmelder hier eintragen
                  const idMotion ='sonoff.0.Aktor_4CH_Bad.POWER4'/*Bewegungsmelder Bad*/
                  // Einstellungen States für Schaltaktor 12V und Verstärker . State für Aktoren zum Einschalten des Verstärker falls vorhanden.
                  const id12V ='sonoff.0.Aktor_4CH_Bad.POWER2'/*12V Netzteil Bad*/
                  const idRGBWReceiver='sonoff.0.Aktor_4CH_Bad.POWER3'/*RGBW Verstaerker Bad*/
                  //Einstellungen States für RGBW Controller. Hier die Kanäle des Controller eintragen
                  const idCH1 ='sonoff.0.RGBWStripe_Bad.Channel1'/*RGBWStripe Bad  Channel1*/;
                  const idCH2 ='sonoff.0.RGBWStripe_Bad.Channel2'/*RGBWStripe Bad  Channel2*/;
                  const idCH3 ='sonoff.0.RGBWStripe_Bad.Channel3'/*RGBWStripe Bad  Channel3*/;
                  const idCH4 ='sonoff.0.RGBWStripe_Bad.Channel4'/*RGBWStripe Bad  Channel4*/;
                  // Einstellung des Einschaltstate des RGBW Controller hier eintragen
                  const idLEDon ='sonoff.0.RGBWStripe_Bad.POWER'/*RGBWStripe Bad POWER*/;
                  // Konstante für den Betrieb aller Aktoren . Hier oben erstellten State apassen wenn nicht wie oben erstellt
                  const idBetrieb = 'javascript.0.InnenbereichMotion.LEDAktoren_Bad';
                  
                  
                  // Einstellungen Variablen für Zeitfenster
                  var Morgen = null;
                  var Tag = null;
                  var Abend = null;
                  var Nacht = null;
                  
                  // Variablen für log
                  
                  var logging = true;
                  var debug = true;
                  
                  // Variable Merker für Anwesenheit im Bad
                  
                  var merker = false;
                  
                  // Variable für Prüfung ob noch jemand im Bad ist
                  
                  var Timeout = 900*1000;
                  
                  // Erstellung der Zeitfenster nach Astro
                  
                  schedule({astro: "sunrise"}, function () {//Sonnenaufgang
                  var Morgen = true;
                  var Nacht = false;
                  var Abend = false;
                  var Tag = false;
                  Morgenprogramm();
                    if(debug)log('Bad Trigger sunrise aktiv');
                  });
                  
                  schedule({astro: "sunset"}, function () {//Sonnenaufgang
                  var Morgen = false;
                  var Nacht = false;
                  var Abend = true;
                  var Tag = false;
                  Abendprogramm();
                    if(debug)log('Bad Trigger sunset / Abend aktiv');
                  });
                  
                  schedule({astro: "dusk"}, function () {//Sonnenaufgang
                  var Morgen = false;
                  var Nacht = true;
                  var Abend = false;
                  var Tag = false;
                  Nachtprogramm();
                    if(debug)log('Bad Trigger dusk / Nacht aktiv');
                  });
                  
                  schedule({astro: "sunriseEnd"}, function () {//Sonnenaufgang
                  var Morgen = false;
                  var Nacht = false;
                  var Abend = false;
                  var Tag = true;
                  Tagprogramm();
                    if(debug)log('Bad Trigger sunriseEnd / Tag aktiv');
                  });
                  
                  // Einstellung der Programmparameter Morgen
                  function Morgenprogramm(){
                      setState(idCH1,100);
                      setState(idCH2,100);
                      setState(idCH3,100);
                      setState(idCH4,100);
                  }    
                  
                  // Einstellung der Programmparameter Abend
                  function Abendprogramm(){
                      setState(idCH1,100);
                      setState(idCH2,100);
                      setState(idCH3,100);
                      setState(idCH4,100);
                  }  
                  
                  // Einstellung der Programmparameter Nacht
                  function Nachtprogramm(){
                      setState(idCH1,100);
                      setState(idCH2,100);
                      setState(idCH3,100);
                      setState(idCH4,100);
                  }
                  
                  // Einstellung der Programmparameter Tag
                  function Tagprogramm(){
                      setState(idCH1,100);
                      setState(idCH2,100);
                      setState(idCH3,100);
                      setState(idCH4,100);
                  }
                  
                  // Einschalten der Netzteile und RGBW Controller bei Bewegung.
                  
                  
                  function AktorenEin() {
                  if (logging)log('Bewegung Relais Bad angezogen oder abgefallen');    
                  var motion = getState(idMotion).val; // Bewegung Bad
                  var Ein = getState(idBetrieb).val; // Aktoren Ein ?
                      if (motion === true && merker === false){
                          setState(idBetrieb, true);
                          merker=true;
                          if(logging)log('LED Bad ein bei Bewegung');
                         }else{
                              if((motion === true && merker === true && Ein === true)){
                              clearStateDelayed(idBetrieb);
                              if (debug) log(' Timeout LED zum Ausschalten wurde wegen erneuter Bewegung zurück gesetzt');
                              }else{
                                  if(merker === true && motion === false && Ein === true){
                                  setStateDelayed(idBetrieb, false, Timeout); // Timeout bei welcher ohne Bewegung wieder ausgeschaltet wird
                                  if (debug) log('LED Bad  wird nach Ablauf der Zeit ohne erneute Bewegung ausgeschaltet');
                          
                              } 
                          }
                      }   
                  }
                  
                  function BetriebStarten() {
                      var Status = getState(idBetrieb).val;
                      if(Status=== true){
                          setState(idLEDon,true);
                          setState(id12V,true);
                          setState(idRGBWReceiver,true);
                              }else{
                                  setState(idLEDon,false);
                                  setState(id12V,false);
                                  setState(idRGBWReceiver,false);
                      }       
                  }
                  
                  
                  // Skriptstart
                  AktorenEin();
                  BetriebStarten();
                  
                  // Trigger zum Steuern des State für alle Aktoren
                  on(idMotion,function(obj) {
                      AktorenEin();
                      if (debug)log('Trigger Bewegung Relais true oder false Bad');
                  }); 
                  
                  // Trigger zum zurück setzen des Merker 
                  on({id:'idMotion', val: false, change: 'ne'},function(obj) {
                      merker=false;
                      if (logging) log('Trigger LED Bad nach Timeout ausgeschaltet');
                  });
                  
                  // Trigger zum Starten der Funktion Betrieb
                  on(idBetrieb,function(obj) {
                      BetriebStarten();
                      if (debug)log('Trigger zum Starten und Stoppen des Betrieb aller Aktoren aktiv');
                  }); 
                  
                  
                  
                  1 Reply Last reply Reply Quote 0
                  • smartboart
                    smartboart last edited by smartboart

                    Script nun mit Auto und manuell umschaltung und diverser Änderungen...Sowie fallback auf aktuelle Lichtfarbe / Tageszeit nach umschaltung von manuell auf Auto.

                    /* Skript für RGBW Steuerunung Tageszeitabhängig nach Astro bei  Bewegung für z.B 
                    Ambientbeleuchtung im Bad , wie in dieser Vorlage
                    von Smartboart 29.04.2019
                    V 0.0.2
                    */
                    // State zum Ein und Ausschalten der für den Betrieb notwendigen Aktoren. Bei Änderung unten anpassen
                    createState ('javascript.0.InnenbereichMotion.RGBW.LEDAktoren_Bad', {def: 'false', type: 'boolean', name: 'Alle Aktoren für RGBW Betrieb ein'});
                    createState ('javascript.0.InnenbereichMotion.RGBW.LEDAktorenAutomatik_Bad', {def: 'false', type: 'boolean', name: 'RGBW Betrieb Automatik'});
                    createState ('javascript.0.InnenbereichMotion.RGBW.LEDAktorenManuelEin', {def: 'false', type: 'boolean', name: 'RGBW Betrieb Manuell einschalten'});
                    
                    //Einstellung State Bewegungsmelder hier eintragen
                    const idMotion ='sonoff.0.Aktor_4CH_Bad.POWER4'/*Bewegungsmelder Bad*/
                    // Einstellungen States für Schaltaktor 12V und Verstärker . State für Aktoren zum Einschalten des Verstärker falls vorhanden.
                    const id12V ='sonoff.0.Aktor_4CH_Bad.POWER2'/*12V Netzteil Bad*/
                    const idRGBWReceiver='sonoff.0.Aktor_4CH_Bad.POWER3'/*RGBW Verstaerker Bad*/
                    //Einstellungen States für RGBW Controller. Hier die Kanäle des Controller eintragen
                    const idCH1 ='sonoff.0.RGBWStripe_Bad.Channel1'/*RGBWStripe Bad  Channel1*/;
                    const idCH2 ='sonoff.0.RGBWStripe_Bad.Channel2'/*RGBWStripe Bad  Channel2*/;
                    const idCH3 ='sonoff.0.RGBWStripe_Bad.Channel3'/*RGBWStripe Bad  Channel3*/;
                    const idCH4 ='sonoff.0.RGBWStripe_Bad.Channel4'/*RGBWStripe Bad  Channel4*/;
                    // Einstellung des Einschaltstate des RGBW Controller hier eintragen
                    const idLEDon ='sonoff.0.RGBWStripe_Bad.POWER'/*RGBWStripe Bad POWER*/;
                    // Konstante für den Betrieb aller Aktoren . Hier oben erstellten State apassen wenn nicht wie oben erstellt
                    const idBetrieb = 'javascript.0.InnenbereichMotion.RGBW.LEDAktoren_Bad';
                    // Konstante für Automatikbetrieb zur Aktivierung Deaktivierung in Vis
                    const idAutomatik = 'javascript.0.InnenbereichMotion.RGBW.LEDAktorenAutomatik_Bad';
                    // Konstante für Aktoren manuell einschalten
                    const idManuellEin = 'javascript.0.InnenbereichMotion.RGBW.LEDAktorenManuelEin';
                    
                    // Variablen für log
                    
                    var logging = false;
                    var debug = false;
                    
                    // Variable Merker für Anwesenheit im Bad
                    
                    var merker = false;
                    
                    // Variable für Prüfung ob noch jemand im Bad ist
                    
                    var Timeout = 180*1000;
                    
                    // Variable für Tageszeiten zur aktivierung bei Umschaltung von Manuell auf Automatik
                    
                    var Morgen = false;
                    var  Abend = false;
                    var Nacht = false;
                    var Tag = true;
                    
                    // Erstellung der Zeitfenster nach Astro
                    
                    schedule({astro: "sunrise"}, function () {//Sonnenaufgang
                    Morgenprogramm();
                    Morgen = true;
                    Abend = false;
                    Nacht = false;
                    Tag = false;
                      if(debug)log('Bad Trigger sunrise aktiv');
                    });
                    
                    schedule({astro: "sunset"}, function () {//Sonnenaufgang
                    Abendprogramm();
                    Morgen = false;
                    Abend = true;
                    Nacht = false;
                    Tag = false;
                      if(debug)log('Bad Trigger sunset / Abend aktiv');
                    });
                    
                    schedule({astro: "dusk"}, function () {//Sonnenaufgang
                    Nachtprogramm();
                    Morgen = false;
                    Abend = false;
                    Nacht = true;
                    Tag = false;
                      if(debug)log('Bad Trigger dusk / Nacht aktiv');
                    });
                    
                    schedule({astro: "sunriseEnd"}, function () {//Sonnenaufgang
                    Tagprogramm();
                    Morgen = false;
                    Abend = false;
                    Nacht = false;
                    Tag = true;
                      if(debug)log('Bad Trigger sunriseEnd / Tag aktiv');
                    });
                    
                    // Einstellung der Programmparameter Morgen
                    function Morgenprogramm(){
                    var Automatik = getState(idAutomatik).val;//Vorwahl Automatik in Vis
                    if(Automatik){
                        setState(idCH1,28);
                        setState(idCH2,100);
                        setState(idCH3,42);
                        setState(idCH4,0);
                    }    
                    }
                    
                    // Einstellung der Programmparameter Abend
                    function Abendprogramm(){
                    var Automatik = getState(idAutomatik).val;//Vorwahl Automatik in Vis
                    if(Automatik){    
                        setState(idCH1,63);
                        setState(idCH2,100);
                        setState(idCH3,27);
                        setState(idCH4,0);
                    }  
                    }
                    
                    // Einstellung der Programmparameter Nacht
                    function Nachtprogramm(){
                    var Automatik = getState(idAutomatik).val;//Vorwahl Automatik in Vis
                    if(Automatik){    
                        setState(idCH1,29);
                        setState(idCH2,9);
                        setState(idCH3,0);
                        setState(idCH4,0);
                    }
                    }
                    
                    // Einstellung der Programmparameter Tag
                    function Tagprogramm(){
                    var Automatik = getState(idAutomatik).val;//Vorwahl Automatik in Vis
                    if(Automatik){    
                        setState(idCH1,18);
                        setState(idCH2,61);
                        setState(idCH3,49);
                        setState(idCH4,0);
                    }
                    }
                    
                    // Einschalten der Netzteile und RGBW Controller bei Bewegung.
                    
                    
                    function AktorenEin() {
                    if (logging)log('Bewegung Relais Bad angezogen oder abgefallen');    
                    var motion = getState(idMotion).val; // Bewegung Bad
                    var Ein = getState(idBetrieb).val; // Aktoren Ein ?
                    var Automatik = getState(idAutomatik).val;//Vorwahl Automatik in Vis
                        if (Automatik === true && motion === true && merker === false){
                            setState(idBetrieb, true);
                            merker=true;
                            if(logging)log('LED Bad ein bei Bewegung');
                           }else{
                                if(Automatik === true && motion === true && merker === true && Ein === true){
                                clearStateDelayed(idBetrieb);
                                if (debug) log(' Timeout LED zum Ausschalten wurde wegen erneuter Bewegung zurück gesetzt');
                                }else{
                                    if(Automatik === true && merker === true && motion === false && Ein === true){
                                    setStateDelayed(idBetrieb, false, Timeout); // Timeout bei welcher ohne Bewegung wieder ausgeschaltet wird
                                    if (debug) log('LED Bad  wird nach Ablauf der Zeit ohne erneute Bewegung ausgeschaltet');
                            
                                } 
                            }
                        }   
                    }
                    
                    function BetriebStarten() {
                        var Status = getState(idBetrieb).val;
                        var Automatik = getState(idAutomatik).val;//Vorwahl Automatik in Vis
                        if(Automatik === true && Status=== true){
                            if (debug) log('LED Bad Aktoren ein');
                            setState(idLEDon,true);
                            setState(id12V,true);
                            setState(idRGBWReceiver,true);
                                }else{
                                    if(Automatik === true && Status=== false){
                                    if (debug) log('LED Bad Aktoren aus');
                                    setState(idLEDon,false);
                                    setState(id12V,false);
                                    setState(idRGBWReceiver,false);
                                    merker = false;
                            }        
                        }       
                    }
                    
                    function BetriebManuellStarten() {
                        var ManuellEin = getState(idManuellEin).val;
                        if(ManuellEin){
                            if (debug) log('LED Bad Aktoren Manuell ein');
                            setState(idAutomatik,false);
                            setStateDelayed(idCH1,63,500);
                            setStateDelayed(idCH2,100,500);
                            setStateDelayed(idCH3,27,500);
                            setStateDelayed(idCH4,0,500);
                            setStateDelayed(idLEDon,true,1*1000);
                            setStateDelayed(id12V,true,1*1000);
                            setStateDelayed(idRGBWReceiver,true,1*1000);
                                }else{
                                    if (debug) log('LED Bad Aktoren Manuell aus');
                                    setState(idLEDon,false);
                                    setState(id12V,false);
                                    setState(idRGBWReceiver,false);
                                    merker = false;       
                        }       
                    }
                    
                    function AktorenAus() {
                    var Automatik = getState(idAutomatik).val;//Vorwahl Automatik in Vis
                        if(Automatik === false){
                        if (debug) log('LED Bad Aktoren aus wegen Abwahl Automatik');
                        setState(idBetrieb, false);
                        setState(idLEDon,false);
                        setState(id12V,false);
                        setState(idRGBWReceiver,false);
                        merker = false;
                        }else{
                            setState(idManuellEin,false);  
                            if(Nacht) Nachtprogramm();
                            if(Abend) Abendprogramm(); 
                            if(Morgen) Morgenprogramm(); 
                            if(Tag) Tagprogramm();
                        }
                    }
                    // Skriptstart
                    AktorenEin();
                    BetriebStarten();
                    
                    // Trigger zum Steuern des State für alle Aktoren
                    on(idMotion,function(obj) {
                        AktorenEin();
                        if (debug)log('Trigger Bewegung Relais true oder false Bad');
                    }); 
                    
                    // Trigger zum zurück setzen des Merker 
                    on({id:'idMotion', val: false, change: 'ne'},function(obj) {
                        merker=false;
                        if (logging) log('Trigger LED Bad nach Timeout ausgeschaltet');
                    });
                    
                    // Trigger zum Starten der Funktion Betrieb
                    on(idBetrieb,function(obj) {
                        BetriebStarten();
                        if (debug)log('Trigger zum Starten und Stoppen des Betrieb aller Aktoren aktiv');
                    }); 
                    
                    // Trigger Automatik Vorwahl
                    on(idAutomatik,function(obj) {
                        AktorenAus();
                        if (debug)log('Trigger Automatik aktiv');
                    }); 
                    
                    // Trigger Manuell Vorwahl
                    on(idManuellEin,function(obj) {
                        BetriebManuellStarten();
                        if (debug)log('Trigger Manuell ein');
                    }); 
                    
                    sigi234 1 Reply Last reply Reply Quote 0
                    • sigi234
                      sigi234 Forum Testing Most Active @smartboart last edited by sigi234

                      @smartboart

                      Cool, kann ich das auch für Hue Led Stripes nehmen?

                      Mich irritiert ein wenig das:

                      const idCH1 ='sonoff.0.RGBWStripe_Bad.Channel1'/RGBWStripe Bad Channel1/;..
                      Ersetzen mit welchen Hue Datenpunkte?
                      ...

                      (Philips Hue LightStrip+ Basis Set (ohne Bridge), 2m, flexibel erweiterbar, dimmbar, bis zu 16 Millionen Farben, steuerbar via App, kompatibel mit Amazon Alexa (Echo, Echo Dot) [Energieklasse A])

                      smartboart 1 Reply Last reply Reply Quote 0
                      • smartboart
                        smartboart @sigi234 last edited by smartboart

                        @sigi234 habe keine hue Datenpunkte, deshalb weiß ich nicht wie die aussehen.
                        Im Prinzip sind die Channel in meinem Script die Farben selbst...also RGBW
                        CH 1 Rot
                        CH2 Gruen
                        CH3 Blau
                        CH 4 Weiß

                        Denke Huhe stellt diese Datenpunkte auch zur Verfügung..Kannst ja mal einen Screenshot der Datenpunkte machen

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        926
                        Online

                        31.9k
                        Users

                        80.1k
                        Topics

                        1.3m
                        Posts

                        3
                        10
                        755
                        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