Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [Vorlage] Zeitschaltuhr mit 4 Zyklen ein aus einstellbar in vis inkl. Astro und manuell auto umschaltung

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [Vorlage] Zeitschaltuhr mit 4 Zyklen ein aus einstellbar in vis inkl. Astro und manuell auto umschaltung

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

      Hallo Leute habe pünktlich zu Weihnacheten mal ein Script gebastelt um eine Zeitschaltuhr mit täglichen Schaltungen und 4 Zyklen / mögliche Zeiten zum ein und ausschalten sowie umschalten zwischen Automatik ( Zeitschaltuhr ) und manuel ein aus sowie Astro Nachtschaltung umschaltbar realisiert.

      die 4 einstellbaren Zyklen sind dann täglich aktiv…Einzelne Wochentage sind nicht einstellbar..Dafür reichts noch nicht.

      Die Zyklen können leicht noch erweitert werden falls wer mehr wie 4 braucht...

      Mit der Vorwahl der Zyklen sind dann die Entsprechenden Zeiten auch aktiv oder eben nicht. Es werden dann auch nur die einstellbaren Zeiten in vis angezeigt, welche in vis vorgewählt werden.

      Eine Änderung der Zeiten setzt den entsprechenden Schedule zurück und schaltet den Aktor aus um einen definierten Zustand zu haben.

      Es können egal welche Aktoren geschaltet werden. Einfach euren aktor im Script beim entsprechenden const Eintrag hinterlegen..

      Bei mir ist es eine steckdose für die Weihnachtsbeleuchtung..

      Falls jemand Interess hat...

      Sollten verbesserunegn oder Fehler korrieiert werden, könnt ihr das ja hier mitteilen und zur Verfügung stellen.

      Für Anregungen bin ich offen...

      6558_unbenannt12345.png

      Script

      6558_timer.js

      //Script Timer Vis Ein Aus Steckdose 1
      //States Allgemein für Vorwahl in Vis
      createState('javascript.1.Zeitsteuerung.Steckdose.OsramLightify_1.viewechsel', {def: 'false', type: 'boolean', name: 'Zeitschaltung Steckdose 1 oeffnen'});
      createState("javascript.1.Zeitsteuerung.Steckdose.OsramLightify_1.Vorwahl",{read: true,write: true,desc: "Vorwahl Anzahl Schaltzyklen,",type: "number", min:'1',max:'4',def:1});
      createState("javascript.1.Zeitsteuerung.Steckdose.OsramLightify_1.Automatik",false,{read: true,write: true,desc: "Vorwahl Automatik",type: "boolean"});
      createState("javascript.1.Zeitsteuerung.Steckdose.OsramLightify_1.Astro",false,{ read: true, write: true, desc: "Vorwahl Astro", type: "boolean"});
      //Einschalttrigger für Steckdose
      createState("javascript.1.Zeitsteuerung.Steckdose.OsramLightify_1.Zeitfenster",false,{read: true,write: true,desc: "Zeitfenster Osram Steckdose Lightify 1",type: "boolean"});
      //States für Zeiteingabe des 1\. Einschaltzyklus in Vis
      createState("javascript.1.Zeitsteuerung.Steckdose.OsramLightify_1.StundeEin1",{read: true,write: true,desc: "Zeiteingabe Stunden ein,",type: "number",min:'0', max:'24',def:19});
      createState("javascript.1.Zeitsteuerung.Steckdose.OsramLightify_1.MinuteEin1",{read: true,write: true,desc: "Zeiteingabe Minuten ein,",type: "number",min:'0', max:'60',def:5});
      createState("javascript.1.Zeitsteuerung.Steckdose.OsramLightify_1.StundeAus1",{read: true,write: true,desc: "Zeiteingabe Stunden aus,",type: "number",min:'0', max:'24',def:20});
      createState("javascript.1.Zeitsteuerung.Steckdose.OsramLightify_1.MinuteAus1",{read: true,write: true,desc: "Zeiteingabe Minuten aus,",type: "number",min:'0', max:'60',def:5});
      //States für Zeiteingabe des 2\. Einschaltzyklus in Vis
      createState("javascript.1.Zeitsteuerung.Steckdose.OsramLightify_1.StundeEin2",{read: true,write: true,desc: "Zeiteingabe Stunden ein,",type: "number",min:'0', max:'24',def:19});
      createState("javascript.1.Zeitsteuerung.Steckdose.OsramLightify_1.MinuteEin2",{read: true,write: true,desc: "Zeiteingabe Minuten ein,",type: "number",min:'0', max:'60',def:5});
      createState("javascript.1.Zeitsteuerung.Steckdose.OsramLightify_1.StundeAus2",{read: true,write: true,desc: "Zeiteingabe Stunden aus,",type: "number",min:'0', max:'24',def:20});
      createState("javascript.1.Zeitsteuerung.Steckdose.OsramLightify_1.MinuteAus2",{read: true,write: true,desc: "Zeiteingabe Minuten aus,",type: "number",min:'0', max:'60',def:5});
      //States für Zeiteingabe des 3\. Einschaltzyklus in Vis
      createState("javascript.1.Zeitsteuerung.Steckdose.OsramLightify_1.StundeEin3",{read: true,write: true,desc: "Zeiteingabe Stunden ein,",type: "number",min:'0', max:'24',def:19});
      createState("javascript.1.Zeitsteuerung.Steckdose.OsramLightify_1.MinuteEin3",{read: true,write: true,desc: "Zeiteingabe Minuten ein,",type: "number",min:'0', max:'60',def:5});
      createState("javascript.1.Zeitsteuerung.Steckdose.OsramLightify_1.StundeAus3",{read: true,write: true,desc: "Zeiteingabe Stunden aus,",type: "number",min:'0', max:'24',def:20});
      createState("javascript.1.Zeitsteuerung.Steckdose.OsramLightify_1.MinuteAus3",{read: true,write: true,desc: "Zeiteingabe Minuten aus,",type: "number",min:'0', max:'60',def:5});
      //States für Zeiteingabe des 4\. Einschaltzyklus in Vis
      createState("javascript.1.Zeitsteuerung.Steckdose.OsramLightify_1.StundeEin4",{read: true,write: true,desc: "Zeiteingabe Stunden ein,",type: "number",min:'0', max:'24',def:19});
      createState("javascript.1.Zeitsteuerung.Steckdose.OsramLightify_1.MinuteEin4",{read: true,write: true,desc: "Zeiteingabe Minuten ein,",type: "number",min:'0', max:'60',def:5});
      createState("javascript.1.Zeitsteuerung.Steckdose.OsramLightify_1.StundeAus4",{read: true,write: true,desc: "Zeiteingabe Stunden aus,",type: "number",min:'0', max:'24',def:20});
      createState("javascript.1.Zeitsteuerung.Steckdose.OsramLightify_1.MinuteAus4",{read: true,write: true,desc: "Zeiteingabe Minuten aus,",type: "number",min:'0', max:'60',def:5});
      
      //Logausgabe aktivieren deaktivieren
      var logging = true;
      //Timer Schedule 1\. Einschaltzyklus
      var TimerOnAus1 = null;
      var TimerOnEin1 = null;
      //Timer Schedule 2\. Einschaltzyklus
      var TimerOnAus2 = null;
      var TimerOnEin2 = null;
      //Timer Schedule 3\. Einschaltzyklus
      var TimerOnAus3 = null;
      var TimerOnEin3 = null;
      //Timer Schedule 4\. Einschaltzyklus
      var TimerOnAus4 = null;
      var TimerOnEin4 = null;
      
      //Konstanten ids zu den oben angelegten States
      const id0   ="javascript.1.Zeitsteuerung.Steckdose.OsramLightify_1.Vorwahl";//Vorwahl Anzahl Zyklen Steckdose ein aus
      const id1   ="javascript.1.Zeitsteuerung.Steckdose.OsramLightify_1.Zeitfenster";//Trigger für Steckdose einschalten
      const id2   ="javascript.1.Zeitsteuerung.Steckdose.OsramLightify_1.Automatik";//Automatik Vorwahl für Zyklen oder Astor aktiv
      const id3   ="javascript.1.Zeitsteuerung.Steckdose.OsramLightify_1.Astro";//Astrozeit aktiv
      const id4   ="zigbee.0.84182600000b343c.state";//Steckdose eintragen
      //Konstanten Zeiteingabe 1\. Zyklus
      const id15	="javascript.1.Zeitsteuerung.Steckdose.OsramLightify_1.StundeEin1";//Verstellung 1.Zyklus Stunde Ein
      const id16	="javascript.1.Zeitsteuerung.Steckdose.OsramLightify_1.MinuteEin1";//Verstellung 1.Zyklus Minute Ein
      const id17   ="javascript.1.Zeitsteuerung.Steckdose.OsramLightify_1.StundeAus1";//Verstellung 1.Zyklus Stunde Aus
      const id18   ="javascript.1.Zeitsteuerung.Steckdose.OsramLightify_1.MinuteAus1";//Verstellung 1.Zyklus Minute Aus
      //Konstanten Zeiteingabe 2\. Zyklus
      const id25	="javascript.1.Zeitsteuerung.Steckdose.OsramLightify_1.StundeEin2";//Verstellung 2.Zyklus Stunde Ein
      const id26	="javascript.1.Zeitsteuerung.Steckdose.OsramLightify_1.MinuteEin2";//Verstellung 2.Zyklus Minute Ein
      const id27   ="javascript.1.Zeitsteuerung.Steckdose.OsramLightify_1.StundeAus2";//Verstellung 2.Zyklus Stunde Aus
      const id28   ="javascript.1.Zeitsteuerung.Steckdose.OsramLightify_1.MinuteAus2";//Verstellung 2.Zyklus Minute Aus
      //Konstanten Zeiteingabe 3\. Zyklus
      const id35	="javascript.1.Zeitsteuerung.Steckdose.OsramLightify_1.StundeEin3";//Verstellung 2.Zyklus Stunde Ein
      const id36	="javascript.1.Zeitsteuerung.Steckdose.OsramLightify_1.MinuteEin3";//Verstellung 2.Zyklus Minute Ein
      const id37   ="javascript.1.Zeitsteuerung.Steckdose.OsramLightify_1.StundeAus3";//Verstellung 2.Zyklus Stunde Aus
      const id38   ="javascript.1.Zeitsteuerung.Steckdose.OsramLightify_1.MinuteAus3";//Verstellung 2.Zyklus Minute Aus
      //Konstanten Zeiteingabe 4\. Zyklus
      const id45	="javascript.1.Zeitsteuerung.Steckdose.OsramLightify_1.StundeEin4";//Verstellung 2.Zyklus Stunde Ein
      const id46	="javascript.1.Zeitsteuerung.Steckdose.OsramLightify_1.MinuteEin4";//Verstellung 2.Zyklus Minute Ein
      const id47   ="javascript.1.Zeitsteuerung.Steckdose.OsramLightify_1.StundeAus4";//Verstellung 2.Zyklus Stunde Aus
      const id48   ="javascript.1.Zeitsteuerung.Steckdose.OsramLightify_1.MinuteAus4";//Verstellung 2.Zyklus Minute Aus
      
      //setzen der 1\. Einschaltzeit der Steckdose
      function TimerEin1() {     
      clearSchedule(TimerOnEin1);
      var Vorwahl = getState(id0).val;
      var	idTimerStundeEin1 = getState(id15).val;
      var idTimerMinuteEin1 = getState(id16).val;
      var AufZeitEin1 = idTimerMinuteEin1 + ' ' + idTimerStundeEin1 + ' * * *';
      if (logging) log("Timer Steckdose OsramLightify_1 Zeitfenster Ein Zyklus 1 geändert: " + AufZeitEin1); 
      	setState(id1, false);
      
      	TimerOnEin1 = schedule(AufZeitEin1, function(){
          if(Vorwahl>=1){
          setState(id1, true);
          if (logging) log('Zyklus 1 ein aktiv');
              }
          });
      }   
      // setzen der 1\. Ausschaltzeit der Steckdose 
      function TimerAus1() { 
      clearSchedule(TimerOnAus1);
      var Vorwahl = getState(id0).val;
      var	idTimerStundeAus1 = getState(id17).val;
      var idTimerMinuteAus1 = getState(id18).val;
      var AufZeitAus1 = idTimerMinuteAus1 + ' ' + idTimerStundeAus1 + ' * * *';
      	setState(id1, false);
          if (logging) log("Timer Steckdose OsramLightify_1 Zeitfenster Aus Zyklus 1 geändert: " + AufZeitAus1);    
      
          TimerOnAus1 = schedule(AufZeitAus1, function(){
          if(Vorwahl>=1){    
          setState(id1, false);
          if (logging) log('Zyklus 1 aus aktiv');
              } 
          });
      }
      
      //setzen der 2\. Einschaltzeit der Steckdose
      function TimerEin2() {      
      clearSchedule(TimerOnEin2);
      var Vorwahl = getState(id0).val;
      var	idTimerStundeEin2 = getState(id25).val;
      var idTimerMinuteEin2 = getState(id26).val;
      var AufZeitEin2 = idTimerMinuteEin2 + ' ' + idTimerStundeEin2 + ' * * *';
      	setState(id1, false);
          if (logging) log("Timer Steckdose OsramLightify_1 Zeitfenster Ein Zyklus 2 geändert: " + AufZeitEin2);    
      
          TimerOnEin2 = schedule(AufZeitEin2, function(){
          if(Vorwahl>=2){    
          setState(id1, true);
          if (logging) log('Zyklus 2 ein aktiv');
              }
          });
      }   
      // setzen der 2\. Ausschaltzeit der Steckdose 
      function TimerAus2() {    
      clearSchedule(TimerOnAus2);
      var Vorwahl = getState(id0).val;
      var	idTimerStundeAus2 = getState(id27).val;
      var idTimerMinuteAus2 = getState(id28).val;
      var AufZeitAus2 = idTimerMinuteAus2 + ' ' + idTimerStundeAus2 + ' * * *';
      	setState(id1, false);
          if (logging) log("Timer Steckdose OsramLightify_1 Zeitfenster Aus Zyklus 2 geändert: " + AufZeitAus2);    
      
          TimerOnAus2 = schedule(AufZeitAus2, function(){
          if(Vorwahl>=2){    
          setState(id1, false);
          if (logging) log('Zyklus 2 aus aktiv');
              }
          });
      }
      
      //setzen der 3\. Einschaltzeit der Steckdose
      function TimerEin3() {    
      clearSchedule(TimerOnEin3);
      var Vorwahl = getState(id0).val;
      var	idTimerStundeEin3 = getState(id35).val;
      var idTimerMinuteEin3 = getState(id36).val;
      var AufZeitEin3 = idTimerMinuteEin3 + ' ' + idTimerStundeEin3 + ' * * *';
      	setState(id1, false);
          if (logging) log("Timer Steckdose OsramLightify_1 Zeitfenster Ein Zyklus 3 geändert: " + AufZeitEin3);   
      
          TimerOnEin3 = schedule(AufZeitEin3, function(){
          if(Vorwahl>=3){    
          setState(id1, true);
          if (logging) log('Zyklus 3 ein aktiv');
              }
          });
      }
      
      // setzen der 3\. Ausschaltzeit der Steckdose 
      function TimerAus3() {  
      clearSchedule(TimerOnAus3);
      var Vorwahl = getState(id0).val;
      var	idTimerStundeAus3 = getState(id37).val;
      var idTimerMinuteAus3 = getState(id38).val;
      var AufZeitAus3 = idTimerMinuteAus3 + ' ' + idTimerStundeAus3 + ' * * *';
      	setState(id1, false);
          if (logging) log("Timer Steckdose OsramLightify_1 Zeitfenster Aus Zyklus 3 geändert: " + AufZeitAus3);    
      
          TimerOnAus3 = schedule(AufZeitAus3, function(){
          if (Vorwahl >= 3) {    
          setState(id1, false);
          if (logging) log('Zyklus 3 aus aktiv');
              }
          });
      }
      
      //setzen der 4\. Einschaltzeit der Steckdose
      function TimerEin4() {     
      clearSchedule(TimerOnEin4);
      var Vorwahl = getState(id0).val;
      var	idTimerStundeEin4 = getState(id45).val;
      var idTimerMinuteEin4 = getState(id46).val;
      var AufZeitEin4 = idTimerMinuteEin4 + ' ' + idTimerStundeEin4 + ' * * *';
      	setState(id1, false);
          if (logging) log("Timer Steckdose OsramLightify_1 Zeitfenster Ein Zyklus 4 geändert: " + AufZeitEin4);    
      
          TimerOnEin4 = schedule(AufZeitEin4, function(){
          if(Vorwahl>=4){    
          setState(id1, true);
          if (logging) log('Zyklus 4 ein aktiv');
              }
          });
      }   
      // setzen der 4\. Ausschaltzeit der Steckdose 
      function TimerAus4() {
      clearSchedule(TimerOnAus4);
      var Vorwahl = getState(id0).val;
      var	idTimerStundeAus4 = getState(id47).val;
      var idTimerMinuteAus4 = getState(id48).val;
      var AufZeitAus4 = idTimerMinuteAus4 + ' ' + idTimerStundeAus4 + ' * * *';
      	setState(id1, false);
          if (logging) log("Timer Steckdose OsramLightify_1 Zeitfenster Aus Zyklus 4 geändert: " + AufZeitAus4);    
      
          TimerOnAus4 = schedule(AufZeitAus4, function(){
          if(Vorwahl>=4){    
          setState(id1, false);
          if (logging) log('Zyklus 4 aus aktiv');
             }
          });
      }
      
      //Steckodes einschalten
      function TriggerSteckdose() { 
      var Zeitfenster = getState(id1).val;
      var Automatik = getState(id2).val;
      var Astro = getState(id3).val;
              if(Zeitfenster === true && Automatik === true && Astro === false){
          setState(id4,true);//Steckdose ein
          if(logging)log('Steckdose OsramLightify_1 eingeschaltet');
          }else{
          if(Zeitfenster === false && Automatik === true && Astro === false) {
              setState(id4,false);//Steckdose  aus
              if(logging)log('Steckdose OsramLightify_1 ausgeschaltet');
              }
          }
      }
      
      function Astroein() {
      var Zeitfenster = getState(id1).val;
      var Automatik = getState(id2).val;
      var Astro = getState(id3).val;
              if(Automatik === true  && Astro === true){
          setState(id4,true);//Steckdose ein
          if(logging)log('Steckdose OsramLightify_1 nach Astro eingeschaltet');
          }
      }
      
      function Astroaus() {
      var Zeitfenster = getState(id1).val;
      var Automatik = getState(id2).val;
      var Astro = getState(id3).val;
              if(Automatik === true  && Astro === true){
          setState(id4,false);//Steckdose aus
          if(logging)log('Steckdose OsramLightify_1 nach Astro ausgeschaltet');
          }
      }
      
      //script start Timer bei Scriptstart setzen
       TimerAus1();
       TimerAus2();
       TimerAus3();
       TimerAus4();
       TimerEin1();
       TimerEin2();
       TimerEin3();
       TimerEin4();
      
      //Trigger Anzahl der möglichen Schaltzyklen  
      on(id0, function(dp) { 
          if(logging)log("Trigger Vorwahl der möglichen Schalttzyklen geändert");
          var Vorwahl=getState(id0).val;
          if (Vorwahl===0){ 
       TimerAus1();
       TimerAus2();
       TimerAus3();
       TimerAus4();
       TimerEin1();
       TimerEin2();
       TimerEin3();
       TimerEin4();
      }else{
      if (Vorwahl===1){   
       //TimerAus1();
       TimerAus2();
       TimerAus3();
       TimerAus4();
       //TimerEin1();
       TimerEin2();
       TimerEin3();
       TimerEin4();
      }else{
          if (Vorwahl===2){   
       //TimerAus1();
       //TimerAus2();
       TimerAus3();
       TimerAus4();
       //TimerEin1();
       //TimerEin2();
       TimerEin3();
       TimerEin4();
      }else{
          if (Vorwahl===3){   
       //TimerAus1();
       //TimerAus2();
       //TimerAus3();
       TimerAus4();
       //TimerEin1();
       //TimerEin2();
       //TimerEin3();
       TimerEin4();
                  }
              }
          }
      }
      });
      
      //###################################################################
      
      //Trigger Zeitverstellung Einschaltzeit für Zyklus 1 Stunde
      on(id15, function(dp) {
      TimerEin1();
      if(logging)log("Trigger Stunde 1 ein");
      });
      
      //Trigger Zeitverstellung Einschaltzeit für Zyklus 1 Minute
      on(id16, function(dp) {
      TimerEin1();
      if(logging)log("Trigger Minute 1 ein");
      });
      
      //Trigger Zeitverstellung Ausschaltzeit für Zyklus 1 Stunde
      on(id17, function(dp) {
      TimerAus1();
      if(logging)log("Trigger Stunde 1 aus");
      });
      
      //Trigger Zeitverstellung Ausschaltzeit für Zyklus 1 Minute
      on(id18, function(dp) {   
      TimerAus1();
      if(logging)log("Trigger Minute 1 aus");
      });
      
      //#################################################################
      
      //Trigger Zeitverstellung Einschaltzeit für Zyklus 2 Stunde
      on(id25, function(dp) {
      TimerEin2();
      if(logging)log("Trigger Stunde 2 ein");
      });
      
      //Trigger Zeitverstellung Einschaltzeit für Zyklus 2 Minute
      on(id26, function(dp) {
      TimerEin2();
      if(logging)log("Trigger Minute 2 ein");
      });
      
      //Trigger Zeitverstellung Ausschaltzeit für Zyklus 2 Stunde
      on(id27, function(dp) {
      TimerAus2();
      if(logging)log("Trigger Stunde 2 aus");
      });
      
      //Trigger Zeitverstellung Ausnschaltzeit für Zyklus 2 Minute
      on(id28, function(dp) {   
      TimerAus2();
      if(logging)log("Trigger Minute 2 aus");
      });
      
      //#################################################################
      
      //Trigger Zeitverstellung Einschaltzeit für Zyklus 3 Stunde
      on(id35, function(dp) {
      TimerEin3();
      if(logging)log("Trigger Stunde 3 ein");
      });
      
      //Trigger Zeitverstellung Einschaltzeit für Zyklus 3 Minute
      on(id36, function(dp) {
      TimerEin3();
      if(logging)log("Trigger Minute 3 ein");
      });
      
      //Trigger Zeitverstellung Ausschaltzeit für Zyklus 3 Stunde
      on(id37, function(dp) {
      TimerAus3();
      if(logging)log("Trigger Stunde 3 aus");
      });
      
      //Trigger Zeitverstellung Ausnschaltzeit für Zyklus 3 Minute
      on(id38, function(dp) {   
      TimerAus3();
      if(logging)log("Trigger Minute 3 aus");
      });
      
      //#################################################################
      
      //Trigger Zeitverstellung Einschaltzeit für Zyklus 4 Stunde
      on(id45, function(dp) {
      TimerEin4();
      if(logging)log("Trigger Stunde 4 ein");
      });
      
      //Trigger Zeitverstellung Einschaltzeit für Zyklus 4 Minute
      on(id46, function(dp) {
      TimerEin4();
      if(logging)log("Trigger Minute 4 ein");
      });
      
      //Trigger Zeitverstellung Ausschaltzeit für Zyklus 4 Stunde
      on(id47, function(dp) {
      TimerAus4();
      if(logging)log("Trigger Stunde 4 aus");
      });
      
      //Trigger Zeitverstellung Ausnschaltzeit für Zyklus 4 Minute
      on(id48, function(dp) {   
      TimerAus4();
      if(logging)log("Trigger Minute 4 aus");
      });
      
      //################################################################
      
      //Trigger für Steckdose einschalten und ausschalten
      //on(id1, function(dp) {
      on({id:"javascript.1.Zeitsteuerung.Steckdose.OsramLightify_1.Zeitfenster", change: 'any'},function(obj){
      TriggerSteckdose();
      if(logging)log("Trigger Zeitfenster aktiv Steckdose ein aus ");
      });
      
      //######################################################################
      
      //Schedule für Steckdose ein aus nach Astro. Zeitschaltuhr  inakiv wenn Astro gesetz
      schedule({astro: "sunrise"}, function () {
        Astroaus();
      if(logging)log("Trigger sunrise Astro aktiv ");
      });
      schedule({astro: "sunset"}, function () {
      if(logging)log("Trigger sunset Astro aktiv ");
        Astroein();
      });
      
      

      view für vis ( rufe die view über ein im view in widget auf )
      6558_timerview.txt

      1 Reply Last reply Reply Quote 0
      • W
        weimaraner last edited by

        Super. Danke. Ich werde es ausprobieren. Allerdings erst im Sommer, wenn ich die Pumpe vom Pool damit schalten werde. 😄

        Aber genau sowas mit vis Darstellung habe ich gebraucht.

        Grüße Andreas

        1 Reply Last reply Reply Quote 0
        • W
          weimaraner last edited by

          Wo ich jetzt noch etwas auf dem Schlauch stehe ist der Export der View. Wenn ich view exportieren ausführe sehe ich zum einen die Kästchen für die Einschaltzeiten nicht und ich habe noch nicht so richtig verstanden, was es mit dem im view im widget auf sich hat.

          Kannst Du mir auf die Sprünge helfen?

          Grüße Andreas

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

            Du musst die view importieren….

            Vlt.die hintergrundfarbe mal ändern?

            Ist ne ganz normale view...

            Ich oeffne bzw zeige sie halt über ein widget (view in widget) an

            Gesendet von meinem CLT-L09 mit Tapatalk

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

              Habe noch einen kleine Fehler bei der Vorwahl der Schaltzyklen bereinigt…

              Das script oben hbe ich ausgetauscht...

              die Änderung ist im Bereich der Vorwahl für die Schaltzyklen erfolgt...

              //Trigger Anzahl der möglichen Schaltzyklen  
              on(id0, function(dp) { 
                  if(logging)log("Trigger Vorwahl der möglichen Schalttzyklen geändert");
                  var Vorwahl=getState(id0).val;
                  if (Vorwahl===0){ 
               TimerAus1();
               TimerAus2();
               TimerAus3();
               TimerAus4();
               TimerEin1();
               TimerEin2();
               TimerEin3();
               TimerEin4();
              }else{
              if (Vorwahl===1){   
               //TimerAus1();
               TimerAus2();
               TimerAus3();
               TimerAus4();
               //TimerEin1();
               TimerEin2();
               TimerEin3();
               TimerEin4();
              }else{
                  if (Vorwahl===2){   
               //TimerAus1();
               //TimerAus2();
               TimerAus3();
               TimerAus4();
               //TimerEin1();
               //TimerEin2();
               TimerEin3();
               TimerEin4();
              }else{
                  if (Vorwahl===3){   
               //TimerAus1();
               //TimerAus2();
               //TimerAus3();
               TimerAus4();
               //TimerEin1();
               //TimerEin2();
               //TimerEin3();
               TimerEin4();
                          }
                      }
                  }
              }
              });
              
              1 Reply Last reply Reply Quote 0
              • smartboart
                smartboart last edited by

                @weimaraner:

                Super. Danke. Ich werde es ausprobieren. Allerdings erst im Sommer, wenn ich die Pumpe vom Pool damit schalten werde. 😄

                Aber genau sowas mit vis Darstellung habe ich gebraucht.

                Grüße Andreas `

                Für die Poolpumpe habe ich ein script, welches in Abhängigkeit der Aussentemperatur und Sonne scheint die Pumpe steuert…4 feste Zyklen und je nach Temperatur mit verlängerter Laufzeit...Dazu habe ich aber keine Vis... geplant ist noch die Wassertrübung und Wassertemperatur mit rein zu nehmen...Aber das mach ich erst, wenn der Bagger angerückt ist und der Pool einem festen weichen muss.

                1 Reply Last reply Reply Quote 0
                • N
                  nhbischo last edited by

                  Moin !

                  Finde Dein Skript auch gut. Nur habe ich das selbe Problem wie Weimaraner. Ganz normal importiert. Hintergrund geändert. Sehe gleichfalls keine Einstellungsmöglichkeiten in VIS. VIS Version 1.1.8. 2421_bildschirmfoto_vom_2018-12-05_18-00-24.png

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

                    OK ist Vlt. Bei meinem export was schief gegangen… Die einzelnen zeiteinstellungs Fenster sind bei mir jeweils gruppiert... Vlt. Liegt es daran...

                    Lade es gleich nochmal hoch...

                    nachdem ich die gruppierung raus genommen habe...

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

                      6558_viewtimer.txt

                      so konnte es nachvollziehen. klappte bei mir auch nicht. lag an der gruppierung der widgets….

                      jetzt sollte es gehen.

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

                        durch das Auflösen der Gruppen sind die Sichtbarkeitseinstellungen der widgets natürlich weg… Wer das wieder möchte, also das nur die Zeiteingabe angezeigt wird welche vorgewählt wurden, muss die einzelnen Eingabefelder wieder gruppieren und bei Sichtbarkeit entsprechend den Datenpunkt hinterlegen.Oder eben die Sichtbarkeitseinstellung für alle widgets vornehmen. Ansosnten werden alle Felder angezeigt, was auch nicht tragisch ist...aktiv sind z.B bei Einstellung Zyklus 2 nur die Eingabefelder 1 und 2.Bei Einstellung 3 dann Zeiteingabe 1, 2 und 3 usw.
                        6558_unbenannt.png
                        6558_unbenannt2.png
                        6558_unbenannt1.png

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

                          Hi, habe heute noch 3 kleine Fehler im Script beseitigt . Davon ein copy and paste Fehler für Zyklus 4 und eine unsaubere Sache im Bereich der Steckdosen Trigger. Änderung auf change: 'any' damit bei bei Änderung der Timer auch die Steckdose zurück gestezt wird.

                          Ebenfalls habe ich die Verriegelung ein aus bzw Abfrage ob Steckdose ein ist entfallen lassen…

                          Lässt das Script alles etwas sauberer laufen..

                          Aktualisiert ist es bereits im 1. post..

                          1 Reply Last reply Reply Quote 0
                          • W
                            weimaraner last edited by

                            Der Import der view klappt jetzt. Vielen Dank dafür!

                            Jetzt aber doch noch eine Frage. Ich bin immer noch ein vis Anfänger… 😉

                            Wie bekomme ich es mit diesem "view in widget" hin, daß ich ein widget(?) drücke und dann dieses Fenster aufgeht. Bestimmt über Sichtbarkeit? Aber was löst aus, daß das view in widget sichtbar wird?

                            Grüße Andreas

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

                              Der state viewWechsel… Wenn true zeige view in widget... Nehm dir ein Button welche diesen state auf True setzt. Das view in widget soll sichtbar sein wenn dieser state viewWechsel true ist.. Suche bei der widget Auswahl einfach nach view...

                              In diesem widget trägst du den view Namen ein..

                              In meiner view ist bereits ein Button welcher den viewwechsel auf false setzt...

                              So das die view in widget wieder zu geht und du wieder auf der Seite bist welche den Button beinhaltet welcher fuer den Aufruf zuständig ist.

                              Gesendet von meinem CLT-L09 mit Tapatalk

                              1 Reply Last reply Reply Quote 0
                              • W
                                weimaraner last edited by

                                Klickklack…

                                Der Groschen ist gefallen. 🙂

                                Danke und Grüße Andreas

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

                                  habe im 1. Beitrag oben das script und die view ausgetauscht.

                                  Die view beinhaltet die hier im Beitrag genannten Einstellungen zur Sichtbarkeit der widgets zur Zeiteinstellung.

                                  Das Script wurde erweitert um die Funktion Zeit stellen bei Scriptstart. somit auch bei neutsrat des Javascriptadapters.

                                  Wenn irgendwelche Fehler bekannt werden, bitte kurz melden…

                                  Überwache das Script bzw. die Ansteuerung der Steckdosen mit nem floatchart um Fehlfunktionen auszuschließen...

                                  1 Reply Last reply Reply Quote 0
                                  • B
                                    balear59 last edited by

                                    Hallo und Moin,

                                    wollte mich einfach mal bedanken für Deine Arbeit. Jetzt funktioniert es super. Genau das hat mir immer gefehlt.

                                    viel Spass noch

                                    Jens

                                    1 Reply Last reply Reply Quote 0
                                    • C
                                      Conquest last edited by

                                      Sehr schönes Script kann man für die Weihnachtsbeleuchtung oder so gut gebrauchen danke. Wenn du es noch mit Tagesauswahl hinbekommen würdest würde ich mich sehr freuen.

                                      Gruß Torsten

                                      Gesendet von meinem MHA-L29 mit Tapatalk

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

                                        Hi super Arbeit!!!

                                        bei uns ist es oft der Fall das mit Astro eingeschaltet und um Uhrzeit x ausgeschaltet wird.

                                        Hättest jemand eine Idee wie man das integrieren könnte?

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

                                          @Gompman:

                                          Hi super Arbeit!!!

                                          bei uns ist es oft der Fall das mit Astro eingeschaltet und um Uhrzeit x ausgeschaltet wird.

                                          Hättest jemand eine Idee wie man das integrieren könnte? ` Man müsste nur noch einen state anlegen z. B. Zyklus1nachAstroEinschalten.. Wenn dieser true ist, wird der einschaltzyklus mit der astrofunktion überschrieben… Bei Zyklus 1 evtl.

                                          Gingen aber auch fuer jeden zyklus eine Astro Vorwahl zum einschalten.. Wäre dann konsequent...

                                          Gesendet von meinem CLT-L09 mit Tapatalk

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

                                            @Gompman:

                                            Hi super Arbeit!!!

                                            bei uns ist es oft der Fall das mit Astro eingeschaltet und um Uhrzeit x ausgeschaltet wird.

                                            Hättest jemand eine Idee wie man das integrieren könnte? `

                                            Habe es mal für Zyklus 1 reingenommen.

                                            Wenn der State "javascript.1.Zeitsteuerung.Steckdose.OsramLightify_1.Zyklus1AstroEin " true ist und Zyklus 1 vorgewählt wurde, sollte Zyklus 1 nach Astro eingeschaltet werden…

                                            Habe keine Zeit es zu testen und benötige es auch nicht...Aber kannst ja mal ausprobieren...

                                            6558_zeitschaltung_mit_astro_ein.js

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            691
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            22
                                            66
                                            19224
                                            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