Alles anzeigenWenn es später ist als Sonnenaufgang und früher als Sonnenuntergang nicht schalten (return).
Um diese Bedingung zu checken, müssen die Zeiten in Zahlen umgerechnet werden (function to_number -> Stunden * 60 + Minuten).
Die Astrozeiten brauchst du zum Programmstart. Deswegen einmal bei Programmstart aufrufen.
Dann eine wiederholenden Timer (t = Timer.set(60 * 1000, true, check_midnight);).
Der Timer wird jede Minute aufgerufen und wenn es 00:00 ist, werden die Astrozeiten aktualisiert.
Zusammenbauen musst du das alles bitte selber.
Code Alles anzeigen. . . function checkmidnight() { if(Shelly.getComponentStatus("sys").time === '00:00') { get_astro(); } } function time_to_number(t) { return parseInt(t.split(':')[0]) * 60 + parseInt(t.split(':')[1]); } onMotionChange: function(motion) { now = Shelly.getComponentStatus("sys").time; if(to_number(now) > to_number(sunrise) && to_number(now) < to_number(sunset)) return; Shelly.call("Switch.set", { id: 0, on: motion }); }; let sunrise; let sunset; get_astro(); t = Timer.set(60 * 1000, true, check_midnight);
Vielen Dank für die Infos. Ich habe mir letztes Wochenende ein wenig Zeit genommen und das Script zusammen gebaut. Funktioniert nun alles so wie es soll. Klasse der Support hier!!