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.
    • 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

                        801
                        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