Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Zeitsteuerung will nicht

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.9k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    899

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Zeitsteuerung will nicht

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
11 Beiträge 4 Kommentatoren 2.3k Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • T Offline
    T Offline
    takero78
    schrieb am zuletzt editiert von
    #1

    Hallo Zusammen,

    ich versuche mir eine Zeitsteuerung via VIS zu bauen, bei welcher ich zwei separate an- und Abschaltzeiten definieren kann.

    Zusätzlich soll es einen Schalter aktiv geben.

    Wenn ich nur die Zeiten übergebe passt das, jedoch funktioniert der Schalter aktiv nicht.

    1461_vis.jpg

    Skript:

    var ontime = null;
    var offtime1 = null;
    
    on("javascript.0.FunkStart1_1", function(dp) {
        var Einschaltzeit = dp.state.val.split(':');  // Array: [h,m]
        var timeHourOn = Einschaltzeit[0];
        var timeMinuteOn = Einschaltzeit[1];
        log(timeHourOn, "info");
        log(timeMinuteOn, "info");
        if (ontime) clearSchedule(ontime);
    
        ontime = schedule(timeMinuteOn + ' ' + timeHourOn + ' * * *', function () {
               if ("javascript.0.FunkAktiv1"/*FunkAktiv1*/ === true) {
                sendTo("telegram.0", "send", {
                text: 'Test Zeitsteuerung1 AN',
                user: 'Andreas'
                });
                console.info("telegram['Andreas']: " + 'Zeit 1 an');
               }
        });
    
    });
    
    on("javascript.0.FunkStop1_1"/*FunkStop1_1*/, function(dp) {
        var Einschaltzeit = dp.state.val.split(':');  // Array: [h,m]
        var timeHourOn = Einschaltzeit[0];
        var timeMinuteOn = Einschaltzeit[1];
        log(timeHourOn, "info");
        log(timeMinuteOn, "info");
        if (offtime1) clearSchedule(offtime1);
        offtime1 = schedule(timeMinuteOn + ' ' + timeHourOn + ' * * *', function () {
            if ("javascript.0.FunkAktiv1"/*FunkAktiv1*/ === true) {
                sendTo("telegram.0", "send", {
                text: 'Test Zeitsteuerung1 AUS',
                user: 'Andreas'
                });
                console.info("telegram['Andreas']: " + 'Zeit 1 aus');
            }
      });
    });
    
    1 Antwort Letzte Antwort
    0
    • DutchmanD Offline
      DutchmanD Offline
      Dutchman
      Developer Most Active Administrators
      schrieb am zuletzt editiert von
      #2

      @takero78:

      Hallo Zusammen,

      ! ich versuche mir eine Zeitsteuerung via VIS zu bauen, bei welcher ich zwei separate an- und Abschaltzeiten definieren kann.
      ! Zusätzlich soll es einen Schalter aktiv geben.
      ! Wenn ich nur die Zeiten übergebe passt das, jedoch funktioniert der Schalter aktiv nicht.
      ! vis.JPG
      ! Skript:
      ! ````
      var ontime = null;
      var offtime1 = null;
      ! on("javascript.0.FunkStart1_1", function(dp) {
      var Einschaltzeit = dp.state.val.split(':'); // Array: [h,m]
      var timeHourOn = Einschaltzeit[0];
      var timeMinuteOn = Einschaltzeit[1];
      log(timeHourOn, "info");
      log(timeMinuteOn, "info");
      if (ontime) clearSchedule(ontime);

      ontime = schedule(timeMinuteOn + ' ' + timeHourOn + ' * * *', function () {
             if ("javascript.0.FunkAktiv1"/*FunkAktiv1*/ === true) {
              sendTo("telegram.0", "send", {
              text: 'Test Zeitsteuerung1 AN',
              user: 'Andreas'
              });
              console.info("telegram['Andreas']: " + 'Zeit 1 an');
             }
      });
      

      });

      ! on("javascript.0.FunkStop1_1"/FunkStop1_1/, function(dp) {
      var Einschaltzeit = dp.state.val.split(':'); // Array: [h,m]
      var timeHourOn = Einschaltzeit[0];
      var timeMinuteOn = Einschaltzeit[1];
      log(timeHourOn, "info");
      log(timeMinuteOn, "info");
      if (offtime1) clearSchedule(offtime1);
      offtime1 = schedule(timeMinuteOn + ' ' + timeHourOn + ' * * *', function () {
      if ("javascript.0.FunkAktiv1"/FunkAktiv1/ === true) {
      sendTo("telegram.0", "send", {
      text: 'Test Zeitsteuerung1 AUS',
      user: 'Andreas'
      });
      console.info("telegram['Andreas']: " + 'Zeit 1 aus');
      }
      });
      });
      ```` `

      komt irgendwas im log wen du den haken setzt ?

      Ist die variable auch wirklich ein boolean (true/false) oder wert 0/1 ?

      Die abfrage "if ("javascript.0.FunkAktiv1"/FunkAktiv1/ === true) {" sieht schon richtig aus, wen der datenpunkt stimmt :)

      1 Antwort Letzte Antwort
      0
      • T Offline
        T Offline
        takero78
        schrieb am zuletzt editiert von
        #3

        Ja es ist bool. Es steht auch unter Objekten mit true. Im Log kommt rein garnichts.

        Wenn ich die if Zeile raus nehme funktioniert es auch.

        1 Antwort Letzte Antwort
        0
        • paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von
          #4

          @Dutchman:

          Die abfrage "if ("javascript.0.FunkAktiv1"/FunkAktiv1/ === true) {" sieht schon richtig aus, wen der datenpunkt stimmt `
          Nein, sieht sie nicht. Richtig:

          if (getState("javascript.0.FunkAktiv1"/*FunkAktiv1*/).val === true) {
          

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

          1 Antwort Letzte Antwort
          0
          • DutchmanD Offline
            DutchmanD Offline
            Dutchman
            Developer Most Active Administrators
            schrieb am zuletzt editiert von
            #5

            Oeps Paul hat recht, ohne .val kommt ja kein Wert zum vergleichen ich krische jetzt mal wieder ins Loch….

            Sent from my iPhone using Tapatalk

            1 Antwort Letzte Antwort
            0
            • T Offline
              T Offline
              takero78
              schrieb am zuletzt editiert von
              #6

              Verdammt, stimmt… Das getstate fehlt auch... Ich werde glaube ich nie ein Fan von Java..

              Danke

              1 Antwort Letzte Antwort
              0
              • S Offline
                S Offline
                simpixo
                schrieb am zuletzt editiert von
                #7

                @takero78:

                Hallo Zusammen,

                ich versuche mir eine Zeitsteuerung via VIS zu bauen, bei welcher ich zwei separate an- und Abschaltzeiten definieren kann.

                Zusätzlich soll es einen Schalter aktiv geben.

                Wenn ich nur die Zeiten übergebe passt das, jedoch funktioniert der Schalter aktiv nicht.

                vis.JPG `

                Hallo takero78

                Könntest du auch das Widget veröffentlichen? Sieht toll aus….

                Schon mal ein Danke dafür

                Gruß

                Adrian

                1 Antwort Letzte Antwort
                0
                • T Offline
                  T Offline
                  takero78
                  schrieb am zuletzt editiert von
                  #8

                  Hallo Adrian,

                  das ist kein einzelnes Widget. Das ist quasi aus einzelnen Elementen zusammengestellt.

                  Viele Grüße

                  1 Antwort Letzte Antwort
                  0
                  • T Offline
                    T Offline
                    takero78
                    schrieb am zuletzt editiert von
                    #9

                    Hallo,

                    ich nutze da im ersten Post verwendete Script. Dies funktioniert auch Tadellos, nur habe ich das Problem das bei einem Systemneustart die Zeiten nicht automatisch neu gesetzt werden.

                    Was auch relativ logisch ist, da das Script ja nur auf Änderungen an den Zeiten reagieren soll.

                    Gibt es einen einfachen schnellen Weg dieses Problem zu umgehen?

                    Ich hatte überlegt einfach ein getState und ein setState bei Scripstart zu setzten, aber ist das sauber?

                    Jemand eine bessere Idee?

                    1 Antwort Letzte Antwort
                    0
                    • paul53P Offline
                      paul53P Offline
                      paul53
                      schrieb am zuletzt editiert von
                      #10

                      @takero78:

                      Ich hatte überlegt einfach ein getState und ein setState bei Scripstart zu setzten, aber ist das sauber?

                      Jemand eine bessere Idee? `
                      Das mit dem setState ist nicht so gut. Vorschlag:

                      var ontime = null;
                      var offtime1 = null;
                      var Einschaltzeit = getState("javascript.0.FunkStart1_1").val.split(':');
                      var Ausschaltzeit = getState("javascript.0.FunkStop1_1").val.split(':');
                      
                      function setOn() {
                          var timeHourOn = Einschaltzeit[0];
                          var timeMinuteOn = Einschaltzeit[1];
                          log(timeHourOn, "info");
                          log(timeMinuteOn, "info");
                          if (ontime) clearSchedule(ontime);
                      
                          ontime = schedule(timeMinuteOn + ' ' + timeHourOn + ' * * *', function () {
                              if (getState("javascript.0.FunkAktiv1").val === true) {
                                  sendTo("telegram.0", "send", {
                                  text: 'Test Zeitsteuerung1 AN',
                                  user: 'Andreas'
                                  });
                                  console.info("telegram['Andreas']: " + 'Zeit 1 an');
                              }
                          });
                      }
                      
                      function setOff() {
                          var timeHourOn = Ausschaltzeit[0];
                          var timeMinuteOn = Ausschaltzeit[1];
                          log(timeHourOn, "info");
                          log(timeMinuteOn, "info");
                          if (offtime1) clearSchedule(offtime1);
                          offtime1 = schedule(timeMinuteOn + ' ' + timeHourOn + ' * * *', function () {
                              if (getState("javascript.0.FunkAktiv1").val === true) {
                                  sendTo("telegram.0", "send", {
                                  text: 'Test Zeitsteuerung1 AUS',
                                  user: 'Andreas'
                                  });
                                  console.info("telegram['Andreas']: " + 'Zeit 1 aus');
                              }
                          });
                      }
                      
                      setOn();  // Script start
                      setOff();  // Script start
                      
                      on("javascript.0.FunkStart1_1", function(dp) {
                          Einschaltzeit = dp.state.val.split(':');  // Array: [h,m]
                          setOn();
                      });
                      
                      on("javascript.0.FunkStop1_1"/*FunkStop1_1*/, function(dp) {
                          Ausschaltzeit = dp.state.val.split(':');  // Array: [h,m
                          setOff();
                      });
                      

                      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                      1 Antwort Letzte Antwort
                      0
                      • T Offline
                        T Offline
                        takero78
                        schrieb am zuletzt editiert von
                        #11

                        Danke, das sieht gut aus :-)

                        1 Antwort Letzte Antwort
                        0
                        Antworten
                        • In einem neuen Thema antworten
                        Anmelden zum Antworten
                        • Älteste zuerst
                        • Neuste zuerst
                        • Meiste Stimmen


                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        746

                        Online

                        32.6k

                        Benutzer

                        82.2k

                        Themen

                        1.3m

                        Beiträge
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                        ioBroker Community 2014-2025
                        logo
                        • Anmelden

                        • Du hast noch kein Konto? Registrieren

                        • Anmelden oder registrieren, um zu suchen
                        • Erster Beitrag
                          Letzter Beitrag
                        0
                        • Home
                        • Aktuell
                        • Tags
                        • Ungelesen 0
                        • Kategorien
                        • Unreplied
                        • Beliebt
                        • GitHub
                        • Docu
                        • Hilfe