NEWS
Mit "new Date()" im Script arbeiten?
-
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); } }
-
Ach ich Depp
habe es gefunden...
Logisch wenn ich nur bei erstellen die Funktion aufrufe ....
(Zeile 4) -
@IdleBit sagte in Mit "new Date()" im Script arbeiten?:
Logisch wenn ich nur bei erstellen die Funktion aufrufe ....
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-60fa568d0a0Dan harttest du beim deklarieren direct gemerkt, uhm ich mache ne const .... warte mal Zeiten ändern sich doch