Вот первый вариант сценария:
/**
- @desc 0 - светло, 1 - темно
- Запускается на старте сервера
- @version 5
*/
const darkness = Device("DDark_001");
const script = {
time:0,
// boot() {
// return true;
// },
start() {
let now = Date.now();
let sunrise = this.getSysTime('sunrise','today');
let sunset = this.getSysTime('sunset','today');
let val = (now < sunrise || now > sunset) ? 1 : 0;
darkness.assign('state', val);
let nextrise = (now < sunrise) ? sunrise : this.getSysTime('sunrise','tomorrow');
this.startTimer('sunrise', nextrise, 'onSunrise');
let nextset = (now < sunset) ? sunset : this.getSysTime('sunset','tomorrow');
this.startTimer('sunset', nextset, 'onSunset');
},
//Восход
onSunrise() {
ну и дальше код.
После запуска сценария в отладчике видим:
10.02 19:47:28.925 ---Started
10.02 19:47:28.926 getSysTime sunrise today = 10.02 07:47:14.968 (1644468434968)
10.02 19:47:28.926 getSysTime sunset today = 10.02 17:20:43.979 (1644502843979)
10.02 19:47:28.926 DDark_001 device common function: assign
10.02 19:47:28.927 assign[ 'state', 1, 'scen003' ]
10.02 19:47:28.927 getSysTime sunrise tomorrow = 11.02 07:45:21.239 (1644554721239)
10.02 19:47:28.927 Start timer sunrise on time 11.02 07:45:21 (1644554721239)
10.02 19:47:28.927 getSysTime sunset tomorrow = 11.02 17:22:40.361 (1644589360361)
10.02 19:47:28.927 Start timer sunset on time 11.02 17:22:40 (1644589360361)
Переходим на вкладку "Описание"
Сценарий активен. Переходим на вкладку "Редактор".
Видим, что сценарий не работает. И по факту утром и вечером состояние датчика не меняется.
А вот тут показано, что вроде как ошибка есть, но нет времени останова сценария