Hallo,
ich bin auf der Suche nach dem TimeRange Skript… kann es hier im Forum nicht (mehr) finden
Leider führen beide Links von hier - sowohl für Zeitbereich wie auch Datumsbereich - versehentlich zum identischen Skript.
http://www.iobroker.net/docu/?page_id=3591&lang=de
Vielen Dank.
Gruß
Thomas `
Time Range Script:
! // isTimeInRange
! function currentDate() {
! var d = new Date();
! return new Date(d.getFullYear(), d.getMonth(), d.getDate());
! }
! function addTime(strTime) {
! var time = strTime.split(':');
! var d = currentDate();
! d.setHours(time[0]);
! d.setMinutes(time[1]);
! d.setSeconds(time[2]);
! return d;
! }
! function isTimeInRange(strLower, strUpper) {
! var now = new Date();
! var lower = addTime(strLower);
! var upper = addTime(strUpper);
! var inRange = false;
! if (upper > lower) {
! // opens and closes in same day
! inRange = (now >= lower && now <= upper) ? true : false;
! } else {
! // closes in the following day
! inRange = (now >= upper && now <= lower) ? false : true;
! }
! return inRange;
! }
! // isTimeInRange ENDE
! createState('Sayit.Trigger', false, {
! name: 'Sayit-Ansage bei Bewegung steuern',
! type: 'boolean'
! });
! createState('Sayit.Zeitsteuerung', false, {
! name: 'Sayit-Ansage nur innerhalb Zeitfenster schalten',
! type: 'boolean'
! });
! var idBewegung = "hm-rpc.0.MEQ1849741.3.MOTION",
! idTrigger = 'Sayit.Trigger';
! on({id: idBewegung, val: true}, function (obj) {
! if ( isTimeInRange('06:00:00', '06:45:00') || isTimeInRange('07:00:00', '07:45:00') || isTimeInRange('8:30:00', '9:15:00')) setState(idTrigger, true); // Trigger auslösen
! });
! // Zurücksetzen vom Trigger
! schedule("46 6 * * *", function () {
! setState(idTrigger, false);
! });
! schedule("46 7 * * *", function () {
! setState(idTrigger, false);
! });
! schedule("16 9 * * *", function () {
! setState(idTrigger, false);
! });