Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Tage bestimmen an dem man Frei hat

    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

    Tage bestimmen an dem man Frei hat

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

      Hallo,

      bin gerade dabei mich mit dem ioBroker anzufreunden, komme soweit auch mit den Adaptern klar.

      Leider habe ich leichte Schwierigkeiten mit den schreiben von Skripten. Habe bis jetzt zwei kleinere geschrieben, die auch Wunderbar klappen.

      Jetzt möchte ich eins erstellen, womit ich eine Variable in der HM setzte. Die alle 4 Wochen nur "WAHR" ist (z.B. jeden 4ten Montag und jeden 4ten Mittwoch).

      Ich danke schon mal im Voraus.

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

        Vorschlag:

        const idSV = 'hm-rega.0.7868';
        
        function woche4(compare) {
           var weeks = new Date().getTime() / (7 * 24 * 3600 * 1000);
           if(Math.floor(weeks % 4) == compare) setState(idSV, true);
           else setSate(idSV, false);
        }
        
        schedule('0 0 * * 1', function() {  // montags
           woche4(3);  // Vergleichswert (0, 1, 2, 3) anpassen !
        });
        
        schedule('0 0 * * 3', function() {  // mittwochs
           woche4(2);  // Vergleichswert anpassen !
        }); 
        
        

        EDIT: Schedule und Vertipper korrigiert.

        1 Reply Last reply Reply Quote 0
        • J
          JavaMafia last edited by

          Danke für deine Antwort, würde es gerne Testen, aber leider bekomme ich eine Fehlermeldung in den Zeilen 11, 13 ,15.

          Ich habe auch die Variablen ID eingetragen, denke das dies so richtig ist.

          Bin mich leider erst am einarbeiten in Sachen Scripte.

          const idSV = 'hm-rega.0.7868';
          
          function woche4(compare) {
             var weeks = new Date().getTime() / (7 * 24 * 3600 * 1000);
             if(Math.floor(weeks % 4) == compare) setState(idSV, true);
             else setSate(idSV, false);
          }
          
          schedule('0 0 0 * 1', function() {  // montags
             woche4(3);  // Vergleichswert (0, 1, 2, 3) anpassen !
          ));
          
          schedule('0 0 0 * 3', function() {  // mittwochs
             woche4(2);  // Vergleichswert anpassen !
          )); 
          
          1 Reply Last reply Reply Quote 0
          • T
            tempestas last edited by

            
            const idSV = 'hm-rega.0.7868';
            
            function woche4(compare) {
               var weeks = new Date().getTime() / (7 * 24 * 3600 * 1000);
               if(Math.floor(weeks % 4) == compare) setState(idSV, true);
               else setSate(idSV, false);
            }
            
            schedule('0 0 0 * 1', function() {  // montags
               woche4(3);  // Vergleichswert (0, 1, 2, 3) anpassen !
            });
            
            schedule('0 0 0 * 3', function() {  // mittwochs
               woche4(2);  // Vergleichswert anpassen !
            }); 
            
            

            waren nur zwei Vertipper

            1 Reply Last reply Reply Quote 0
            • J
              JavaMafia last edited by

              Leider klappt das nicht so ganz.

              Es wird mir immer wieder die Variable auf "true" gesetzt. Wofür ist dieser````
              woche4(3)

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

                @JavaMafia:

                Wofür ist dieser

                woche4(3)
                ```` `  
                

                An die Funktion wird der Vergleichswert (0 bis 3) für die Woche übergeben, in der die SV am entsprechenden Wochentag true wird (jede 4. Woche).

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

                  Sorry, das Schedule ist falsch. Richtig:

                  schedule('0 0 * * 1', function() {  // montags
                     woche4(3);  // Vergleichswert (0, 1, 2, 3) anpassen !
                  });
                  
                  schedule('0 0 * * 3', function() {  // mittwochs
                     woche4(2);  // Vergleichswert anpassen !
                  }); 
                  
                  

                  Für diese Woche ist der Vergleichswert 0 passend. Alle anderen Werte müssen false liefern.

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

                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  550
                  Online

                  31.9k
                  Users

                  80.2k
                  Topics

                  1.3m
                  Posts

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