Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Schedule - Licht an bei fester Zeit

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Schedule - Licht an bei fester Zeit

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

      Hallo zusammen,

      eigentlich ist das doch ziemlich simpel, aber irgendwie zweifel ich langsam an mir selbst.

      Ich will einfach nur bei einer gewissen Uhrzeit einen Schalter (Licht) aktivieren.

      // Ab 7.30 Uhr am Wochenende
      schedule("30 7 * * 6-7", function () { setState("hm-rpc.0.NEQ182xxx.1.STATE", true) });
      

      hab ich irgendwo einen Gedankenfehler oder seh ich ein Komma vor lauter Semikolons nicht?

      Der reine setState-Befehl funktioniert, nur halt nicht in Kombi mit schedule…

      Gruß Michael

      edit: Problem gelöst, nach einem Neustart geht alles :roll:

      1 Reply Last reply Reply Quote 0
      • D
        dna909 last edited by

        Probier mal so:

        // Ab 7.30 Uhr am Wochenende
        
        function Licht (){ 
            setState("hm-rpc.0.NEQ182xxx.1.STATE", true); 
        
        }
        
        schedule("30 7 * * 0,6", function () {
            Licht();
            });
        

        mfg

        dna909

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

          @dna909:

          schedule("30 7 * * 0,6", function () {
              Licht();
              });
          ```` `  
          

          geht auch kürzer (beachte die fehlenden Klammern hinter "Licht"):

          schedule("30 7 * * 0,6", Licht);
          

          Aber das extrahieren in ne eigene Funktion sollte keinen Unterschied machen.

          1 Reply Last reply Reply Quote 0
          • D
            dna909 last edited by

            Viele Wege führen nach Rom 🙂

            1 Reply Last reply Reply Quote 0
            • L
              looxer01 last edited by

              @dna909:

              Viele Wege führen nach Rom `
              das ist wohl wahr. Auch ohne Programmierung ueber den Adapter:

              • Calendar schedule Adapter benutzt Kalender für Planung
              1 Reply Last reply Reply Quote 0
              • T
                tempestas last edited by

                @AlCalzone:

                @dna909:

                schedule("30 7 * * 0,6", function () {
                    Licht();
                    });
                ```` `  
                

                geht auch kürzer (beachte die fehlenden Klammern hinter "Licht"):

                schedule("30 7 * * 0,6", Licht);
                

                Aber das extrahieren in ne eigene Funktion sollte keinen Unterschied machen. `

                Könntest du mich erleuchten, wann (und warum) ich die Klammern weglasse? Das habe ich noch nicht verstanden

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

                  Schedule (und setTimeout, setInterval) erwarten als zweiten Parameter eine Funktion, die verzögert aufgerufen werden soll. Das kannst du jetzt entweder inline machen mit

                  function() { ... }
                  

                  oder du kannst eine Referenz auf eine Funktion übergeben. Die Referenz ist einfach der Name einer Funktion ohne ().

                  Mit dem Konstrukt

                  function () {
                      Licht();
                  }
                  

                  erzeugst du eine Funktion, deren einzige Aufgabe es ist, die Funktion "Licht" aufzurufen. Also

                  schedule
                  |--> anonyme Funktion
                        |--> Licht
                  
                  

                  Übergibst du schedule als zweiten Parameter den Verweis auf die Licht-Funktion, sieht die Aufrufliste so aus:

                  schedule
                  |--> Licht
                  
                  

                  –-

                  Zur Syntax:

                  function test() { return 5; }
                  var result1 = test(); // enthält 5, den Rückgabewert der Funktion test
                  var result2 = test; // enthält die Funktion test
                  var result3 = result2(); // enthält 5, den Rückgabewert der Funktion test bzw. jetzt auch result2
                  
                  

                  Das geht, weil in JavaScript Funktionen einfach Variablen sind, die durch Hinzufügen der Klammern ausgeführt werden können.

                  1 Reply Last reply Reply Quote 0
                  • T
                    tempestas last edited by

                    Das drucke ich mir gleich aus, vielen Dank!

                    Ich kriege zwar inzwischen das eine oder das andere hin, aber ich fürchte, häufig ist da doch eher Glück im Spiel :lol: :lol:

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

                      von mir auch nochmal einen Dank an alle…

                      So hab ich auch wieder etwas dazu gelernt 😄

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

                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      812
                      Online

                      31.7k
                      Users

                      79.8k
                      Topics

                      1.3m
                      Posts

                      5
                      9
                      3146
                      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