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 über Variable

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.8k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.2k

Zeitsteuerung über Variable

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
8 Beiträge 5 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.
  • S Offline
    S Offline
    SchuetzeSchulz
    schrieb am zuletzt editiert von
    #1

    Hallo zusammen,

    ich möchte mit einem Script eine Ein- und Ausschaltzeit aus je einer Variable lesen und damit das Ein- und Ausschalten unserer Aussenbeleuchtung steuern.

    Ich mach das über eine Variable, um später die Ein- und Ausschaltzeiten über VIS einstellen zu können.

    Hier das Script:

    log("ZEITSTEUERUNG AUSSENBEREICH: Script gestartet", "info");
    
    on(/^javascript.4.Einschaltzeit/, function(obj) 
    {
        log("ZEITSTEUERUNG AUSSENBEREICH: Einschalt-Sequenz gestartet", "info");
        var StrEinschaltzeit = getState("javascript.4.Einschaltzeit").val;
        var timeHourOn = StrEinschaltzeit.substring(0, 2);
        var timeMinuteOn = StrEinschaltzeit.substring(3, 5);
        schedule(timeMinuteOn + ' ' + timeHourOn + ' * * *', function () 
        {
    	    setState('hm-rpc.0.XXXXXXXXXX.1.STATE', true);														
    	    setState('hm-rpc.0.YYYYYYYYYY.3.STATE', true);														
    	    setState('hm-rpc.0.ZZZZZZZZZZ.1.STATE', true);	            							        	
            DateObject = new Date();
            Hours = DateObject.getHours();
            Minutes = DateObject.getMinutes();
            sendTo("pushover.0", {message: 'Es ist ' + Hours + ':' + Minutes + ' Uhr, Aussenbeleuchtung Eingang eingeschaltet', title: 'Information - Zu Hause', priority: 0});
            log("ZEITSTEUERUNG AUSSENBEREICH: Es ist " + Hours + ":" + Minutes + " Uhr, Aussenbeleuchtung Eingang eingeschaltet", "info");
        });
    });
    
    

    Wenn ich nun aber javascript.4.Einschaltzeit und javascript.4.Ausschaltzeit auf jeweils eine Uhrzeit stelle, passiert leider nichts.

    In den Zuständen sind javascript.4.Einschaltzeit und javascript.4.Ausschaltzeit mit ihren korrekten Werten zu sehen.

    Habe ich hier einen Denkfehler???

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

      Da Du die komplette ID "javascript.4.Einschaltzeit" zum Triggern verwendest, solltest Du nicht RegExp verwenden. Scheduler sollten auch wieder gelöscht werden. Um von führender "0" unabhängig zu sein, macht sich eine Array-Operation besser.

      var ontime = null;
      on('javascript.4.Einschaltzeit', function(dp) {
          log("ZEITSTEUERUNG AUSSENBEREICH: Einschalt-Sequenz gestartet", "info");
          var Einschaltzeit = dp.state.val.split(':');  // Array: [h,m]
          var timeHourOn = Einschaltzeit[0];
          var timeMinuteOn = Einschaltzeit[1];
          if (ontime) clearSchedule(ontime);
          ontime = schedule(timeMinuteOn + ' ' + timeHourOn + ' * * *', function () {
             setState('hm-rpc.0.XXXXXXXXXX.1.STATE', true);                                          
             setState('hm-rpc.0.YYYYYYYYYY.3.STATE', true);                                          
             setState('hm-rpc.0.ZZZZZZZZZZ.1.STATE', true);                                               
              DateObject = new Date();
              Hours = DateObject.getHours();
              Minutes = DateObject.getMinutes();
              sendTo("pushover.0", {message: 'Es ist ' + Hours + ':' + Minutes + ' Uhr, Aussenbeleuchtung Eingang eingeschaltet', title: 'Information - Zu Hause', priority: 0});
              log("ZEITSTEUERUNG AUSSENBEREICH: Es ist " + Hours + ":" + Minutes + " Uhr, Aussenbeleuchtung Eingang eingeschaltet", "info");
          });
      });
      
      

      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
      • S Offline
        S Offline
        SchuetzeSchulz
        schrieb am zuletzt editiert von
        #3

        Jawoll, funktioniert perfekt!

        Vielen Dank!

        1 Antwort Letzte Antwort
        0
        • K Offline
          K Offline
          kirbsi
          schrieb am zuletzt editiert von
          #4

          Was mache ich falsch. Funktioniert irgendwie nicht. Was muss ich beim Anlegen der variablen beachten?

          1 Antwort Letzte Antwort
          0
          • apollon77A Offline
            apollon77A Offline
            apollon77
            schrieb am zuletzt editiert von
            #5

            Was hast du denn gemacht? Gibt es Fehlermeldungen? Dann kann man vllt besser helfen :-)

            Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

            • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
            • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
            1 Antwort Letzte Antwort
            0
            • K Offline
              K Offline
              kirbsi
              schrieb am zuletzt editiert von
              #6

              @paul53:

              Da Du die komplette ID "javascript.4.Einschaltzeit" zum Triggern verwendest, solltest Du nicht RegExp verwenden. Scheduler sollten auch wieder gelöscht werden. Um von führender "0" unabhängig zu sein, macht sich eine Array-Operation besser.

              var ontime = null;
              on('javascript.4.Einschaltzeit', function(dp) {
                  log("ZEITSTEUERUNG AUSSENBEREICH: Einschalt-Sequenz gestartet", "info");
                  var Einschaltzeit = dp.state.val.split(':');  // Array: [h,m]
                  var timeHourOn = Einschaltzeit[0];
                  var timeMinuteOn = Einschaltzeit[1];
                  if (ontime) clearSchedule(ontime);
                  ontime = schedule(timeMinuteOn + ' ' + timeHourOn + ' * * *', function () {
                     setState('hm-rpc.0.XXXXXXXXXX.1.STATE', true);                                          
                     setState('hm-rpc.0.YYYYYYYYYY.3.STATE', true);                                          
                     setState('hm-rpc.0.ZZZZZZZZZZ.1.STATE', true);                                               
                      DateObject = new Date();
                      Hours = DateObject.getHours();
                      Minutes = DateObject.getMinutes();
                      sendTo("pushover.0", {message: 'Es ist ' + Hours + ':' + Minutes + ' Uhr, Aussenbeleuchtung Eingang eingeschaltet', title: 'Information - Zu Hause', priority: 0});
                      log("ZEITSTEUERUNG AUSSENBEREICH: Es ist " + Hours + ":" + Minutes + " Uhr, Aussenbeleuchtung Eingang eingeschaltet", "info");
                  });
              });
              
              ```` `  
              

              Einschalten vom Licht funktioniert aber wie schaltet sich das Licht wieder aus?

              Wofür sind diese beiden Zeilen bzw Variablen?

              var timeHourOn = Einschaltzeit[0];

              var timeMinuteOn = Einschaltzeit[1];

              1 Antwort Letzte Antwort
              0
              • htreckslerH Offline
                htreckslerH Offline
                htrecksler
                Forum Testing
                schrieb am zuletzt editiert von
                #7

                Fürs Ausschalten brauchts ein gleichlautendes 2. Skript bzw. eine Erweiterung auf die Ausschaltzeit.

                Dieser Teil des Scriptes regiert lediglich auf die Einschaltzeit.

                Und ganau dafür sind auch die beiden Zeilen.

                Die Einschaltzeit (z. B. 17:15) wird in "timeHourOn" (17) und "timeMinuteOn" (15) zerlegt.

                Damit wird dann der schedule zusammengesetzt

                Gruss Hermann

                ioBroker auf Proxmox (Debian) auf IntelNuc als Produktivsystem

                1 Antwort Letzte Antwort
                0
                • K Offline
                  K Offline
                  kirbsi
                  schrieb am zuletzt editiert von
                  #8

                  Oh vielen Dank für die rasche Antwort.

                  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

                  836

                  Online

                  32.4k

                  Benutzer

                  81.5k

                  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