Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Feldinhalt in Schedule Funktion einfügen

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Feldinhalt in Schedule Funktion einfügen

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

      Ich habe in der ccu ein Feld Weckzeit.

      Mit

      var _Weckzeit = getState("hm-rega.0.21758").val;
      var _Stunden;
      var _Minuten;
      _Stunden = _Weckzeit.substring(0,2);
      _Minuten = _Weckzeit.substring(3,5);
      

      kriege ich ja schonmal das ganze auseinander

      wie kriege ich das jetzt in ein schedule?

      schedule("00 07 * * 1-5", function () {
      
      1 Reply Last reply Reply Quote 0
      • paul53
        paul53 last edited by

        Besser so:

        function macheWas() {
           // 
        }
        
        // Skriptstart
        var t = getState("hm-rega.0.21758").val.split(':');
        var sched = schedule(t[1] + ' ' + t[0] + ' * * 1-5', macheWas);
        
        on("hm-rega.0.21758", function(dp) {  // Vorgabezeit ändert sich
          clearSchedule(sched);  // bestehendes Schedule löschen
          t = dp.state.val.split(':');
          sched = schedule(t[1] + ' ' + t[0] + ' * * 1-5', macheWas);      
        });
        
        
        1 Reply Last reply Reply Quote 0
        • cash
          cash Most Active last edited by

          Nur um es richtig zu verstehen: In Zeile 2 dort wo // würde ich jetzt z. B. Eine Lampe einschalten usw.

          Und dann würde das Script pünktlich um xx:xx Uhr (Uhrzeit aus der Systemvariable) ausgeführt?

          Wenn ich danach die Uhrzeit in der Systemvariable ändere wird das Programm angetriggtert und er stellt dort die neue Uhrzeit ein dabei wird aber nicht die function machewas ausgeführt??

          Auf die idee mit split und den Doppelpunkten bin ich auch gekommen nur wußte ich nicht wie ich das umsetze :mrgreen: und dann fiel mir halt die Variante mit substring ein. War schon stolz das das funktioniert hat :mrgreen: :mrgreen:

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

            @cash:

            In Zeile 2 dort wo // würde ich jetzt z. B. Eine Lampe einschalten usw. `
            Ja.
            @cash:

            Und dann würde das Script pünktlich um xx:xx Uhr (Uhrzeit aus der Systemvariable) ausgeführt? `
            Dann würde die Funktion macheWas() pünktlich ausgeführt.
            @cash:

            er stellt dort die neue Uhrzeit ein dabei wird aber nicht die function machewas ausgeführt?? `
            Die Funktion macheWas() wird zur neu eingestellten Uhrzeit ausgeführt.

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

              Perfekt. Noch eine Frage: Wie kann ich den gleichten Timer mit 25 Minuten später erstellen?

              Das erste ist meine Weckzeit und spätestens 25 Minuten später soll dann das Licht und andere sachen wieder ausgeschaltet werden sofern sie nicht zwischenzeitlich manuell ausgeschaltet wurden…

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

                @cash:

                25 Minuten später soll dann das Licht und andere sachen wieder ausgeschaltet werden `
                Das geht mit setTimeout().

                function macheWas() {
                   // Einschalten
                   setTimeout(function() {
                      // Ausschalten
                   }, 25 * 60000);  // 25 Minuten Verzögerung   
                }
                
                
                1 Reply Last reply Reply Quote 0
                • cash
                  cash Most Active last edited by

                  Einfach nur Hammer.

                  Vielen, vielen Dank. Funktioniert perfekt.

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

                    letzte Frage zu dem Thema.

                    Bisher habe ich in einem Homematic Script abgefragt ob die aktuelle Uhrzeit vor der "Wecker aus" Zeit lag (Weckzeit + 25 Minuten).

                    War dort sehr einfach mit "Geräteauswahl Schaltzeit Wecker aus:2 bei TIMER_GET im Wertebereich größer als 1.00 s nur prüfen"

                    Könntest du mir dort nochmal auf die Sprünge helfen 8-)

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

                      @cash:

                      bei TIMER_GET im Wertebereich größer als 1.00 s nur prüfen" `
                      TIMER_GET ist ein Datenpunkt. Um außerhalb des Skripts abzufragen, ob der Timer läuft, braucht es einen zusätzlichen Datenpunkt (Typ: boolean, unter javascript.0), der nicht manuell ausgeschaltet wird.

                      function macheWas() {
                         // Einschalten
                         setState('javascript.0.timer1', true, true);
                         setTimeout(function() {
                            // Ausschalten
                            setState('javascript.0.timer1', false, true);
                         }, 25 * 60000);  // 25 Minuten Verzögerung   
                      }
                      
                      1 Reply Last reply Reply Quote 0
                      • cash
                        cash Most Active last edited by

                        Du bist ein Genie 😉

                        Hätte ich natürlich auch selber drauf kommen können. Ich muss mich da noch etwas umgewöhnen an die alternative herangehensweise von Problemen.

                        Nochmals Danke….

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        765
                        Online

                        31.7k
                        Users

                        79.8k
                        Topics

                        1.3m
                        Posts

                        2
                        10
                        524
                        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