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. JavaScript
  5. Mit "new Date()" im Script arbeiten?

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    22
    1
    1.2k

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.5k

Mit "new Date()" im Script arbeiten?

Geplant Angeheftet Gesperrt Verschoben JavaScript
3 Beiträge 2 Kommentatoren 600 Aufrufe 1 Watching
  • Ä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.
  • IdleBitI Offline
    IdleBitI Offline
    IdleBit
    schrieb am zuletzt editiert von
    #1

    Hi,

    ich bin noch ganz frisch in der ioBroker Szene.
    Jetzt habe ich ein Script geschrieben wo ich die den aktuellen Tag und Stunde verarbeitete, jetzt kommt es mir so vor das immer mit der Zeit beim Script start gearbeitet wird, und nicht die aktuelle....
    Kann das sein?

    var _timeout;
    var _linksLEDStripe;
    var _rechtsLEDStripe;
    var _isNightLight = IsNightLight();
    var _timeoutTime = _isNightLight ? 22000 /*Abends*/ : 120000 /*Tagsüber*/;
    
    on({ id: new RegExp('zigbee.0.00158d00029a98ab.occupancy' + '|' + 'zigbee.0.00158d00024de713.opened'), change: 'ne' }, function (obj) {
        _linksLEDStripe = getState('zigbee.0.84182600000c6dfd.state').val;
        _rechtsLEDStripe = getState('zigbee.0.84182600000c787d.state').val;
    
        if ((getState('zigbee.0.00158d00024de713.opened').val || getState('zigbee.0.00158d00029a98ab.occupancy').val) && parseInt(getState('zigbee.0.00158d00029a98ab.illuminance').val) <= 40) {
            if (_timeout) {
                clearTimeout(_timeout);
                _timeout = null;
            }
    
            if (!_linksLEDStripe && !_isNightLight) {
                setState('zigbee.0.84182600000c6dfd.state', true);
            }
    
            if (!_rechtsLEDStripe) {
                setState('zigbee.0.84182600000c787d.state', true);
            }
        }
        else {
            if (_linksLEDStripe || _rechtsLEDStripe) {
                _timeout = setTimeout(function () {
                    setState('zigbee.0.84182600000c6dfd.state', false);
                    setState('zigbee.0.84182600000c787d.state', false);
                }, _timeoutTime);
            }
        }
    });
    
    function IsNightLight() {
        var _currentDate = new Date();
        var _weekDay = _currentDate.getDay();
        var _hour = _currentDate.getHours();
    
        // Wochentags
        if (_weekDay != 6 && _weekDay != 0) {
           return (_hour < 7 || _hour >= 21);
        }
        // Wochenende
        else {
            return (_hour < 9 || _hour >= 22);
        }
    }
    
    IdleBitI 1 Antwort Letzte Antwort
    0
    • IdleBitI IdleBit

      Hi,

      ich bin noch ganz frisch in der ioBroker Szene.
      Jetzt habe ich ein Script geschrieben wo ich die den aktuellen Tag und Stunde verarbeitete, jetzt kommt es mir so vor das immer mit der Zeit beim Script start gearbeitet wird, und nicht die aktuelle....
      Kann das sein?

      var _timeout;
      var _linksLEDStripe;
      var _rechtsLEDStripe;
      var _isNightLight = IsNightLight();
      var _timeoutTime = _isNightLight ? 22000 /*Abends*/ : 120000 /*Tagsüber*/;
      
      on({ id: new RegExp('zigbee.0.00158d00029a98ab.occupancy' + '|' + 'zigbee.0.00158d00024de713.opened'), change: 'ne' }, function (obj) {
          _linksLEDStripe = getState('zigbee.0.84182600000c6dfd.state').val;
          _rechtsLEDStripe = getState('zigbee.0.84182600000c787d.state').val;
      
          if ((getState('zigbee.0.00158d00024de713.opened').val || getState('zigbee.0.00158d00029a98ab.occupancy').val) && parseInt(getState('zigbee.0.00158d00029a98ab.illuminance').val) <= 40) {
              if (_timeout) {
                  clearTimeout(_timeout);
                  _timeout = null;
              }
      
              if (!_linksLEDStripe && !_isNightLight) {
                  setState('zigbee.0.84182600000c6dfd.state', true);
              }
      
              if (!_rechtsLEDStripe) {
                  setState('zigbee.0.84182600000c787d.state', true);
              }
          }
          else {
              if (_linksLEDStripe || _rechtsLEDStripe) {
                  _timeout = setTimeout(function () {
                      setState('zigbee.0.84182600000c6dfd.state', false);
                      setState('zigbee.0.84182600000c787d.state', false);
                  }, _timeoutTime);
              }
          }
      });
      
      function IsNightLight() {
          var _currentDate = new Date();
          var _weekDay = _currentDate.getDay();
          var _hour = _currentDate.getHours();
      
          // Wochentags
          if (_weekDay != 6 && _weekDay != 0) {
             return (_hour < 7 || _hour >= 21);
          }
          // Wochenende
          else {
              return (_hour < 9 || _hour >= 22);
          }
      }
      
      IdleBitI Offline
      IdleBitI Offline
      IdleBit
      schrieb am zuletzt editiert von
      #2

      Ach ich Depp :)

      habe es gefunden...
      Logisch wenn ich nur bei erstellen die Funktion aufrufe ....
      (Zeile 4)

      DutchmanD 1 Antwort Letzte Antwort
      0
      • IdleBitI IdleBit

        Ach ich Depp :)

        habe es gefunden...
        Logisch wenn ich nur bei erstellen die Funktion aufrufe ....
        (Zeile 4)

        DutchmanD Offline
        DutchmanD Offline
        Dutchman
        Developer Most Active Administrators
        schrieb am zuletzt editiert von Dutchman
        #3

        @IdleBit sagte in Mit "new Date()" im Script arbeiten?:

        Logisch wenn ich nur bei erstellen die Funktion aufrufe ....

        :blush: manchmal hilft es Einfach mal laut nach zu denken :)

        Aber genau, du lädst die zeit in einer variable beim script starten, mja danach ist sie drin.
        Tip : var ist alte Schreibweise, besser const und let https://medium.com/@josephcardillo/the-difference-between-var-let-and-const-in-javascript-part-2-60fa568d0a0

        Dan harttest du beim deklarieren direct gemerkt, uhm ich mache ne const .... warte mal Zeiten ändern sich doch :blush:

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


        Support us

        ioBroker
        Community Adapters
        Donate

        775

        Online

        32.5k

        Benutzer

        81.7k

        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