You could use a timer to ask a time server what time it is every minute and check if it is currently 23:00. I tried to do a test implementation below. You still have to insert your schedule enabling into the if clause. Also change the time zone accordingly, I currently set it to German time. There is also the problem with missing the target time because the polling intervall is exactly 60 seconds, which means we could possibly skip it. Good luck:
[script]
[/script]
[script]let CONFIG = {
[/script]
[script] pollingInterval: 60 * 1000,
[/script]
[script] pollingUrl: "https://timeapi.io/api/Time/curre…e=Europe/Berlin",
[/script]
[script] hour: 23,
[/script]
[script] minute: 00,
[/script]
[script]};
[/script]
[script]
[/script]
[script]Timer.set(
[/script]
[script] CONFIG.pollingInterval,
[/script]
[script] true, // Run periodically
[/script]
[script] function (ud) {
[/script]
[script] Shelly.call("HTTP.REQUEST",
[/script]
[script] { method: "GET", url: CONFIG.pollingUrl, timeout: 10 },
[/script]
[script] function (res, error_code, error_msg, ud) {
[/script]
[script] print("errors-http-post:", error_code, error_msg);
[/script]
[script] if (error_code === 0) {
[/script]
[script] let parsedBody = JSON.parse(res.body);
[/script]
[script] print("Time server response:", res.body);
[/script]
[script] if (parsedBody.hour === CONFIG.hour && parsedBody.minute === CONFIG.minute) {
[/script]
[script] print("test");
[/script]
[script] // do your thing
[/script]
[script] }
[/script]
[script] }
[/script]
[script] },
[/script]
[script] null
[/script]
[script] );
[/script]
[script] },
[/script]
[script] null
[/script]
[script]);
[/script]
[script][/script]