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

API iRidium. Сценарии (Routines)

Методы и свойства управления серверными сценариями, позволяющие работать напрямую с оборудованием или через элемент TimeTable.

Сценарий автоматически запускается при возникновении определенного события: при получении данных от оборудования или срабатывании событий расписания.

примечание
  • Подробнее о серверных сценариях в iRidium Studio здесь.

  • Описание работы с элементом TimeTable вы найдете по этой ссылке.

Методы

IR.AddProRoutine()

Создание серверного сценария.

Синтаксис: IR.AddProRoutine( name, routine_type, schedule_type);

ПараметрЗначениеОписание
name"Routine 1"type: String
Уникальное имя серверного сценария
rowspan="2" routine_typeIR.ROUTINE_TYPE_AUTONOMICtype: Object
Обычный серверный сценарий
IR.ROUTINE_TYPE_TIMETABLEСценарий, позволяющий работать с элементом Timetable
rowspan="2" schedule_typeIR.ROUTINE_SERVICE_SCHEDULE_TYPE_WEEKLY_CYCLEtype: Object
Недельное расписание
IR.ROUTINE_SERVICE_SCHEDULE_TYPE_CALENDARКалендарное расписание
На выходе
Object[Object ProRoutinePrototype]type: Object
Экземпляр объекта серверного сценария

Пример

var routine = IR.AddProRoutine("Routine 1", IR.ROUTINE_TYPE_TIMETABLE, IR.ROUTINE_SERVICE_SCHEDULE_TYPE_WEEKLY_CYCLE); // недельное расписание

var routine2 = IR.AddProRoutine("Routine 2", IR.ROUTINE_TYPE_TIMETABLE, IR.ROUTINE_SERVICE_SCHEDULE_TYPE_CALENDAR); // календарное расписание

IR.GetProRoutine()

Позволяет получить доступ к созданному сценарию.

Синтаксис: IR.GetProRoutine( name / ID);

ПараметрЗначениеОписание
name"Routine 1"type: String
Имя серверного сценария
ID1type: Number
Идентификатор серверного сценария
На выходе
Object[Object ProRoutinePrototype]type: Object
Экземпляр объекта серверного сценария

Пример IR.Log("GET ROUTINE: " + IR.GetProRoutine("Routine 1")); // [Object proRoutinePrototype]

IR.GetProRoutines()

Позволяет получить доступ ко всем серверным сценариям в проекте.

Синтаксис: IR.GetProRoutines()

ПараметрЗначениеОписание
Array[[object ProRoutinePrototype],
[object ProRoutinePrototype]]
type: Array
Массив объектов серверных сценариев

Пример IR.Log("GET ROUTINE: " + IR.GetProRoutines()); // [[Object proRoutinePrototype], [Object proRoutinePrototype]]

IR.GetScheduler()

Позволяет получить доступ к созданному расписанию.

Синтаксис:

IR.GetScheduler(#IR.GetScheduler() | name);

на входезначениеописание
name"Schedule 1"type: String
Имя расписания
На выходе
Object-type: Object
экземпляр объекта расписания

Пример var schedule = IR.GetScheduler("Schedule 1");

IR.EditRoutineSettings()

Изменить настройки правила.

Синтаксис: IR.EditRoutineSettings(name);

на входезначениеописание
name"Routine 1"type: String
Имя правила
На выходе
Object-type: Object
окно настроек правила

Пример

IR.AddListener(IR.EVENT_ITEM_PRESS, IR.GetPage("Page 1").GetItem("Item 1"), function  () { 
IR.EditRoutineSettings("Routine 1");
IR.Log("EditRoutines");
});

IR.ShowListOfAllRoutines()

Показать настройки настройки всех правил.

Синтаксис: IR.ShowListOfAllRoutines();

на входезначениеописание
Object-type: Object
окно настроек всех правил

Пример

IR.AddListener(IR.EVENT_ITEM_PRESS, IR.GetPage("Page 1").GetItem("Item 6"), function  () { 
IR.ShowListOfAllRoutines();
IR.Log("ShowList");
});

Свойства серверных сценариев

IR.GetProRoutine(name / ID). property

параметрзначениеописание
.Name"Routine 1"type: String
Позволяет задать имя сценарию
.ID1type: Number
Позволяет получить ID сценария
.Type1type: Number
Позволяет получить тип сценария
0 - обычный серверный сценарий
1 - сценарий для работы с Timetable
.Enabledtruetype: Boolean
Позволяет активировать или деактивировать сценарий
.EventsCount2type: Number
Позволяет получить количество событий, используемых в сценарии
.ConditionsCount2type: Number
Позволяет получить количество условий, используемых в сценарии
.ActionsCount2type: Number
Позволяет получить количество действий, используемых в сценарии
.ParametersCount3type: Number
Позволяет получить количество параметров сценария

Параметры серверных сценариев

Позволяет передать сценарию необходимые значения.

.AddParameter()

Создание параметра.

Синтаксис: IR.GetProRoutine(routine).AddParameter({Type,Name...});

на входезначениеописание
routine"Routine 1"type: String
Имя серверного сценария
TypeIR.ROUTINE_PARAMETER_TYPE_STRING / IR.ROUTINE_PARAMETER_TYPE_NUMBER / IR.ROUTINE_PARAMETER_TYPE_COLOR / IR.ROUTINE_PARAMETER_TYPE_SELECTtype: String / Number / RGBA / select
Тип параметра сценария
Name"numberParam"type: String
Уникальное имя параметра
ROUTINE_PARAMETER_TYPE_NUMBER
MinValue0type: Number
Минимальное значение
MaxValue100type: Number
Максимальное значение
ROUTINE_PARAMETER_TYPE_SELECT
SubTypeIR.PT_TEXT / IR.PT_INTEGER / IR.PT_FLOATtype: String / Number
Служит для преобразования значений (Value) в необходимый тип
SubParameterArrayKey: ON/OFF, Value: 1/0type: String
Выбор заданных значений
На выходе
Object[object ProRoutineParameterPrototype]type: Object
Oбъект параметра

Пример

var routine = IR.GetProRoutine(“Routine 1”); // получение доступа к сценарию
// создание параметров:
if (routine) {
// строковый параметр
var stringParam = routine.AddParameter({
Type: IR.ROUTINE_PARAMETER_TYPE_STRING,
Name: "String"
});

<!--T:30-->
// числовой параметр
var numberParam = routine.AddParameter({
Type: IR.ROUTINE_PARAMETER_TYPE_NUMBER,
Name: "Number",
MinValue: 0,
MaxValue: 100
});

<!--T:31-->
// параметр цвета
var colorParam = routine.AddParameter({
Type: IR.ROUTINE_PARAMETER_TYPE_COLOR,
Name: "Color"
});

<!--T:32-->
// параметр выбора
var selectParam = routine.AddParameter({
Type: IR.ROUTINE_PARAMETER_TYPE_SELECT,
Name: "Select",
SubType: IR.PT_INTEGER,
SubParameterArray: [{
Key: "ON",
Value: "1"
}, {
Key: "OFF",
Value: "2"
}]
});

.GetParameter()

Позволяет получить доступ к созданному параметру.

Синтаксис: routine.GetParameter( name / ID)

на входезначениеописание
routineIR.GetProRoutine("Routine 1")type: Object
Сценарий, в котором используется параметр
ID1type: Number
Уникальный идентификатор параметра
name"Color"type: String
Имя параметра
На выходе
Object[object ProRoutineParameterPrototype]type: Object
Объект параметра

Пример

// создание параметра
var colorParam = routine.AddParameter({
Type: IR.ROUTINE_PARAMETER_TYPE_COLOR,
Name: "Color",
});

<!--T:37-->
// получение параметра
IR.Log("GET PARAMETER: " + routine.GetParameter("Color"));
//GET PARAMETER: [object ProRoutineParameterPrototype]

.GetParameters()

Позволяет получить доступ ко всем параметрам, используемых в сценарии.

Синтаксис: routine.GetParameters()

на входезначениеописание
routineIR.GetProRoutine("Routine 1")type: Object
Сценарий, в котором используется параметр
На выходе
Array[[object ProRoutineParameterPrototype], [object ProRoutineParameterPrototype]]type: Array
Массив параметров

Пример


// получение параметра
IR.Log("GET PARAMETERS: " + routine.GetParameters());
//[[object ProRoutineParameterPrototype], [object ProRoutineParameterPrototype]]

.DeleteParameter()

Удаление выбранного параметра.

Синтаксис: routine.DeleteParameter(Param)

на входезначениеописание
routineIR.GetProRoutine("Routine 1")type: Object
Сценарий, в котором используется параметр
Paramroutine.AddParameter({Type: IR.ROUTINE_PARAMETER_TYPE_COLOR, Name: "Color"});type: Object
Выбранный параметр

Пример

//создание параметра
var colorParam = routine.AddParameter({
Type: IR.ROUTINE_PARAMETER_TYPE_COLOR,
Name: "Color"
});

IR.Log("DELETE_PARAMETER RESULT: " + routine.DeleteParameter(colorParam));

Свойства параметров

routine.GetParameter(name / ID).property

параметрзначениеописание
.ID1type: Number
Позволяет получить ID параметра
.Name"String"type: String
Позволяет получить имя параметра
.Type1type: Object / Number
Позволяет получить тип параметра

События серверных сценариев

Это главное условие для активации серверного сценария.

.AddEvent()

Синтаксис: routine.AddEvent({Type, ParametersValues...})

ПараметрЗначениеОписание
routineIR.GetProRoutine("Routine 1")type: Object
Объект серверного сценария
TypeIR.ROUTINE_SERVICE_TYPE_TOKENtype: Object
Активация токена
IR.ROUTINE_SERVICE_TYPE_SCHEDULEtype: Object
Активация расписания
IR.ROUTINE_SERVICE_TYPE_TOKEN
Token"Server.Tags.Virtual 1"type: String
Ссылка на токен
OperationIR.ROUTINE_COMPARE_EQUAL (==)
IR.ROUTINE_COMPARE_NOT_EQUAL (!=)
IR.ROUTINE_COMPARE_LESS (<)
IR.ROUTINE_COMPARE_MORE (>)
IR.ROUTINE_COMPARE_EQUAL_LESS (<=)
IR.ROUTINE_COMPARE_EQUAL_MORE (>=)
type: Object
Условные операторы для сравнения значений
Value"50"type: String
Значение для проверки условия
IR.ROUTINE_SERVICE_TYPE_SCHEDULE
ScheduleID1type: Number
Идентификатор расписания
ScheduleEventID1type: Number
Идентификатор события
ValueIR.SCHEDULE_EVENT_STATE_STARTtype: Object
Событие на старт
IR.SCHEDULE_EVENT_STATE_FINISHtype: Object
Событие на финиш
ParametersValues [{ParameterID: 1, Value: "1"},
{ParameterID: 2, Value: "0"}]
type: {Number, String}
Содержит список объектов со значениями

Пример

var event = routine.AddEvent({ // Создание события
Type: IR.ROUTINE_SERVICE_TYPE_SCHEDULE, // Указание типа события
ScheduleID: 0, // Идентификатор расписания
ScheduleEventID: 0, // Идентификатор события расписания
Value: IR.SCHEDULE_EVENT_STATE_START, // Активация по старту события
ParametersValues: [{
ParameterID: stringParam.ID, // Идентификатор строкового параметра
Value: "Hello, world!" // Значение параметра
}, {
ParameterID: numberParam.ID, // Идентификатор числового параметра
Value: "50" // Значение параметра
}, {
ParameterID: colorParam.ID, // Идентификатор RGBA параметра
Value: 0xFF00FFFF.toString() // Значение параметра (в строковом виде)
}, {
ParameterID: selectParam.ID, // Идентификатор параметра выбора
Value: "ON" // Значение параметра
}]
});
Важно
  • Если тип события и тип сценария отличаются, то событие не создастся!
  • Если тип сценария ROUTINE_TYPE_TIMETABLE и не созданы параметры - событие не создастся!
  • Если токен указан не правильно - событие не создастся!
  • Если тип сценария ROUTINE_TYPE_TIMETABLE, то обязательно должны быть заданы все ParametersValues, в зависимости от количества параметров, иначе событие не создастся!

.GetEvent()

Позволяет получить доступ к созданному событию.

Синтаксис: routine.GetEvent( ID)

на входезначениеописание
routineIR.GetProRoutine(“Routine 1”)type: Object
Объект серверного сценария.
ID1type: Number
Идентификатор события.
На выходе
Object[object ProRoutineServicePrototype]type: Object
Объект события.

Пример IR.Log("GET EVENT: " + routine.GetEvent(1)); //[object ProRoutineServicePrototype]

.GetEvents()

Позволяет получить доступ к массиву событий.

Синтаксис: routine.GetEvents()

на входезначениеописание
routineIR.GetProRoutine(“Routine 1”)type: Object
Объект серверного сценария.
На выходе
Array[[object ProRoutineServicePrototype],
[object ProRoutineServicePrototype]]
type: Array
Массив событий.

Пример

IR.Log("GET EVENTS: " + routine.GetEvents()); 
//[[object ProRoutineServicePrototype], [object ProRoutineServicePrototype]]

.DeleteEvent()

Удаление события.

Синтаксис: routine.DeleteEvent(еvent)

на входезначениеописание
routineIR.GetProRoutine(“Routine 1”)type: Object
Объект серверного сценария.
eventroutine.GetEvent(0)type: Object
Объект события.

Пример

// Удаление события
IR.Log("DELETE_EVENT RESULT: " + routine.DeleteEvent(event)); //true/false

Свойства событий

routine.GetEvent(ID).property

параметрзначениеописание
.Operation3type: Number
Позволяет задать тип сравнения.
.ID1type: Number
Позволяет получить ID события.
.Type4type: Number
Позволяет получить тип события.
.Value1type: Number
Позволяет задать отправляемое значение.
type: String
(ROUTINE_SERVICE_TYPE_TOKEN).
.TokenServer.Channels.Modbus TCP.Channel 1type: String
Позволяет получить имя токена.

Условия серверных сценариев

Это дополнительные условия для активации серверных сценариев. Сценарий активируется только в том случае, если произойдет событие и будут выполнены все перечисленные условия.

.AddCondition()

Создание условия.

Синтаксис: routine.AddCondition({Type,...})

на входезначениеописание
routineIR.GetProRoutine(“Routine 1”)type: Object
Объект серверного сценария.
TypeIR.ROUTINE_SERVICE_TYPE_TOKENtype: Object
Активация токена.
TypeIR.ROUTINE_SERVICE_TYPE_SCHEDULEАктивация расписания.
ROUTINE_SERVICE_TYPE_SCHEDULE
ScheduleID1type: Number
Идентификатор расписания.
ScheduleEventID1type: Number
Идентификатор события.
ValueIR.SCHEDULE_EVENT_STATE_UNKNOWNtype: Object
Расписание не активно.
ValueIR.SCHEDULE_EVENT_STATE_STARTРасписание активно.
ROUTINE_SERVICE_TYPE_TOKEN
Token"Server.Tags.Virtual 1"type: String
Токен.
OperationIR.ROUTINE_COMPARE_EQUAL(==),
IR.ROUTINE_COMPARE_NOT_EQUAL(!=),
IR.ROUTINE_COMPARE_LESS,
IR.ROUTINE_COMPARE_MORE(>),
IR.ROUTINE_COMPARE_EQUAL_LESS,
IR.ROUTINE_COMPARE_EQUAL_MORE(>=)
type: Object
Условные операторы сравнения.
Value"50"type: String
Значение токена.

Пример

var condition = routine.AddCondition({   //Создание условия
Type: IR.ROUTINE_SERVICE_TYPE_TOKEN, //Выбор типа
Value: "1", //Значение токена
Token: "Modbus TCP.Channel", //Имя токена
Operation: IR.ROUTINE_COMPARE_EQUAL //Условный оператор
});

.GetCondition()

Позволяет получить доступ к созданному условию.

Синтаксис: routine.GetCondition(ID)

на входезначениеописание
routineIR.GetProRoutine(“Routine 1”)type: Object
Объект серверного сценария.
ID1type: Number
Идентификатор условия.
На выходе
Object[object ProRoutineServicePrototype]type: Object
Объект условия.

Пример IR.Log("GET CONDITION: " + routine.GetCondition(1)); //[object ProRoutineServicePrototype]

.GetConditions()

Позволяет получить доступ к массиву созданных условий.

Синтаксис: routine.GetConditions()

на входезначениеописание
routineIR.GetProRoutine(“Routine 1”)type: Object
Объект серверного сценария.
На выходе
Array[[object ProRoutineServicePrototype],
[object ProRoutineServicePrototype]]
type: Array
Массив условий.

Пример

IR.Log("GET CONDITIONS: " + routine.GetConditions()); 
// [[object ProRoutineServicePrototype], [object ProRoutineServicePrototype]]

.DeleteCondition()

Удаление условия.

Синтаксис: routine.DeleteCondition(condition)

на входезначениеописание
routineIR.GetProRoutine(“Routine 1”)type: Object
Объект серверного сценария.
conditionroutine.GetCondition(1)type: Object
Объект условия.

Пример IR.Log("DELETE CONDITION RESULT: " + routine.DeleteCondition(condition)); // true/false

Свойства условий

routine.GetCondition(ID).property

параметрзначениеописание
.Operation1type: Number
Позволяет задать тип сравнения.
.ID1type: Number
Позволяет получить ID условия.
.Type6type: Number
Позволяет получить тип условия.
.Value1type: Number
Позволяет задать отправляемое значение.
type: String
(ROUTINE_SERVICE_TYPE_TOKEN)
.TokenServer.Channels.Modbus TCP.Channel 1type: String
Позволяет получить имя токена.

Действия серверных сценариев

Действия, которые будут выполняться при активации сценария.

.AddAction()

Создание действия.

Синтаксис:

routine.AddAction({Type, Value...})

на входезначениеописание
routineIR.GetProRoutine(“Routine 1”)type: Object
Объект серверного сценария.
TypeIR.ACTION_TYPE_SEND_NUMBER,
IR.ACTION_TYPE_SEND_TEXT,
IR.ACTION_TYPE_SEND_TAG,
IR.ACTION_TYPE_SEND_DATA,
IR.ACTION_TYPE_DELAY,
IR.ACTION_TYPE_NUMBER_TO_TAG,
IR.ACTION_TYPE_TEXT_TO_TAG,
IR.ACTION_TYPE_TAG_TO_TAG
type: Object
Тип действия.
ValueACTION_TYPE_SEND_NUMBER,
ACTION_TYPE_SEND_TEXT,
ACTION_TYPE_NUMBER_TO_TAG,
ACTION_TYPE_TEXT_TO_TAG,
ACTION_TYPE_DELAY(мс)
Пример: “50”;
ACTION_TYPE_SEND_TAG,
ACTION_TYPE_TAG_TO_TAG
Пример: "Server.Tags.Virtual 1";
ACTION_TYPE_SEND_DATA
Пример: "01, 02, 03, 04, AA, BB"
type: String
Отправляемые значения.
Channel"AV & Custom Systems (HTTP).AV Control Command"type: String
Имя канала, в который отправляем значение.
Используется только в:
IR.ACTION_TYPE_SEND_NUMBER,
IR.ACTION_TYPE_SEND_TEXT,
IR.ACTION_TYPE_SEND_TAG,
IR.ACTION_TYPE_SEND_DATA
Tag"Server.Tags.Virtual 1"Type: String
Имя токена, в который отправляем значения.
Используется только в:
IR.ACTION_TYPE_NUMBER_TO_TAG,
IR.ACTION_TYPE_TEXT_TO_TAG,
IR.ACTION_TYPE_TAG_TO_TAG

Пример

var numberAction = routine.AddAction({   //Создание действия
Type: IR.ACTION_TYPE_NUMBER_TO_NUMBER, //Тип данных
Channel: "Modbus TCP.Channel 1", //Имя канала
Value: "1" //Отправляемое значение
});


var colorAction = routine.AddAction({ //Создание действия
Type: IR.ACTION_TYPE_NUMBER_TO_TAG, //Тип данных
Tag: "Server.Tags.Virtual 1", //Имя тэга
Value: "1" //Отправляемое значение
});
примечание
  • Создание действия для элемента Timetable, с применением параметров:
на входезначениеописание
routineIR.GetProRoutine(“Routine 1”)type: Object
Объект серверного сценария.
TypeIR.ACTION_TYPE_SEND_TAGtype: Object
Тип действия.
Value"Routines." + routine.Name + "." + parameter.Nametype: String
routine - объект рутины,
parameter - объект выбранного параметра.
Channel"AV & Custom Systems (HTTP).AV Control Command"type: String
Имя канала, в который отправляем значение.
Tag"Server.Tags.Virtual 1"Type: String
Имя токена, в который отправляем значения.

Пример

var colorAction = routine.AddAction({   //Создание действия
Type: IR.ACTION_TYPE_SEND_TAG, //Тип данных
Channel: "AV & Custom Systems (TCP).Command 1", //Имя канала
Value: "Routines." + routine.Name + "." + colorParam.Name //Отправляемое значение
});

.GetAction()

Позволяет получить доступ к созданному действию.

Синтаксис:

routine.GetAction(ID)

на входезначениеописание
routineIR.GetProRoutine(“Routine 1”)type: Object
Объект серверного сценария.
ID0type: Number
Идентификатор действия.
На выходе
Object[object ProRoutineActionPrototype]type: Object
Объект действия.

Пример IR.Log("GET ACTION: " + routine.GetAction(0)); //[object ProRoutineActionPrototype]

.GetActions()

Позволяет получить доступ к массиву действий.

Синтаксис:

routine.GetActions()

на входезначениеописание
routineIR.GetProRoutine(“Routine 1”)type: Object
Объект серверного сценария.
На выходе
Array[[object ProRoutineActionPrototype],
[object ProRoutineActionPrototype]]
type: Array
Массив объектов действий.

Пример

IR.Log("GET ACTIONS: " + routine.GetActions()); 
//[[object ProRoutineActionPrototype], [object ProRoutineActionPrototype]]

.DeleteAction()

Удаление действия

Синтаксис:

routine.DeleteAction(action)

на входезначениеописание
routineIR.GetProRoutine(“Routine 1”)type: Object
Объект серверного сценария.
actionroutine.GetAction(0)type: Object
Объект действия.

Пример IR.Log("DELETE ACTION RESULT: " + routine.DeleteAction(colorAction)); // true/false

Свойства действий

routine.GetAction(ID). property

параметрзначениеописание
.Channel"AV & Custom Systems (TCP).AV Control Command"type: String
Позволяет задать имя канала.
.ID1type: Number
Позволяет получить ID действия.
.Type11type: Number
Позволяет получить тип действия.
.Value1type: Number
Позволяет задать значение.
.Tag"Server.Tags.Virtual 1"type: String
Позволяет задать имя тега.