@Peter_Kawa, thanks! Ik zie het alleen nog ff niet, maar dat kan aan mij liggen
Misschien handig voor de context:
Ik heb een systeem waarbij ik mij aan/af moet melden. Dit wil ik automatiseren aan de hand van een trigger. Ik moet echter opgeven: starttijd + startdatum en eindtijd + einddatum. Nu wil ik me standaar bijvoorbeeld 24 uur afmelden. Ik kan startijd en eindtijd (variabele tijd) en startdatum (variabele datum) wel ophalen. Maar ik moet ook de datum van morgen hebben, dit lukt me echter nog niet goed.
Via HomeyScript voer ik onderstaand script uit (om 00:05), maar blijft om 1 of andere gekke reden de dag van “vandaag” teruggeven…
// Datum van vandaag
let today = new Date();
// Morgen uitrekenen door dag er bij op te tellen
let tomorrow = new Date(today);
tomorrow.setDate(today.getDate() + 1);
// Datum omzetten
let dd = String(tomorrow.getDate()).padStart(2, '0');
let mm = String(tomorrow.getMonth() + 1).padStart(2, '0'); // Januari is 0!
let yyyy = tomorrow.getFullYear();
let tomorrowFormatted = dd + '-' + mm + '-' + yyyy;
// Console log
console.log('Morgen is het ' + tomorrowFormatted);
// Aanmaken en updaten variabele #DatumMorgen
await tag('DatumMorgen', tomorrowFormatted);
Daarnaast wil ik ook graag kunnen rekenen met bijvoorbeeld “tijd nu” + variabele (1, 2, 4, 6, 8, 12, etc uur)
Homey works internally with UTC time; NL daylight saving time is +2
So you are now starting the script at 22:05 according to Homey’s internal time view.
Try starting that flow at 02:01, that should solve it.
.
So do you mean that variable contains the number 1, 2, 4 etc.?
// get_tomorrow+month.js
// this script returns the tomorrow's numeric date (day + month)
// USER INPUT
// Enter the month names used in Homey's language
var month01 = "January";
var month02 = "February";
var month03 = "March";
var month04 = "April";
var month05 = "May";
var month06 = "June";
var month07 = "July";
var month08 = "August";
var month09 = "September";
var month10 = "October";
var month11 = "November";
var month12 = "December";
// END USER INPUT
let SysInfo = await Homey.system.getInfo();
let UTC = new Date();
// show only the last "word" of the date human string,
// in order to return the current time
var localtime = SysInfo.dateHuman.split(" ")[4];
var month = SysInfo.dateHuman.split(" ")[2];
//var utcMonthNoTomorrow = UTC.getMonth()+1;
//var utcDayNoTomorrow = UTC.getDay()+0;
let utcDate = UTC.toDateString();
// Isolate the day number from the string
let utcDayNo = utcDate.slice(8,10);
let monthNo = UTC.toLocaleDateString().split("/")[0];
// if day number has a trailing 0, remove it
if ( utcDayNo.slice(0,1) == 0 ) {
//console.log("check: does day number have a leading zero ('0' is OK): ",utcDayNo.slice(0,1));
utcDayNo = utcDayNo.slice(1);
//console.log("check: day number without leading zero = ",utcDayNo);
}
// Add 1 for tomorrow's date
let tomorrow = Number(utcDayNo) + 1 ;
// if "tomorrow" is higher than a month's highest day number
if ( tomorrow == 29 ) {
if ( month == month02 ) {
tomorrow = 1
monthNo = 03
}
};
if ( tomorrow == 31) {
if ( month == month04 ) {
tomorrow = 1
monthNo = 05
}
if ( month == month06 ) {
tomorrow = 1
monthNo = 07
}
if ( month == month09 ) {
tomorrow = 1
monthNo = 10
}
if ( month == month11 ) {
tomorrow = 1
monthNo = 12
}
};
if ( tomorrow == 32 ) {
if ( month == month01 ) {
tomorrow = 1
monthNo = 02
}
if ( month == month03 ) {
tomorrow = 1
monthNo = 05
}
if ( month == month05 ) {
tomorrow = 1
monthNo = 06
}
if ( month == month07 ) {
tomorrow = 1
monthNo = 08
}
if ( month == month08 ) {
tomorrow = 1
monthNo = 09
}
if ( month == month10 ) {
tomorrow = 1
monthNo = 11
}
if ( month == month12 ) {
tomorrow = 1
monthNo = 01
}
};
// If day number is below 10, add a leading zero
if ( tomorrow < 10 ){
tomorrow = "0"+tomorrow
};
// Return the local time
// console.log("localtime: ",localtime);
// Enable if you like (for checking f.i.)
// console.log("Local date =", SysInfo.dateHuman);
// console.log("Month =",month);
console.log("Month number =",monthNo);
// console.log("UTC timestamp =", UTC);
// console.log("var utcDate =",utcDate);
console.log("Today number =",utcDayNo);
// console.log("var utcDayNoTomorrow =",utcDayNoTomorrow);
// console.log("var utcMonthNoTomorrow =",utcMonthNoTomorrow,"\n\n");
console.log("Tomorrow number =",tomorrow);
return(monthNo+"-"+tomorrow);