Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [Gelöst]Zeit stellen für Rolladen im Vis

    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]Zeit stellen für Rolladen im Vis

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

      Hi, das erscheint mir als zu viel Script…

      Habe mich mal vom BackitUP Script inspirieren lassen, dort gibt es schöne widgets.

      sieht so aus, siehe bild unten...

      In meine Zeitfenster würde ich das so integrieren... siehe Scriptschnipsel...

      Dieses Zeitfenster lässt sich dann in jedes Rolladenscript einbauen... Hab es bei mir als if Bedingung mit drinne...

      so funktioniert es aber noch nicht, ich muss noch irgendwie die Werte von var BeginnMorgen = getState ('javascript.0.Rolladen.BeginnMorgen').val;

      var EndeMorgen = getState ('javascript.0.Rolladen.EndeMorgen').val; in die Spalte mit isTimeinRange bekommen.

      Das ist der komplizierte Teil...Im BackitUp script wurde das wenn ich es richtig deute mit ner shedule Funktion gelöst..

      Da muss ich mich erst noch durchkämpfen...

      Vlt. kann uns da ein Profi auf die Sprünge helfen?

      Ich habe 5 solcher Zeitfenster für Morgens Mittags und Abends sowie für Ausschlafen... Die Rolläden triggere ich auf den Helligkeitssensor ( Lux Werte ) Rolladen Script ist dann nochmal extra..

      createState('javascript.0.Rolladen.ZeitfensterMorgen', {def: 'false', type: 'boolean', name: 'Zeitfenster Morgen'});
      createState('javascript.0.Rolladen.BeginnMorgen',  {def: '07:00',type: 'string',name: 'Beginn für Zeitfenster Morgen'});
      createState('javascript.0.Rolladen.EndeMorgen',  {def: '10:00',type: 'string',name: 'Ende für Zeitfenster Morgen'});
      
      // Zeitfenster Morgens
      schedule("*/5 * * * *", function () {
      var BeginnMorgen = getState ('javascript.0.Rolladen.BeginnMorgen').val;
      var EndeMorgen = getState ('javascript.0.Rolladen.EndeMorgen').val;
          if(isTimeInRange('BeginnMorgen', 'EndeMorgen')){
                  setState ('javascript.0.Rolladen.ZeitfensterMorgen', true );
                  }else{
                  setState ('javascript.0.Rolladen.ZeitfensterMorgen', false );
           }
      });
      

      6558_unbenannt.png

      Zeitwidget

      [{"tpl":"tplJquiSelectList","data":{"oid":"javascript.0.System.Iobroker.Backup.Einstellungen.komplett.BackupZeit","values":"00:00;00:15;00:30;00:45;01:00;01:15;01:30;01:45;02:00;02:15;02:30;02:45;03:00;03:15;03:30;03:45;04:00;04:15;04:30;04:45;05:00;05:15;05:30;05:45;06:00;06:15;06:30;06:45;07:00;07:15;07:30;07:45;08:00;08:15;08:30;08:45;09:00;09:15;09:30;09:45;10:00;10:15;10:30;10:45;11:00;11:15;11:30;11:45;12:00;12:15;12:30;12:45;13:00;13:15;13:30;13:45;14:00;14:15;14:30;14:45;15:00;15:15;15:30;15:45;16:00;16:15;16:30;16:45;17:00;17:15;17:30;17:45;18:00;18:15;18:30;18:45;19:00;19:15;19:30;19:45;20:00;20:15;20:30;20:45;21:00;21:15;21:30;21:45;22:00;22:15;22:30;22:45;23:00;23:15;23:30;23:45","texts":"00:00;00:15;00:30;00:45;01:00;01:15;01:30;01:45;02:00;02:15;02:30;02:45;03:00;03:15;03:30;03:45;04:00;04:15;04:30;04:45;05:00;05:15;05:30;05:45;06:00;06:15;06:30;06:45;07:00;07:15;07:30;07:45;08:00;08:15;08:30;08:45;09:00;09:15;09:30;09:45;10:00;10:15;10:30;10:45;11:00;11:15;11:30;11:45;12:00;12:15;12:30;12:45;13:00;13:15;13:30;13:45;14:00;14:15;14:30;14:45;15:00;15:15;15:30;15:45;16:00;16:15;16:30;16:45;17:00;17:15;17:30;17:45;18:00;18:15;18:30;18:45;19:00;19:15;19:30;19:45;20:00;20:15;20:30;20:45;21:00;21:15;21:30;21:45;22:00;22:15;22:30;22:45;23:00;23:15;23:30;23:45","height":"262","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"class":"","open":false,"no_style":false,"g_visibility":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","name":"","gestures-offsetX":"5","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"200px","top":"256px","width":"84px","height":"40px","z-index":"4","font-size":"","font-weight":"","color":"","border-width":"","border-radius":"","border-style":"","border-color":""},"widgetSet":"jqui"}]
      
      1 Reply Last reply Reply Quote 0
      • Homer.J.
        Homer.J. last edited by

        Morgen ich fahre meine Rolladen mit einer schedule Funktion.

        weiß nur nicht ob es das richtige ist.

        ! schedule({hour: 6, minute: 0}, function () {
        ! // werktags, kein Feiertag -> unten hoch
        ! if(!isWeekend() && getState("feiertage.0.heute.boolean"/Feiertag_heute/).val === false) {
        ! log("Werktag, Kein Feiertag: Fahre Jalousie hoch");
        ! Jalousie_unten_hoch();
        ! }
        ! });

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

          morgen, nein nicht für das was ich vor habe.. Deine shedule ist quasi der Trigger zu welcher Uhrzeit du aktiv wirst…

          Ich gehe davon aus, das du diese Zeiten in Vis ändern möchtest..

          Im Prinzip kannst du das auch mit dem Widget welches ich nehmen würde machen...brauchst dann halt nur eins weil feste Uhrzeit..

          Ich brauche 2 weil Zeitfenster..

          Aber unser Problem ist hier die Zeit aus dem Widget ins Script zu bekommen.

          Dazu habe ich 2 States angelegt. Du bräuchtest nur einen...

          Anhand des States haben wir zumindest die Info aus der Vis im Script. Jetzt müssen wir es aber noch im Script verarbeiten..

          so könnte der Anfang bei dir aussehen.

          Ich versuche mir die Infos wie das realisiert werden kann anhand des Backitup script herauszufinden...

          Steige da aber noch nicht so richtig durch....Das Script haben Profis geschrieben...

          Ich stehe leider auch erst am Anfang..

          createState('javascript.0.Rolladen.Hoch', {def: '07:00',type: 'string',name: 'Rolladen hoch '});

          var RolloHoch = getState ('javascript.0.Rolladen.Hoch').val;

          schedule({hour: 6, minute: 0}, function () { // dieser shedule müsste dann mit den Infos aus der Variable RolloHoch gefüllt werden

          // werktags, kein Feiertag -> unten hoch

          if(!isWeekend() && getState("feiertage.0.heute.boolean"/Feiertag_heute/).val === false) {

          log("Werktag, Kein Feiertag: Fahre Jalousie hoch");

          Jalousie_unten_hoch();

          }

          });

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

            schau mal hier in die Scripte:

            viewtopic.php?f=21&t=3969

            Zum einen wird ein Wochenplan erstellt, aber man kann auch jeden Tag individuell aus vis ändern.

            Ohne viel Aufwand würde ich aus dem Post die Lüftersteuerung (gleicher Thread) empfehlen.

            viewtopic.php?f=21&t=3969#p69025

            Grüße

            Brati

            1 Reply Last reply Reply Quote 0
            • Homer.J.
              Homer.J. last edited by

              Hallo Brati,

              kannst du mir erklären wie ich es hier einbinde so läuft momentan mein Rolladenscript.

              ! schedule({hour: 6, minute: 0}, function () {
              ! // werktags, kein Feiertag -> unten hoch
              ! if(!isWeekend() && getState("feiertage.0.heute.boolean"/Feiertag_heute/).val === false) {
              ! log("Werktag, Kein Feiertag: Fahre Jalousie hoch");
              ! Jalousie_unten_hoch();
              ! }
              ! });
              ! schedule({hour: 8, minute: 0}, function () {
              ! // wochenende oder Feiertag -> unten hoch
              ! if(isWeekend() || getState("feiertage.0.heute.boolean"/Feiertag_heute/).val === true) {
              ! log("Wochende bzw. Feiertag: Fahre Jalousie hoch");
              ! Jalousie_unten_hoch();
              ! }
              ! });
              ! schedule({hour: 8, minute: 0}, function () {
              ! // werktags, kein Urlaub, kein Feiertag, -> oben hoch
              ! if (!isWeekend() && getState("hm-rega.0.55182"/Urlaub/).val === false && getState("feiertage.0.heute.boolean"/Feiertag_heute/).val === false) {
              ! log("Werktag, kein Urlaub, kein Feiertag: Fahre Jalousie hoch");
              ! Jalousie_oben_hoch();
              ! }
              ! });
              ! schedule({hour: 8, minute: 0}, function () {
              ! // wochenende -> oben hoch
              ! if (isWeekend()) {
              ! log("Wochenende: Fahre Jalousie hoch");
              ! Jalousie_oben_hoch();
              ! }
              ! // Feiertag, werktags -> oben hoch
              ! if (!isWeekend() && getState("hm-rega.0.54978"/Feiertag_heute/).val === true) {
              ! log("Werktag, Feiertag: Fahre Jalousie hoch");
              ! Jalousie_oben_hoch();
              ! }
              ! // Urlaub, werktags -> oben hoch
              ! if (!isWeekend() && getState("hm-rega.0.55182"/Urlaub/).val === true) {
              ! log("Werktag, Urlaub: Fahre Jalousie hoch");
              ! Jalousie_oben_hoch();
              ! }
              ! });

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

                @Homer1976:

                Hallo Brati,

                kannst du mir erklären wie ich es hier einbinde so läuft momentan mein Rolladenscript. `

                Nee :shock: . Ich würde das von Grund auf anders aufbauen und hat ganz schön viele Variablen drin. Aber wir können es ja versuchen:

                • pro Jalousiegruppe (unten/ oben) erstmal je ein Script.

                • soll es am Wochenende/ im Urlaub eine Standardzeit geben oder das auch variabel gestaltet sein?

                Ohne es jetzt Testen zu können, wäre das mein Ansatz. Mittels Widget werden die Standardzeiten gesetzt und jeden Tag abgearbeitet. Um 01:02 Uhr wird geprüft, ob Werktag/ Urlaub usw. ist und dann auf 08.00 Uhr gesetzt.

                var	idTimerStunde	="Timer.Jalousie.Unten.Stunde";
                var	idTimerMinute	="Timer.Jalousie.Unten.Minute";
                var	idTimerAktiv	="Timer.Jalousie.Unten.Aktiv";
                var TimerOn 		= "00 8 * * *";
                
                // ##################### variable ZEITSTEUERUNG #####################
                var x = new RegExp("\javascript\.0\.Timer\.Wecker\.Unten.+");
                on({id:x,change:'ne',chance:'ne'}, function(obj) {
                    clearSchedule(TimerOn);
                    var id_Stunde = getState(idTimerStunde).val,
                		id_Minute = getState(idTimerMinute).val;
                
                	AufZeit = id_Minute + ' ' + id_Stunde + ' * * *';
                
                	log("Jalousie unten auf geändert auf: " + AufZeit);
                
                	TimerOn = schedule(AufZeit, function(){
                
                		Jalousie_unten_hoch();	
                
                    });
                });
                
                // // ##################### Werktag/ Urlaub prüfen um 01:02 Uhr jeden Tag #####################
                schedule("02 01 * * *", function (){
                	if(isWeekend() || getState("feiertage.0.heute.boolean"/*Feiertag_heute*/).val === true) {
                		log("Wochende bzw. Feiertag: Zeit unten eingestellt");
                		setState(idTimerStunde, 8);
                		setState(idTimerMinute, 0);		
                		}
                    });
                
                createState(idTimerStunde);
                createState(idTimerMinute);
                createState(idTimerAktiv);
                
                // Timer bei Neustart setzen
                
                var Temp_Minute = getState(idTimerMinute).val;
                setState(idTimerMinute, 59);
                setState(idTimerMinute, Temp_Minute, true);
                
                

                Vielleicht kannst du daraus was machen.

                Grüße

                Brati

                1 Reply Last reply Reply Quote 0
                • Homer.J.
                  Homer.J. last edited by

                  Wenn es möglich ist wäre es sinnvoll für Woche und Wochenende einzurichten.

                  Hab mal alles so übernommen kann die Zeit auch einstellen Rolladen schalten aber zur gewünschten Zeit nicht.

                  1 Reply Last reply Reply Quote 0
                  • Homer.J.
                    Homer.J. last edited by

                    So sieht mein gesamtes Script aus kannst ja mal darüber schauen.

                    ! // –---------------------------------------------
                    ! // Trigger
                    ! // -----------------------------------------------
                    ! var idTimerStunde ="Timer.Jalousie.Unten.Stunde";
                    ! var idTimerMinute ="Timer.Jalousie.Unten.Minute";
                    ! var idTimerAktiv ="Timer.Jalousie.Unten.Aktiv";
                    ! var TimerOn = "00 8 * * ";
                    ! // ##################### variable ZEITSTEUERUNG #####################
                    ! var x = new RegExp("\javascript.0.Timer.Wecker.Unten.+");
                    ! on({id:x,change:'ne',chance:'ne'}, function(obj) {
                    ! clearSchedule(TimerOn);
                    ! var id_Stunde = getState(idTimerStunde).val,
                    ! id_Minute = getState(idTimerMinute).val;
                    ! AufZeit = id_Minute + ' ' + id_Stunde + ' * * ';
                    ! log("Jalousie unten auf geändert auf: " + AufZeit);
                    ! TimerOn = schedule(AufZeit, function(){
                    ! Jalousie_unten_hoch();
                    ! });
                    ! });
                    ! // // ##################### Werktag/ Urlaub prüfen um 01:02 Uhr jeden Tag #####################
                    ! schedule("02 01 * * ", function (){
                    ! if(isWeekend() || getState("feiertage.0.heute.boolean"/Feiertag_heute/).val === true) {
                    ! log("Wochende bzw. Feiertag: Zeit unten eingestellt");
                    ! setState(idTimerStunde, 8);
                    ! setState(idTimerMinute, 0);
                    ! }
                    ! });
                    ! createState(idTimerStunde);
                    ! createState(idTimerMinute);
                    ! createState(idTimerAktiv);
                    ! // Timer bei Neustart setzen
                    ! var Temp_Minute = getState(idTimerMinute).val;
                    ! setState(idTimerMinute, 59);
                    ! setState(idTimerMinute, Temp_Minute, true);
                    ! // Bei Sonnenuntergang (kleiner 5 Lux)
                    ! var Rollos_unten = false;
                    ! on({id: "hm-rpc.1.OEQ2282364.1.LUX"/Helligkeit 100kLux.LUX/, change: "ne"}, function (obj) {
                    ! // console.log('
                    Lux hat sich aktualisiert ' + Rollos_unten); // und Anzeige Variable
                    ! if (obj.state.val < 5) {
                    ! // console.log('*** Jalousie runter auf wahr setzen');
                    ! if(!Rollos_unten) Jalousie_runter(); // Funktionsaufruf zum Runterfahren der Rollos
                    ! Rollos_unten = true;
                    ! } else if (obj.state.val > 100) {
                    ! // console.log('*** Jalousie runter auf unwahr setzen');
                    ! Rollos_unten = false;
                    ! }
                    ! });
                    ! // -----------------------------------------------
                    ! // Aktionen
                    ! // -----------------------------------------------
                    ! function Jalousie_oben_hoch() {
                    ! // Abbruch bei deaktivierter Automatik
                    ! if (getState("hm-rega.0.55181"/Jalousie Automatik/).val === false) { return; }
                    ! log("Jalousie oben hoch");
                    ! }
                    ! function Jalousie_unten_hoch() {
                    ! // Abbruch bei deaktivierter Automatik
                    ! if (getState("hm-rega.0.55181"/Jalousie Automatik/).val === false) { return; }
                    ! log("Jalousie unten hoch");
                    ! // Status setzen (Standard)
                    ! var lvJalKZ = 100;
                    ! var lvJalHWR = 100;
                    ! var lvJalBad = 100;
                    ! var lvJalFlur = 100;
                    ! var lvJalWohnrechts = 100;
                    ! var lvJalWohnlinks = 100;
                    ! var lvJalBalkontuer = 100;
                    ! var lvJalSZ = 100;
                    ! var lvJalKueche = 100;
                    ! var lvJalBadoben = 100;
                    ! // Ausführen
                    ! setState("hm-rpc.1.MEQ0735305.1.LEVEL"/Rollladen Kinderzimmer .LEVEL/, lvJalKZ);
                    ! setState("hm-rpc.1.MEQ0735367.1.LEVEL"/Rollladen Abstellraum .LEVEL/, lvJalHWR);
                    ! setState("hm-rpc.1.MEQ0735410.1.LEVEL"/Rollladen Badezimmer.LEVEL/, lvJalBad);
                    ! setState("hm-rpc.1.MEQ0735420.1.LEVEL"/Rollladen Flur .LEVEL/, lvJalFlur);
                    ! setState("hm-rpc.1.MEQ0735434.1.LEVEL"/Rollladen Wohnzimmer rechts .LEVEL/, lvJalWohnrechts);
                    ! setState("hm-rpc.1.MEQ0735459.1.LEVEL"/Rollladen Wohnzimmer links .LEVEL/, lvJalWohnlinks);
                    ! setState("hm-rpc.1.MEQ0735466.1.LEVEL"/Rollladen Balkontür Küche .LEVEL/, lvJalBalkontuer);
                    ! setState("hm-rpc.1.MEQ0735467.1.LEVEL"/Rollladen Schlafzimmer .LEVEL/, lvJalSZ);
                    ! setState("hm-rpc.1.MEQ0735469.1.LEVEL"/Rollladen Fenster Küche .LEVEL/, lvJalKueche);
                    ! setState("hm-rpc.1.MEQ0735462.1.LEVEL"/Rollladen Fenster Bad oben .Level/, lvJalBadoben);
                    ! }
                    ! function Jalousie_runter () {
                    ! // Abbruch bei deaktivierter Automatik
                    ! if (getState("hm-rega.0.55181"/Jalousie Automatik/).val === false) { return; }
                    ! log("Jalousie runter");
                    ! // Status setzen (Standard)
                    ! var lvJalKZ = 0;
                    ! var lvJalHWR = 0;
                    ! var lvJalBad = 0;
                    ! var lvJalFlur = 0;
                    ! var lvJalWohnrechts = 0;
                    ! var lvJalWohnlinks = 0;
                    ! var lvJalBalkontuer = 0;
                    ! var lvJalSZ = 0;
                    ! var lvJalKueche = 0;
                    ! var lvJalBadoben = 0;
                    ! // Status setzen (Ausnahmen)
                    ! // Tür Flur Sperre (0 = geschlossen, 1 = gekippt, 2 = offen)
                    ! if(getState("hm-rpc.2.0007D7099CF99C.1.STATE"/Tür Flur.STATE/).val == 2) {
                    ! lvJalFlur = 100;
                    ! }
                    ! // Ausführen
                    ! setState("hm-rpc.1.MEQ0735305.1.LEVEL"/Rollladen Kinderzimmer .LEVEL/, lvJalKZ);
                    ! setState("hm-rpc.1.MEQ0735367.1.LEVEL"/Rollladen Abstellraum .LEVEL/, lvJalHWR);
                    ! setState("hm-rpc.1.MEQ0735410.1.LEVEL"/Rollladen Badezimmer .LEVEL/, lvJalBad);
                    ! setState("hm-rpc.1.MEQ0735420.1.LEVEL"/Rollladen Flur .LEVEL/, lvJalFlur);
                    ! setState("hm-rpc.1.MEQ0735434.1.LEVEL"/Rollladen Wohnzimmer rechts .LEVEL/, lvJalWohnrechts);
                    ! setState("hm-rpc.1.MEQ0735459.1.LEVEL"/Rollladen Wohnzimmer links .LEVEL/, lvJalWohnlinks);
                    ! setState("hm-rpc.1.MEQ0735466.1.LEVEL"/Rollladen Balkontür Küche .LEVEL/, lvJalBalkontuer);
                    ! setState("hm-rpc.1.MEQ0735467.1.LEVEL"/Rollladen Schlafzimmer .LEVEL/, lvJalSZ);
                    ! setState("hm-rpc.1.MEQ0735469.1.LEVEL"/Rollladen Fenster Küche .LEVEL/, lvJalKueche);
                    ! setState("hm-rpc.1.MEQ0735462.1.LEVEL"/Rollladen Fenster Bad oben .Level/, lvJalBadoben);
                    ! }

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

                      So läuft es

                      javascript.0	2018-08-26 20:54:00.387	info	script.js.##_Timer_Test: Jalousie unten auf Test
                      javascript.0	2018-08-26 20:53:41.384	info	script.js.##_Timer_Test: Jalousie unten auf geändert auf: 54 20 * * *
                      

                      der on regex war noch falsch gesetzt:

                      ! ````
                      // -----------------------------------------------
                      // Trigger
                      // -----------------------------------------------
                      var idTimerStunde ="Timer.Jalousie.Unten.Stunde";
                      var idTimerMinute ="Timer.Jalousie.Unten.Minute";
                      var idTimerAktiv ="Timer.Jalousie.Unten.Aktiv";
                      var TimerOn = "00 8 * * *";
                      ! // ##################### variable ZEITSTEUERUNG #####################
                      var x = new RegExp("\javascript.0.Timer.Jalousie.Unten.+");
                      on({id:x,change:'ne',chance:'ne'}, function(obj) {
                      clearSchedule(TimerOn);
                      var id_Stunde = getState(idTimerStunde).val,
                      id_Minute = getState(idTimerMinute).val;
                      ! AufZeit = id_Minute + ' ' + id_Stunde + ' * * *';
                      ! log("Jalousie unten auf geändert auf: " + AufZeit);
                      ! TimerOn = schedule(AufZeit, function(){
                      log("Jalousie unten auf Test");
                      // Jalousie_unten_hoch();
                      ! });
                      });
                      ! // // ##################### Werktag/ Urlaub prüfen um 01:02 Uhr jeden Tag #####################
                      schedule("02 01 * * *", function (){
                      if(isWeekend() || getState("feiertage.0.heute.boolean"/Feiertag_heute/).val === true) {
                      log("Wochende bzw. Feiertag: Zeit unten eingestellt");
                      setState(idTimerStunde, 8);
                      setState(idTimerMinute, 0);
                      }
                      });
                      ! createState(idTimerStunde, "6", {desc: 'Jalusie Auf Stunde'});
                      createState(idTimerMinute,"0", {desc: 'Jalusie Auf Minute'});
                      createState(idTimerAktiv, true, {desc: 'Jalusie Auf Aktiv'});
                      ! // Timer bei Neustart setzen
                      ! var Temp_Minute = getState(idTimerMinute).val;
                      setState(idTimerMinute, 59);
                      setState(idTimerMinute, Temp_Minute, true);

                      
                      Die variable Zeit für Werktag/ Feiertag könnte man einfach in einen State setzen, den man dann um 01:02 Uhr ausliest…
                      
                      Grüße
                      
                      Brati
                      1 Reply Last reply Reply Quote 0
                      • smartboart
                        smartboart last edited by

                        Tolle Sache funktioniert Prima….

                        Das ich den Lüfter Beitrag nicht schon vorher gesehen habe....

                        Danke für die Hinweise...

                        //---------------------------------------------------------------------------
                        //Script Timer Vis
                        
                        var	idTimerStunde	="javascript.0.Rolladen.Timer.ZeitfensterMorgen.Stunde";
                        var	idTimerMinute	="javascript.0.Rolladen.Timer.ZeitfensterMorgen.Minute";
                        var TimerOn 		= "00 12 * * *";
                        var idZeitfensterMorgen	="javascript.0.Rolladen.ZeitfensterMorgen";
                        
                        // ##################### variable ZEITSTEUERUNG #####################
                        var x = new RegExp("\javascript\.0\.Rolladen\.Timer\.ZeitfensterMorgen.+");
                        on({id:x,change:'ne',chance:'ne'}, function(obj) {
                            clearSchedule(TimerOn);
                            var id_Stunde = getState(idTimerStunde).val,
                        		id_Minute = getState(idTimerMinute).val;
                        
                        	AufZeit = id_Minute + ' ' + id_Stunde + ' * * *';
                        
                        	log("Timer Rolladen ZeitfensterMorgens geändert: " + AufZeit);
                        
                        	TimerOn = schedule(AufZeit, function(){
                        
                                    setState(idZeitfensterMorgen, true);
                                    setStateDelayed(idZeitfensterMorgen ,false, 3600*1000 );
                            });
                        });
                        
                        createState(idTimerStunde);
                        createState(idTimerMinute);
                        createState('javascript.0.Rolladen.ZeitfensterMorgen', {def: 'false', type: 'boolean', name: 'Zeitfenster Morgen'});
                        // Timer bei Neustart setzen
                        
                        var Temp_Minute = getState(idTimerMinute).val;
                        setState(idTimerMinute, 59);
                        setState(idTimerMinute, Temp_Minute, true);
                        
                        
                        1 Reply Last reply Reply Quote 0
                        • Homer.J.
                          Homer.J. last edited by

                          Hi,

                          klappt wirklich super kann ich nur weiter Empfehlen vielen Dank an Brati für die schnelle Hilfe. :lol:

                          Wenn du mal irgendwann Zeit findest wäre es schön wenn du mir für Urlaub und Wochenende noch einen Timer einbauen könntest.

                          Hab es schon probiert hab den 2 Timer auch im Script eingebaut und funktioniert weiß nur nicht wie ich das WE und Feiertage einbauen soll.

                          Danke und Grüße Steffen

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

                            Hallo,

                            das ist recht einfach. Zwei Fragen:

                            1. Ich gehe davon aus, dass am WE/ Feiertag die gleiche Zeit gilt?

                            2. Benutzt du den Aktiv Status? Der wird nämlich in der Abfrage nicht verwendet und würde die Möglichkeit geben, dass Hochfahren komplett zu deaktivieren.

                            Bei mir sieht das ja so aus und der Haken oben links bestimmt ob der Timer überhaupt aktiv ist:

                            ~~![](</s><URL url=)<link_text text="download/file.php?id=11748">https://forum.iobroker.net/download/file.php?id=11748</link_text>" />

                            Grüße

                            Brati~~

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

                              Mahlzeit,

                              hab es mal etwas umgebaut, weil ja am Feiertag auch die normale Zeit erhalten bleiben soll. Die Abfrage zum Aktiv-State ist nicht enthalten, wäre aber eine einfache if then Bedingung.

                              ! ````
                              // -----------------------------------------------
                              // Trigger
                              // -----------------------------------------------
                              var idTimerStunde ="Timer.Jalousie.Unten.Stunde",
                              idTimerMinute ="Timer.Jalousie.Unten.Minute",
                              idTimerAktiv ="Timer.Jalousie.Unten.Aktiv",
                              idTimerStundeWE ="Timer.Jalousie.Unten.StundeWE",
                              idTimerMinuteWE ="Timer.Jalousie.Unten.MinuteWE",
                              idTimerAktivWE ="Timer.Jalousie.Unten.AktivWE",
                              id_Stunde = 6,
                              id_Minute = 0,
                              AufZeit = "00 8 * * ", TimerOn =" * * * *" ;
                              ! // ##################### variable ZEITSTEUERUNG #####################
                              var x = new RegExp("\javascript.0.Timer.Jalousie.Unten.+");
                              on({id:x,change:'ne',chance:'ne'}, function(obj) {

                              id_Stunde = getState(idTimerStunde).val,
                              id_Minute = getState(idTimerMinute).val;
                              AufZeit = id_Minute + ' ' + id_Stunde + ' * * *';
                              TimerSet();
                              

                              });

                              ! // ##################### Werktag/ Urlaub prüfen um 01:02 Uhr jeden Tag #####################
                              schedule("02 01 * * *", function (){
                              ! if(isWeekend() || getState("feiertage.0.heute.boolean"/Feiertag_heute/).val === true) {
                              id_Stunde = getState(idTimerStundeWE).val,
                              id_Minute = getState(idTimerMinuteWE).val;
                              log("Wochenende oder Feiertag Timer gesetzt!");
                              AufZeit = id_Minute + ' ' + id_Stunde + ' * * *';
                              TimerSet();
                              }
                              });
                              ! // ###################### setzen des Zeitpunkts zum Öffnen ###########
                              function TimerSet(){
                              clearSchedule(TimerOn);
                              log("Jalousie unten auf geändert auf: " + AufZeit);
                              TimerOn = schedule(AufZeit, function(){
                              Jalousie_unten_hoch();
                              });
                              }
                              ! createState(idTimerStunde, "6", {role: 'Jalousie Auf Stunde'});
                              createState(idTimerMinute,"0", {role: 'Jalousie Auf Minute'});
                              createState(idTimerAktiv, true, {role: 'Jalousie Auf Aktiv'});
                              createState(idTimerStundeWE, "8", {role: 'Jalousie Auf WE/ Feiertag Stunde'});
                              createState(idTimerMinuteWE,"0", {role: 'Jalousie Auf WE/ Feiertag Minute'});
                              createState(idTimerAktivWE, true, {role: 'Jalousie Auf WE/ Feiertag Aktiv'});
                              ! // Timer bei Neustart setzen
                              ! id_Stunde = getState(idTimerStunde).val,
                              id_Minute = getState(idTimerMinute).val;
                              AufZeit = id_Minute + ' ' + id_Stunde + ' * * *';
                              TimerSet();

                              
                              Grüße
                              
                              Brati
                              1 Reply Last reply Reply Quote 0
                              • Homer.J.
                                Homer.J. last edited by

                                Super probiere ich nachher gleich aus wenn ich nach Hause komme.

                                Danke dir.

                                Gesendet von iPhone mit Tapatalk

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

                                  Hilft euch vielleicht dieses skript weiter? viewtopic.php?f=21&t=8549

                                  Es ist zwar ursprünglich da, um einen Saugroboter täglich zu einer bestimmten Uhrzeit mit einem definierten Sauglevel (also, mit welcher Leistung er saugen soll) loszuschicken, aber das kann man ja so anpassen, daß ihr zu jeder Uhrzeit die Behanghöhe der Rolläden definiert.

                                  In vis habe ich das dann auch dargestellt, um Uhrzeit und Sauglevel (Behanghöhe) per Hand einzugeben.

                                  Grüße Andreas

                                  1 Reply Last reply Reply Quote 0
                                  • Homer.J.
                                    Homer.J. last edited by

                                    Guten morgen Brati,

                                    Script funktioniert soweit gut hab nur ein Problem wenn er prüft ob Wochenende ist fährt er die Rollladen hoch.

                                    Heißt er fährt um 1:02 meine Rollos hoch, und wenn ich sie dann wieder runter fahre dann um 8:00 Uhr.

                                    Grüße

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

                                      UPS, schaue ich mir morgen an, was steht denn im log?

                                      Grüße Brati

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

                                      Support us

                                      ioBroker
                                      Community Adapters
                                      Donate

                                      798
                                      Online

                                      31.9k
                                      Users

                                      80.2k
                                      Topics

                                      1.3m
                                      Posts

                                      5
                                      23
                                      3475
                                      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