Fixed: update every minute

Fixed:  Schedule: {hour: minutes:} works with summer/winter time
This commit is contained in:
ticaki
2024-01-09 21:09:43 +01:00
parent 71b84cc8d3
commit ce0892b986

View File

@@ -1397,7 +1397,7 @@ async function Init_Screensaver_Backckground_Color_Switch() {
type: "number",
name: "Color Indicator",
role: "level",
states: {0:'black', 1:'red', 2:'green', 3:'attention', 4: 'pink'},
states: {0:'black', 1:'red', 2:'green', 3:'attention', 4: 'pink', 5: 'dark red'},
read: true,
write: true
},
@@ -2175,7 +2175,7 @@ let pageId = 0;
let activePage: PageType | undefined = undefined;
//Send time to NSPanel
let scheduleSendTime = adapterSchedule(new Date().setMilliseconds(0), 1, () => {
let scheduleSendTime = adapterSchedule(new Date().setSeconds(0,0), 60, () => {
try {
SendTime();
HandleScreensaverUpdate();
@@ -9062,8 +9062,10 @@ function HandleScreensaverColors(): void {
scrSvrBGCol = rgb_dec565(scbackgroundInd3);
} else if (bgColorScrSaver == 4) {
scrSvrBGCol = rgb_dec565({red:255, green:16, blue:240});
} else if (bgColorScrSaver == 5) {
scrSvrBGCol = rgb_dec565({ red: 100, green: 0, blue: 0 });
}
let payloadString = 'color' + '~' +
scrSvrBGCol + '~' + //background
rgb_dec565(sctime) + '~' + //time
@@ -9671,7 +9673,13 @@ type PageAlarm = NSPanel.PageAlarm;
// dont work with summer/winter time has to be fixed
/**
*
* @param time object: { hour: number, minutes: number } | starttime
* @param repeatTime in ms
* @param callback what todo
* @returns
*/
function adapterSchedule(time: {hour?: number, minute?: number} | undefined | number, repeatTime: number, callback: () => void): number|null {
if (typeof callback !== 'function') return null
const ref = Math.random() + 1;
@@ -9688,11 +9696,12 @@ function _schedule(time: {hour?: number, minute?: number} | undefined | number,
} else if (typeof time === 'number') {
targetTime = time + repeatTime * 1000;
} else {
time.hour = time.hour !== undefined ? time.hour : 0;
time.hour = time.hour !== undefined ? time.hour : 1;
time.minute = time.minute !== undefined ? time.minute : 0;
targetTime = time.hour !== undefined ? new Date().setHours(time.hour, time.minute, 0) : new Date().setMinutes(time.minute, 0);
targetTime = time.hour !== -1 ? new Date().setHours(time.hour, time.minute, 0) : new Date().setMinutes(time.minute, 0);
if (new Date().getTime() > targetTime) {
targetTime += repeatTime * 1000;
targetTime = time.hour !== -1 ? new Date(targetTime).setHours(time.hour, time.minute, 0) : new Date(targetTime).setMinutes(time.minute, 0);
}
}
const timeout = targetTime - new Date().getTime();