Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Variable Zeit/Schedule Funktion

    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

    Variable Zeit/Schedule Funktion

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

      Hab ein kleines Script für ein Wakeup Light mit einer Hue:

      schedule("8 5 * * 1-5", function () {
          var schicht = getState("javascript.0.schichten").val;
          if(schicht === "Fruehschicht"); 
          setState("hue.0.Philips_hue.Hue_Nachttisch.command", '{"bri":"150","ct":"400","transitiontime":"600"}');  //langsam 
          log("Nachtischlampe Auto Ein");
          setStateDelayed("hue.0.Philips_hue.Hue_Nachttisch.command", '{"bri":"0","on":"off"}',  360000);
      });
      
      

      Stelle aber auch mittlerweile meinen Wecker über Vis mit einem "jqui-control-Input Datetime" Widget, die eingestellte Zeit wird in eine Variable eingetragen.

      Wie kann ich jetzt diese Zeit in der Variable nutzen, um damit das WAkeup Light variable einzuschalten?

      Frage 2: Muss ich das eigentlich so schreiben

          var schicht = getState("javascript.0.schichten").val;
          if(schicht === "Fruehschicht"); 
      

      oder sollte es so auch gehen

      if(getState("javascript.0.schichten").val === "Fruehschicht"); 
      

      Diese Variante sollte doch auch funktionieren, da "javascript.0.schichten" ja schon ne Variable ist.

      1 Reply Last reply Reply Quote 0
      • blauholsten
        blauholsten Developer last edited by

        Hi,

        schau dir mal hier den VORLETZTEN Beitrag an, vielleicht ist das was für dich.

        http://forum.iobroker.de/viewtopic.php? … 0cd6147ee4

        1 Reply Last reply Reply Quote 0
        • coyote
          coyote Most Active last edited by

          Also mit dem zweitletzten Post komm ich nicht so richtig klar, aber ich denke das script von paul53 kann ich dafür nutzen, also das script, dass du auch nutzt.

          Muss mal damit etwas rumspielen, aber denke das funktioniert. Brauche ja nur eine Funktion, die bei Variabler Zeit etwas auslöst, vllt geht das auch noch einfacher

          1 Reply Last reply Reply Quote 0
          • blauholsten
            blauholsten Developer last edited by

            Das Skript von paul53, was ich auch nutze!(DANKE NOCHMAL) Funktioniert TOP, du has nur keine Möglichkeit auf Wochentage oder ähnliches zu reagieren zumindest nicht ohne weiteren Skript Aufwand.

            1 Reply Last reply Reply Quote 0
            • coyote
              coyote Most Active last edited by

              Ach Mist, da hab ich gerade gar nicht dran gedacht. Stimmt, die Wochentage möchte ich ja auch mit rein nehmen.

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

                Na dann würde ich dir schon mein Script (wurde ja bereits verlinkt) empfehlen. Jetzt läuft es perfekt, den Fehler das beim ersten Start die Zeit nicht gesetzt wurde, habe ich durch ändern/ zurückschreiben der Minuten Variable am Ende umgangen.

                function szeit() {
                // ##################### Wochenplan #####################
                //                         0     1     2     3     4    5     6      
                //                         M     D     M     D     F    S     S 
                //                         o     i     i     o     r    a     o
                //...................................................................
                var TagStunde = new Array("6",  "6",  "6",  "6",  "6", "9",  "9");     // Weckzeit: Stunde
                var TagMinute = new Array("30", "30", "45", "45", "30","00", "00");     // Weckzeit: Minute
                var WAktiv    = new Array("1",  "1",  "1",  "1",  "1", "0",  "0");      // Wecker Aktiv = 1, Wecker Aus = 0
                
                    var jetzt = new Date();
                    var tag = jetzt.getDay(); // Achtung Mo = 1, Arry beginnt aber bei 0 
                    if ( tag == "7" ) 
                        tag = "0"; 
                    if (WAktiv[tag] == "1") {
                        setState("Timer.Wecker.XXX.Aktiv", true);}
                        else {
                        setState("Timer.Wecker.XXX.Aktiv", false);}    
                    log ('Weckzeit XXX morgen: ' + TagStunde[tag] + ':' + TagMinute[tag] + ' Uhr');
                    setState("javascript.0.Timer.Wecker.XXX.Stunde",TagStunde[tag]);
                    setState("javascript.0.Timer.Wecker.XXX.Minute",TagMinute[tag]);
                
                }
                
                schedule("0 10 * * *", function (){              //      Zeitplan  - wird jeden Tag um 10:00 Uhr für nächsten Tag gesetzt
                    szeit();
                    });
                
                // ##################### variable ZEITSTEUERUNG #####################
                var He_Auf = "00 12 * * *";
                
                on(/^javascript.0.Timer.Wecker.XXX.Stunde|javascript.0.Timer.Wecker.XXX.Minute/, function(obj) {
                    clearSchedule(He_Auf);
                    var id_Stunde = getState("javascript.0.Timer.Wecker.XXX.Stunde").val,
                		id_Minute = getState("javascript.0.Timer.Wecker.XXX.Minute").val;
                	AufZeit = id_Minute + ' ' + id_Stunde + ' * * *';
                    log("HE Aufstehen geändert auf: " + AufZeit);
                    He_Auf = schedule(AufZeit, function(){
                        var WStatus = getState("Timer.Wecker.XXX.Aktiv").val;
                        if (WStatus === true) {
                        setStateDelayed(".......... bzw hier das Kommando einfügen;}
                
                    });
                });
                
                createState("Timer.Wecker.XXX.Stunde");
                createState("Timer.Wecker.XXX.Minute");
                createState("Timer.Wecker.XXX.Aktiv");
                var Temp_Minute = getState("Timer.Wecker.XXX.Minute").val;
                setState("Timer.Wecker.XXX.Minute", 59);
                setState("Timer.Wecker.XXX.Minute", Temp_Minute);
                

                709_zwischenablage01.jpg

                Grüße

                Brati

                1 Reply Last reply Reply Quote 0
                • coyote
                  coyote Most Active last edited by

                  Ja ich werde mir dein Script nochmal genauer ansehen. Hab da noch nicht so den Durchblick 😉 Ich probiere einfach mal aus

                  Gesendet von meinem Nexus 5X mit Tapatalk

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

                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  540
                  Online

                  31.9k
                  Users

                  80.2k
                  Topics

                  1.3m
                  Posts

                  3
                  7
                  4034
                  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