Перейти к основному содержимому

Расписание событий (Scheduler)'''

Schedule в серверной логике - это планировщик с событиями, доступен в панели SCHEDULER при настройке логики для iRidium server. Свойства событий:

  • события могут срабатывать однократно и с заданной периодичностью;
  • событие может начаться (Start) и закончиться (Finish), начало и конец события могут активировать сценарии сервера;
  • событие может находиться в процессе выполнения (In process) или не выполняться прямо сейчас (Not in process). Состояние события можно использовать как исключающее условие (BUT ONLY IF) в сценариях сервера;
  • время срабатывания события можно менять в процессе работы сервера;
  • периодичность срабатывания события нельзя менять в процессе работы сервера;
  • событие можно включить и включить в процессе работы сервера.

Studio2019_Server_Scheduler.png

Типы расписаний

Расписания делятся на 2 типа: Advanced и Simple .

Schedule_Advanced.png

Advanced - продвинутые (основные) расписания. С помощью продвинутых расписаний можно предварительно задать в студии время и дни начала и окончания события, а также период повторения события. Продвинутые расписания так же работают с элементом TimeTable.
* Подробное описание настройки продвинутых расписаний см. ниже.

Schedule_Simple.png

Simple - упрощенные расписания. Упрощенные расписания имеют меньше параметров настроек, но дают возможность работать с редактируемыми сценариями из запущенного панельного проекта.

  • В упрощенных расписаниях возможно настроить только дату и время начала события. Для того, чтобы привязать действие к концу события, необходимо создать отдельное событие (Event).
  • Подробное описание настройки редактируемых сценариев описано здесь.

Настройки событий расписания

  • Name - название события.
  • Description - краткое описание (не обязательно).
  • Start - дата и время начала события.
    • Select time - дата и время.
    • Sunrise, Sunset - время восхода или заката солнца. Для использования нужно настроить астротаймер.
  • Finish - дата и время завершения события. Галочка "Specify the Date" по умолчанию снята, это значит, что событие закончится в тот же день, что началось. Поставив галочку, вы можете указать дату окончания события.
    • Select time - дата и время.
    • Sunrise, Sunset - время восхода или заката солнца. Для использования нужно настроить астротаймер.

Параметры "Sunrise" и "Sunset" имеют дополнительную возможность по смещению времени от текущего момента.

Смещение времени имеет два параметра:

"-" - временной сдвиг в отрицательную сторону относительно события;

"+" - временной сдвиг в положительную сторону относительно события.

Wait_time.png

  • Repeat - периодичность повторения события. Если выключено, событие сработает 1 раз, в указанную при настройке дату и время. Настройку повторения см. ниже.
  • End - когда завершить повторение события (если включено повторение).
    • Never - никогда.
    • Date - в указанную дату.

Repeat: настройки повторения событий

  • Repeat - периодичность повторения события.
    • Never - не повторять событие. Событие сработает 1 раз, в указанную при настройке дату и время.
    • Every Day - каждый день, в указанное время.
    • Every Week - в тот же день недели, что началось, каждую неделю. Например, каждый Пн.
    • Every 2 Weeks - в тот же день недели, что началось, каждую 2ю неделю. Например, каждое второе Вс.
    • Every Monts - в ту же дату, что началось, каждый месяц. Например, каждое 23е число.
    • Every Year - в ту же дату и месяц, что началось, каждый год. Например, каждое 1 января.
    • Custom - позволяет настроить повторение по дням, неделям, месяцам, годам, но с большим периодом. Например, каждые 3 дня, или каждый 2й понедельник указанных месяца.
      • Period - периодичность повторения.
        • By Days - повторять каждый N-й день, начиная с даты начала события. Например, каждый 2й день.
          • Every: Days - интервал повторения в днях, от 1 до 365. * * * * By Weeks - повторять каждую N-ю неделю, в указанные дни недели, начиная с даты начала события. Например, четверг каждой 2й недели.
          • Every: Weeks - интервал повторения в неделях, от 1 до 52. * * * * * On specified days of week - укажите дни недели, в которые нужно повторять событие.
        • By Months - повторять каждый N-й месяц. Выберите принцип повторения: в указанные числа месяца / в указанные дни месяца. Например, каждый 2й месяц, 23 число. Или каждый 1й понедельник месяца.
          • Every: Months - интервал повторения в месяцах, от 1 до 12. * * * * * On specified dates of month - повторение в указанные числа месяца. Можно выбрать несколько чисел.
          • On specified days of month - повторение в указанные дни месяца: 1й понедельник, 4е воскресенье, ...
        • By Years - повторять каждый N-й год.
          • Every: Years - интервал повторения в годах.
          • On specified months -месяцы года, когда событие будет повторяться. Оно сработает в дату начала события.
          • On specified days - для повторения в указанный день недели, а не дату месяца, поставьте галочку "At specified Day". Например, можно настроить срабатывание в 1й понедельник месяца.
  • End - дата, в которую повтор события должен завершиться.
    • Never - никогда.
    • Date - выбор даты.

Астротаймер

Астротаймер предназначен для создания расписаний и правил, связанных с восходом и закатом солнца. Например, необходимо создать расписание, по которому уличное освещение будет включаться на закате и отключаться на рассвете. Для работы с астротаймером не требуется подключение к интернету.

  1. Откройте Настройки серверного проекта:

Studio2019_ServerSettings_Open_1.png

  1. Укажите параметры Location :
  • Latitude и Longitude - широта и долгота геопозиции сервера, в виде десятичной дроби.

Studio2019_Scheduler_Location.png

На вкладке System tokens серверного проекта, вы найдете токены Latitude и Longitude в папке Project . Эти токены хранят значения долготы и широты, указанные в настройках проекта. Значения токенов можно изменить или получить с помощью скриптовых методов IR.SetVariable и IR.GetVariable.

LL.png

Пример:

IR.AddListener(IR.EVENT_START, 0, function () {
<translate>
<!--T:45-->
//записать в токен "Latitude" значение "16.155562":</translate>
IR.SetVariable("System.Project.Latitude", 16.155562);
<translate>
<!--T:46-->
//присвоить переменной "lat1" значение токена "Latitude":</translate>
var lat1 = IR.GetVariable("System.Project.Latitude");

<translate>
<!--T:47-->
//записать в токен "Longitude" значение "122.145897":</translate>
IR.SetVariable("System.Project.Longitude", 122.145897);
<translate>
<!--T:48-->
//присвоить переменной "long1" значение токена "Longitude":</translate>
var long1 = IR.GetVariable("System.Project.Longitude");

<translate>
<!--T:49-->
//вывести значения переменных в лог:</translate>
IR.Log(lat1 + " / " + long1);
});
  1. Настройте Правила для работы астротаймера, более подробно о настройке можно прочитать здесь.