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

API iRidi. Драйверы

функции, методы, свойства для работы с оборудованием, настроенным в проекте: создание и управление драйверами, отправка команд, обработка входящих данных

Методы​

Объект IR - глобальный объект, содержащий в себе все функции и константы API iRidi. Методы объекта IR для драйвера позволяют создать драйвер и обратиться к драйверу в проекте iRidi. Многие методы применяются к ссылке на существующий драйвер.

Ссылку на драйвер, команду, фидбэк или токен можно прописать вручную или получить её при перетягивании элемента в JS редактор (см. инструкцию.

IR.CreateDevice​

создать драйвер в проекте iRidi. Вы можете создать только драйвер типа AV & Custom Systems. Работа с другими драйверами производится после добавления их в проект из базы данных. Внимание! В iRidium V2 функция имела другой синтаксис. Поддержка старого синтаксиса есть в iRidi V3, но его использование не рекомендуется.

Синтаксис

IR.CreateDevice(type, name, {properties})

на входезначениеописание
typeIR.DEVICE_CUSTOM_TCPtype: object
тип драйвера
name"AV Driver 1"type: string
уникальное имя драйвера
propertiesHost: '192.168.0.47', Port: 80type: array
набор параметров драйвера через запятую
на выходе
Object[object DevicePrototype]type: object
ссылка на драйвер, как на объект

Пример

IR.AddListener(IR.EVENT_START,0,function() {
var driver = IR.CreateDevice(IR.DEVICE_CUSTOM_TCP, "AV Device (TCP)",
{Host: "192.168.0.47",
Port: 80,
SSL: false,
SendMode: IR.ALWAYS_CONNECTED,
ScriptMode: IR.DIRECT_AND_SCRIPT,
SendCommandAttempts: 0,
ConnectWaitTimeMax: 3000,
ReceiveWaitTimeMax: 5000,
Login: "admin",
Password: "admin"
});
IR.Log(driver); // [object DevicePrototype]
});

Примечания

Подсказка
  • набор параметров отличается для разных драйверов
  • если параметр не указан в списке, то его значение будет задано по умолчанию (т.е. можно указать только Host и Port при создании драйвера)
  • драйвер не будет создан при попытке его создания до наступления события запуска приложения IR.EVENT_START.
  • если вы создаете драйвер не при запуске приложения (не при наступлении события IR.EVENT_START), а позже, необходимо вызвать метод .Connect() для этого драйвера, чтобы он подключился к оборудованию. Драйверы, создаваемые по старту приложения, подключаются автоматически. В случае необходимости, их можно отключить методом .Disconnect().
  • на создание драйвера требуется некоторое время, поэтому в первые несколько миллисекунд отправка данных через этот драйвер будет недоступна; отправляйте данные по событию IR.EVENT_ONLINE.

Параметры AV & Custom Systems​

AV & Custom Systems (TCP):


var driver = IR.CreateDevice(IR.DEVICE_CUSTOM_TCP, "AV Device (TCP)",
{Host: "192.168.0.47",
Port: 80,
SSL: false,
SendMode: IR.ALWAYS_CONNECTED,
ScriptMode: IR.DIRECT_AND_SCRIPT,
SendCommandAttempts: 0,
ConnectWaitTimeMax: 3000,
ReceiveWaitTimeMax: 5000,
Login: "",
Password: "",
DisableQueue: false
});

AV & Custom Systems (UDP):


var driver = IR.CreateDevice(IR.DEVICE_CUSTOM_UDP, "AV Device (UDP)",
{Host: "192.168.0.47",
Port: 80,
LocalPort: 80, // port on iRidium side for data receiving
Group: null, // null - broadcast, "host" - multicast group
Multicast: false, // false - broadcast, true - multicast (if multicast group added)
ScriptMode: IR.DIRECT_AND_SCRIPT
});

AV & Custom Systems (HTTP):


var driver = IR.CreateDevice(IR.DEVICE_CUSTOM_HTTP_TCP, "AV Device (HTTP)",
{Host: "192.168.0.47",
Port: 8080,
SSL: false,
Login: "",
Password: "",
DisableQueue: false,
SendCommandAttempts: 0,
ConnectWaitTimeMax: 3000,
ReceiveWaitTimeMax: 5000,
UserAgent: ""
});

AV & Custom Systems (RS232):


var driver = IR.CreateDevice(IR.DEVICE_CUSTOM_SERIAL, "AV Device (RS232)",
{PortName: "\\\\.\\COM1", // double slash "\\" will be converted
// to single slash "\". Result: "\\.\COM1"
BaudRate: 9600,
DataBits: 8,
Parity: 0,
StopBits: 0,
Use485: false // works with RS485, not RS232
});

AV & Custom Systems (TCP Server):


var driver = IR.CreateDevice(IR.DEVICE_CUSTOM_SERVER_TCP, "iRidium TCP Server",
{Port: 2323,
MaxClients: 10 // maximum of clients connected at the same time
});

Для создания сервера с SSL необходимо включить SSL после создания драйвера, с помощью метода SetParameters


var driver = IR.CreateDevice(IR.DEVICE_CUSTOM_SERVER_TCP, "iRidium TCP Server",
{Port: 2323,
MaxClients: 10 // maximum of clients connected at the same time
});
driver.SetParameters({SSL:3});

примечание

Сервер с SSL может работать только на iRidi Server

AV & Custom Systems (UDP Server):


var driver = IR.CreateDevice(IR.DEVICE_CUSTOM_SERVER_UDP, "iRidium UDP Server",
{Port: 2323,
MaxClients: 10, // maximum of clients connected at the same time
ClientTimeOut: 100 // (ms) when the Client will be disconnected if it doesn't send data
});

Константы в настройках драйверов​

Send Mode

  • IR.ALWAYS_CONNECTED = 0; - драйвер всегда остается подключенным, может получать и отправлять данные.
  • IR.CONNECT_WHEN_SENDING = 1; - драйвер подключается в момент отправки, после отключается, может только отправлять данные.

Script Mode

  • IR.DIRECT_AND_SCRIPT = 0; // Можно отправлять команды через скрипт и через каналы редактора
  • IR.SCRIPT_ONLY = 1; // Можно отправлять команды только через скрипт

Background Mode

  • IR.BACKGROUND_OFF = 0; // Драйвер работает только при развернутом приложении
  • IR.BACKGROUND_ON = 1; // Драйвер работает как при развернутом приложении, так и при свернутом

IR.GetDevice​

получить доступ к любому драйверу в проекте iRidi. Работает для всех драйверов, а не только для созданных с помощью IR.CreateDevice.

Синтаксис

IR.GetDevice(name)

на входезначениеописание
name"Driver 1"type: string
имя драйвера в проекте iRidi
на выходе
Object[object DevicePrototype]type: Object
ссылка на драйвер

Пример

var myDriver = IR.GetDevice("AMX");
var myDriver1 = IR.GetDevice("HDL-BUS Pro Network (UDP)");
IR.Log(myDriver); // [object DevicePrototype]
IR.Log(myDriver1); // [object DevicePrototype]

Примечания

Подсказка

HDL, Domintell: при обращении используйте имя сети "HDL-BUS Pro Network (UDP)" / "Domintell Network (UDP)", а не имя конкретного устройства сети.

Далее описаны методы, которые можно применить к ссылке на драйвер, полученной с помощью IR.GetDevice.

.Connect​

установить соединение с оборудованием

Синтаксис

IR.GetDevice(name).Connect()

| на входе | значение | описание |

на выходе
успешностьtype: Boolean
успешность

Пример

IR.GetDevice("AV & Custom Systems (TCP)").Connect();

Примечания

Подсказка

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

.Disconnect​

разорвать соединение с оборудованием

Синтаксис

IR.GetDevice(name).Disconnect()

на входезначениеописание
name"Driver 1"type: string
имя драйвера в проекте iRidi
на выходе
успешностьtype: Boolean
успешность

Пример

IR.GetDevice("AV & Custom Systems (TCP)").Disconnect();

.Send​

метод можно использовать только с драйверами AV & Custom Systems и Global Cache. Позволяет отправить оборудованию произвольный набор данных (строку, число, массив)

Синтаксис

  • IR.GetDevice(name).Send([data])
  • IR.GetDevice(name).Send(array)
  • IR.GetDevice("Global Cache").Send([data], transport)
на входезначениеописание
name"Driver 1"type: string
имя драйвера в проекте iRidi
dataa, b, ctype: string
список переменных или строк: инструкций для отправки
array[a, b, c]type: array
массив переменных или строк: инструкций для отправки
transport0type: number
идентифкатор транспорта. Используется с драйвером Global Cache, когда нужно отправить данные адресно:
* 0 - порт 4998 (ИК команды, реле, сенсоры, система)
* 1 - порт 4999 (СОМ 1)
* 2 - порт 5000 (СОМ 2)
Также используется на iRidi Server и в драйвере Custom TCP Server. Позволяет выбрать, какому из подключенных клиентов отправить данные: 0 - всем, 1..n (ID клиента, полученный в IR.ACCEPT_CLIENT) - конкретному подключенному клиенту
на выходе
успешностьtype: Boolean
успешность

Пример

// AV & Custom Systems (TCP, UDP, RS232)
IR.GetDevice("AV Device").Send(['instruction', '\r\n']);


// AV & Custom Systems (HTTP)
// <Type or request>,<URI>,<Data> devided by "," so u cannot use "," inside of <URI> and <Data>
IR.GetDevice("AV Device").Send(['GET,URI']); // GET
IR.GetDevice("AV Device").Send(['POST,URI,Data']); // POST
IR.GetDevice("AV Device").Send(['PUT,URI,Data']); // PUT


// Global Cache:
// IR.GetDevice("Global Cache").Send(<DATA>, <TRANSPORT ID>)
IR.GetDevice("Global Cache").Send(['setstate,1:1,1', '\r\n'], 0)
// iRidium Server:
// IR.GetServer().Send(<DATA>, <TRANSPORT ID>)
IR.GetServer().Send(['command', '\r\n'], 1)

Примечания

Подсказка

HTTP: при отправке команды HTTP драйверу, укажите в начале метод отправки: GET, POST, PUT, через запятую укажите URI команды и Data для POST и PUT. Внутри URI и Data запятые использовать нельзя. Если ваш протокол использует в HTTP командах запятые, отправляйте их через AV & Custom Systems (TCP), формируя запросы целиком. Global Cache: обязательно указывайте ID транспорта куда должны уйти данные

.SendEx​

метод можно использовать только с драйверами AV & Custom Systems (HTTP). Позволяет отправить оборудованию массив данных с указанием на родительский объект (контекст исполнения). Внутри SendEx можно добавить ряд событий, передающих в функции данные о своей работе. События позволяют следить за получением данных от НТТР сервера и обрабатывать различные этапы работы с сервером.

Синтаксис

IR.GetDevice(name).SendEx(params, context)

на входезначениеописание
name"Driver 1"type: string
имя драйвера в проекте iRidi
params{a, b, c}type: object
параметры для отправки
contextthistype: object
объект (this) для вызова функции
на выходе
-

Пример

//Example 1:

var context = {
appleCount: 10,
key: 777,
}

var params = {
Type: "POST",
Url: "/html/login",
Data: ["Password=2007&name=authform&Login=admin"],
Headers: {"Content-Type": "application/x-www-form-urlencoded"},
cbReceiveText: function(text, code, headers) {IR.Log("cbReceiveText "+text+code+headers); IR.Log(this.key)},
cbReceiveData: function(data, code, headers) {IR.Log("cbReceiveData "+data+code+headers);},
cbReceiveCode: function(code) {IR.Log("cbReceiveCode "+code);},
cbReceiveKey: function(key,value) {IR.Log("cbReceiveKey "+key+value);},
cbReceiveStartBody: function(stream) {IR.Log("cbReceiveStartBody "+stream);},
cbReceivePartBody: function(stream) {IR.Log("cbReceivePartBody "+stream);},
cbReceiveEndBody: function(size) {IR.Log("cbReceiveEndBody "+size);},
cbTimeOut: function() {IR.Log("cbTimeOut");},
cbReceiveStream: function(stream, code, headers) {IR.Log("cbReceiveStream "+stream+code+headers);}
}

IR.GetDevice("Server REST").SendEx(params, context)

//Example 2:

IR.GetDevice("Server REST").SendEx({
Type: "GET",
Url: "/json/ok/server/channel",
Headers: {"Cookie":"ir-session-id=o8lKdEvw2ZlU"},
cbReceiveText: function(text, code, headers) {IR.Log("cbReceiveText "+text);}
});

Params

Параметры для отправки задаются следующими переменными:

ПараметрЗначениеОписание
Type"GET" / "POST" / "PUT"Тип формирования запроса.
Url"/html/login"Ссылка к обращаемому объекту.
Data["Password=2007&name=authform&Login=admin"]Дополнительный параметр, доступен для POST и PUT запросов.
Header{"Cookie":"ir-session-id=o8lKdEvw2ZlU"}Создание стандартных и нестандартных заголовков HTTP-запросов.
cbReceiveDatacbReceiveData: function(data, code, headers){IR.Log("Получение данных в формате Data: Code ответа от сервера: " + code + " Данные: "+ data);}Функция обработки ресива в формате DATA, с параметрами: data - данные, code - ответ от сервера, headers - заголовки.
cbRecieveTextcbReceiveText: function(text, code, headers){IR.Log("Получение данных в формате Text: \n Code ответа от сервера: " +code + "\n Данные: " + text + "\n Заголовки: " + headers);}Функция обработки от ресива в формате TEXT, с параметрами: data - данные, code - ответ от сервера, headers - заголовки.
cbRecieveKeycbReceiveKey: function(key, value){IR.Log("Заголовки : "+ key + "\n Значение заголовков: "+ value);},Функция обработки заголовков, с параметрами: key - заголовок, value - значение заголовка.
cbReceiveCodecbReceiveCode: function(code) {IR.Log("Code ответа от сервера: "+code);},Функция ответа от сервера, с параметрами: code - ответ от сервера.
cbRecieveStartBodycbReceiveStartBody: function(){}Функция начала обработки работы с потоком.
cbRecievePartBodycbReceivePartBody: function(stream) {IR.Log("Получение данных в формате ByteStream(Обьект данных): "+stream);},Функция "тела" обработки и получения потока.
cbRecieveEndBodycbReceiveEndBody: function(size) {IR.Log("Размер полученого потока (Stream): "+size);} ,Функция окончания обработки работы с потоком.
cbTimeOutcbTimeOut: function() {IR.Log("cbTimeOut: TimeOut")},Функция обработки, когда время ожидание ответа от сервера.
cbRecieveStreamcbReceiveStream: function(stream, code, headers) { IR.Log("Получение данных в формате ByteStream: \n Code ответа от сервера: " +code + "\n Обьект данных: " + stream); }Функция обработки потоков.

Метод SendEx() с помощью поля Headers: позволяет задавать стандартные и нестандартные заголовки HTTP-запросов. Ниже приведены некоторые стандартные заголовки и указаны их особенности при работе с методом SendEx().

ЗаголовокЗначение по умолчанию или примерОписаниеВозможность задать (переопределить) в поле HeaderСпособ задания (переопределения)
Host192.168.0.100:123Доменное имя и порт хоста запрашиваемого ресурсанетВ параметрах Host и Port драйвера AV & Custom Systems (HTTP)
ConnectionKeep-Alive или closeСпособ HTTP-соединениянетОпределяется значением поля KeepAliveOut, передаваемым методу SendEx(): если KeepAliveOut = 0, то передаётся заголовок "Connection: close"; если KeepAliveOut > 0, то передаётся заголовок "Connection: Keep-Alive"
Transfer-EncodingchunkedСамоопределение длины содержимого запросанетНе задаётся, см. заголовок Content-Length
Content-Length0Длина содержимого запросанетНе задаётся, вычисляется автоматически по содержимому запроса
Authorization-Данные для авторизациинетВ параметрах Login и Password драйвера AV & Custom Systems (HTTP). Вычисляется автоматически (Basic Authorization)
Content-Typeapplication/x-www-form-urlencodedТип содержимого запросада-
Accept/Список допустимых форматов ресурсада-
User-AgentiRidi Server/x.x.xСписок названий и версий клиента и его компонентов с комментариямидаВ параметре User-Agent драйвера AV & Custom Systems (HTTP)

Ниже описан пример написания блока Header (заголовок):


IR.GetDevice("AV & Custom Systems (HTTP)").SendEx({
Type: "GET",
Url: "/device/http",
Headers: {
"Content-Type": "application/json",
"Accept": "application/xml",
"User-Agent": "Project Server v2.0",
"Accept-Language": "en",
"Set-Cookie": "parameter=1",
},
KeepAliveOut: 0; // used for "Connection: close" header
cbReceiveText: function(text, code, headers) {IR.Log("Header: "+headers);}
});

Посмотреть как этот метод реализован в драйвере, можно в прикрепленном проект:

Подсказка

скачать:

.Set​

выполнить команду нативного драйвера, заранее настроенную в дереве команд редактора. При выполнении команды вы передаете ей значение так же, как это происходит при нажатии на кнопку в интерфейсе. Работает только для нативных драйверов. Активировать команду можно по индексу (порядковый номер в дереве, начиная с единицы) или по имени. Если команда не настроена в дереве проекта, выполнить ее нельзя.

Синтаксис

IR.GetDevice(driver).Set(command, value)

на входезначениеописание
driver"Driver 1"type: string
имя драйвера в проекте iRidi
command"Channel 1"type: string
индекс или имя команды, порядковый номер в дереве, начиная с 1, number
value100type: string
число или строка, которую нужно передать команде для отправки оборудованию, number
на выходе
успешностьtype: Boolean
успешность

Пример

//KNX. 1 - first Commands in project Tree; 100 - value to send, "Dimming" - command name
IR.GetDevice("KNX Router (KNXnet/IP)").Set(1, 100);
IR.GetDevice("KNX Router (KNXnet/IP)").Set("Dimming", 100);


//Global Cahe. "Command 1" - name of command on GC output, "" - empty data
IR.GetDevice("Global Cache").Set("Command 1", "")


//HDL. "HDL-BUS Pro Network (UDP)" - name of network
//"Dimmer" - name of Device in Network, "Channel 1" - name of Channel, 100 - value to send
IR.GetDevice("HDL-BUS Pro Network (UDP)").Set("Dimmer:Channel 1", 100);


//Domintell. "Domintell Network (UDP)" - name of network
//"DDIM01" - name of Device in Network, "Channel 1" - name of Channel, 100 - value to send
IR.GetDevice("Domintell Network (UDP)").Set("DDIM01:Channel 1", 100);


//Set data to virtual tag in iRidium Server project
IR.GetDevice("iRidium server").Set("Virtual 1", 100);
//Set data to channel in iRidium Server project
IR.GetDevice("iRidium Server").Set("KNX Router.Address 1", 1);

Примечания

Подсказка

HDL, Domintell: при обращении используйте имя сети "HDL-BUS Pro Network (UDP)" / "Domintell Network (UDP)", а не имя конкретного устройства сети.

.SetFeedback​

записать значение в канал обратной связи драйвера. Канал должен быть заранее создан в Project Device Panel. Применяется для отображения данных, полученных от оборудования при работе скриптов.

Синтаксис

IR.GetDevice(driver).SetFeedback(name, value)

на входезначениеописание
driver"Driver 1"type: string
имя драйвера в проекте iRidi
name"Channel 1"type: string
имя канала обратной связи (Feedbacks)
value"data"type: string
строка или число, которую нужно записать в канал, number
на выходе
успешностьtype: Boolean
успешность

Пример

IR.GetDevice("MyDevice").SetFeedback("Value 1", 100);

.GetFeedback​

получить значение из канала обратной связи драйвера. Канал должен быть заранее создан в Project Device Panel. Применяется для получения доступа к данным, ранее записанным в канал.

Синтаксис

IR.GetDevice(driver).GetFeedback(name)

на входезначениеописание
driver"Driver 1"type: string
имя драйвера в проекте iRidi
name"Channel 1"type: string
имя канала обратной связи (Feedbacks)
на выходе
value"data"type: string, number
строка или число, полученное из канала обратной связи

Пример

IR.GetDevice("MyDevice").GetFeedback("Value 1"); // 100

.SetParameters​

изменить указанные параметры подключения драйвера к управляемому оборудованию. Типичный пример: переключение между локальным и Интернет соединением. Возможно выборочное изменение параметров. Новые настройки подключения не меняют исходные параметры драйвера, и не сохраняются при перезапуске приложения. Любой TCP, UDP, HTTP драйвер всегда имеет стандартный набор параметров: Host, Port, Login, Password (даже, если логин и пароль драйвером не используются), и в зависимости от типа драйвера существуют наборы уникальных параметров.

Синтаксис

IR.GetDevice(driver).SetParameters({Host: host, Port: port, <other>});

на входезначениеописание
driver"Driver 1"type: string
имя драйвера в проекте iRidi
host"192.168.0.100"type: string
IP адрес или доменное имя для подключения к оборудованию
port8080type: number
порт подключения
LogLevel4type: number
Уровень лога. LogLevel
othertype: -
на выходе
успешностьtype: Boolean
успешность

Пример

IR.GetDevice("KNX").SetParameters({Host: "215.110.10.22", Port: 8080});

Примечания

Подсказка

Текущие настройки драйвера доступны как Свойства драйвера

.GetCookies​

получть массив Cookies через драйвер AV & Custom Systems (HTTP)

Синтаксис

IR.GetDevice(driver).GetCookies()

на входезначениеописание
driver"Driver 1"type: string
имя HTTP драйвера в проекте iRidi
на выходе
arraytype: array
массив Cookies

Пример

var num = IR.GetDevice("MyDevice").GetCookies()

.SetCookie​

отравляет Cookie вместе с остальной header-информацией через драйвер AV & Custom Systems (HTTP)

Синтаксис

IR.GetDevice(driver).SetCookie(key, value)

на входезначениеописание
driver"Driver 1"type: string
имя HTTP драйвера в проекте iRidi
keytype: string
ключ
valuetype: string
значение
на выходе
успешностьtype: Boolean
успешность

Пример

IR.GetDevice("MyDevice").SetCookie("TestCookie", "value")

.GetLogin​

получить логин соединения с любым драйвером

Синтаксис

IR.GetDevice(driver).GetLogin()

на входезначениеописание
driver"Driver 1"type: string
имя драйвера
на выходе
login'admin'type: string
логин драйвера

Пример

var login = IR.GetDevice("MyDevice").GetLogin()
IR.Log(login) // admin

.GetPassword​

получить пароль соединения с любым драйвером

Синтаксис

IR.GetDevice(driver).GetPassword()

на входезначениеописание
driver"Driver 1"type: string
имя драйвера
на выходе
login'admin'type: string
пароль драйвера

Пример

var pass = IR.GetDevice("MyDevice").GetPassword()
IR.Log(pass) // password

.AddChannel​

функция в разработке добавить канал драйверу

Синтаксис

IR.GetDevice(driver).AddChannel(name, data)

на входезначениеописание
driver"Driver 1"type: string
имя драйвера
name"Channel 1"type: string
имя команды
datatype: array
массив данных, специфичный для каждого драйвера
на выходе
-

Пример

/* under development */

.AddTag​

функция в разработке добавить канал обратной связи драйверу

Синтаксис

IR.GetDevice(driver).AddTag(name, data)

на входезначениеописание
driver"Driver 1"type: string
имя драйвера
name"Channel 1"type: string
имя канала обратной связи
datatype: array
массив данных, специфичный для каждого драйвера
на выходе
-

Пример

/* under development */

.AddRelation​

создать Relation - связь между объектами интерфейса и драйверами / переменными / другими объектами.

Синтаксис

IR.AddRelation(source, destination)

на входезначениеописание
source"Drivers.iRidium Server.Tags.KNX.1/0/1"type: string
источник данных
destination"UI.Popup 1.Item 1.Value"type: string
получатель данных
на выходе
-

Пример

var from = "Drivers.iRidium Server.Tags.KNX.1/0/1";
var to = "UI.Popup 1.Item 1.Value";
IR.AddRelation(from, to);

.RemoveRelation​

удалить Relation - связь между объектами интерфейса и драйверами / переменными / другими объектами.

Синтаксис

IR.RemoveRelation(source, destination)

на входезначениеописание
source"Drivers.iRidium Server.Tags.KNX.1/0/1"type: string
источник данных
destination"UI.Popup 1.Item 1.Value"type: string
получатель данных
на выходе
-

Пример

var from = "Drivers.iRidium Server.Tags.KNX.1/0/1";
var to = "UI.Popup 1.Item 1.Value";
IR.RemoveRelation(from, to);

.GetCommandsCount​

получить количество команд, настроенных в драйвере

Синтаксис

IR.GetDevice(driver).GetCommandsCount()

на входезначениеописание
driver"Driver 1"type: string
имя драйвера в проекте iRidi
на выходе
CommandsCount52type: number
количество команд устройства

Пример

var num = IR.GetDevice("MyDevice").GetCommandsCount();
IR.Log(num); // number of commands

.GetCommandAtName​

получить данные из поля Data команды драйвера. Обращение к команде производится по имени.

Синтаксис

IR.GetDevice(driver).GetCommandAtName(name)

на входезначениеописание
driver"Driver 1"type: string
имя драйвера в проекте iRidi
name"Command 1"type: string
имя команды
на выходе
object[object Object]type: object
ссылка на команду драйвера
object.id1type: number
свойство объекта: численный идентификатор команды (начинается с 1)
object.nameCommand 1type: string
свойство объекта: имя команды
object.data74,65,73,74type: array
свойство объекта: данные из поля Data команды в виде байтового массива

Пример

var Command = IR.GetDevice("AV").GetCommandAtName("Command 1");
IR.Log("id: " + Command.id + ", name: " + Command.name + ", data: " + Command.data);
// id: 1, name: Command 1, data: 74,65,73,74

.GetCommandAtPos​

получить данные из поля Data команды драйвера AV & Custom System (HTTP, TCP, UDP, RS232). Обращение к команде производится по ее порядковому номеру, начиная с 0.

Синтаксис

IR.GetDevice(driver).GetCommandAtPos(position)

на входезначениеописание
driver"Driver 1"type: string
имя драйвера в проекте iRidi
position0type: number
порядковый номер команды (начинается с 0)
на выходе
object[object Object]type: object
ссылка на команду драйвера
object.id1type: number
свойство объекта: численный идентификатор команды (начинается с 1)
object.nameCommand 1type: string
свойство объекта: имя команды
object.data74,65,73,74type: array
свойство объекта: данные из поля Data команды в виде байтового массива

Пример

var Command = IR.GetDevice("AV").GetCommandAtPos(0);
IR.Log("id: " + Command.id + ", name: " + Command.name + ", data: " + Command.data);
// id: 1, name: Command 1, data: 74,65,73,74

.GetFeedbacksCount​

получть количество каналов обратной связи, настроенных в драйвере AV & Custom System (HTTP, TCP, UDP, RS232)

Синтаксис

IR.GetDevice(driver).GetFeedbacksCount()

на входезначениеописание
driver"Driver 1"type: string
имя драйвера в проекте iRidi
на выходе
FeedbacksCount52type: number
количество каналов устройства

Пример

var num = IR.GetDevice("MyDevice").GetFeedbacksCount();
IR.Log(num); // number of feedbacks

.GetFeedbackAtName​

получить данные из поля Data канала обратной связи драйвера. Обращение к каналу обратной связи производится по имени или идентификатору.

Синтаксис

IR.GetDevice(driver).GetFeedbackAtName(name/ID)

на входезначениеописание
driver"Driver 1"type: string
имя драйвера в проекте iRidi
name/ID"Feedback 1"type: string
имя канала / идентификатор канала/number
на выходе
object[object Object]type: object
ссылка на объект: канал обратной связи
object.id1type: number
свойство объекта: численный идентификатор канала (начинается с 1)
object.nameCommand 1type: string
свойство объекта: имя канала
object.data74,65,73,74type: array
свойство объекта: данные из поля Data канала в виде байтового массива

Пример

var Feedback = IR.GetDevice("AV & Custom System (TCP)").GetFeedbackAtName("Feedback 1");
IR.Log("id: " + Feedback.id + ", name: " + Feedback.name + ", data: " + Feedback.data);
// id: 1, name: Feedback 1, data: 74,65,73,74

.GetFeedbackAtPos​

получить данные из поля Data канала обратной связи драйвера AV & Custom System (HTTP, TCP, UDP, RS232). Обращение к команде производится по ее порядковому номеру, начиная с 0. Синтаксис

IR.GetDevice(driver).GetFeedbackAtPos(position)

на входезначениеописание
driver"Driver 1"type: string
имя драйвера в проекте iRidi
position0type: number
порядковый номер канала (начинается с 0)
на выходе
object[object Object]type: object
ссылка на канал драйвера
object.id1type: number
свойство объекта: численный идентификатор канала (начинается с 1)
object.nameCommand 1type: string
свойство объекта: имя канала
object.data74,65,73,74type: array
свойство объекта: данные из поля Data канала в виде байтового массива

Пример

var Feedback = IR.GetDevice("AV & Custom System (TCP)").GetFeedbackAtPos(0);
IR.Log("id: " + Feedback.id + ", name: " + Feedback.name + ", data: " + Feedback.data);
// id: 1, name: Feedback 1, data: 74,65,73,74

.AddEndOfString​

Метод для указания строки, которая будет считаться концом сообщения в слушателе IR.EVENT_RECEIVE_TEXT. Метод работает только для AV & Custom System (TCP, UDP, RS232). При передаче больших по объему сообщений, устройства разбивают их на пакеты и в слушатель IR.EVENT_RECEIVE_TEXT сообщение приходит по частям (пакетами). С помощью описываемого метода, скрипт будет искать в пакетах указанную строку и автоматически склеивать все предыдущие пакеты в единое сообщение.

Важно

Метод не работает с драйвером HTTP . Для драйвера HTTP рекомендуется использовать метод .SendEx, который сам умеет собирать полученные частями данные в одно сообщение.

Синтаксис

IR.GetDevice(driver).AddEndOfString(string)

на входезначениеописание
driver"Driver 1"type: string
имя драйвера в проекте iRidi
string"happy"type: string
строка, определяющая конец сообщения
на выходе
object[object Object]type: object
ссылка на канал драйвера
resulttruetype: boolean
результат выполнения метода. Если входным параметром указана строка, то метод вернет true, если любой другой тип данных, то вернется false

Пример

var driver = IR.GetDevice("TCP");
IR.AddListener(IR.EVENT_START,0,function()
{
IR.Log(driver);
driver.AddEndOfString("happy");
})

.AddEndOfData​

Метод для указания последовательности байт, которые будут считаться концом сообщения в слушателе IR.EVENT_RECEIVE_DATA. Метод работает только для AV & Custom System (HTTP, TCP, UDP, RS232). При передаче больших по объему сообщений, устройства разбивают их на пакеты и в слушатель IR.EVENT_RECEIVE_DATA сообщение приходит по частям (пакетами). С помощью описываемого метода, скрипт будет искать в пакетах указанную последовательность и автоматически склеивать все предыдущие пакеты в единое сообщение

Синтаксис

IR.GetDevice(driver).AddEndOfData(data)

на входезначениеописание
driver"Driver 1"type: string
имя драйвера в проекте iRidi
data0x0d,0x0atype: string
последовательность, определяющая конец сообщения
на выходе
object[object Object]type: object
ссылка на канал драйвера
resulttruetype: boolean
результат выполнения метода. Если входным параметром указан массив байт, то метод вернет true, если любой другой тип данных, то вернется false

Пример

var driver = IR.GetDevice("TCP");
IR.AddListener(IR.EVENT_START,0,function()
{
IR.Log(driver);
driver.AddEndOfData([0x0d,0x0a]);
})

.GetChannelURI​

Метод для обращения из JS к полю URI в драйвере Custom AV HTTP. Это позволяет напрямую прочитать строку из поля URI.

Синтаксис

IR.GetDevice("AV & Custom Systems (HTTP)").GetChannelURI("AV Control Command")

на входезначениеописание
name"AV Control Command"type: string
имя команды
на выходе
URI in taghttp://YourURItype: string
стройка с URI

Пример

IR.AddListener(IR.EVENT_START,0,function()
{
var device = IR.GetDevice("AV & Custom Systems (HTTP)");
var URI = device.GetChannelURI("AV Control Command");
IR.Log("************ " + URI);
});

.SendText​

метод можно использовать только с драйверами AV & Custom Systems (WebSoket). Позволяет отправить оборудованию данные (за исключением массивов) в формате текста (string).

на входе*ЗначениеОписание
name"Driver 1"type: String — имя драйвера в проекте iRidi
context"Hello, world!" / 1234 / true и т.д.type: object (not array) / number / string / boolean — данные которые нужно передать
на выходе
успешностьtype: Booleanуспешность

Пример кода:


// Для того что-бы скрипт сработал в проекте должен быть добавлен и настроен драйвер AV & Custom Systems (WebSoket)
var value = 8.2;
function test_runner() {
IR.GetDevice("AV & Custom Systems (WebSocket)").SendText(value); // на оборудование уходит "8.2"
IR.GetDevice("AV & Custom Systems (WebSocket)").SendText(Math.ceil(value)); // на оборудование уходит "9"
};
IR.AddListener(IR.EVENT_START, 0, function () {
IR.SetTimeout(10000, test_runner)
});

Конвертация данных из поля Data​

Приведенные выше методы возвращают данные из поля Data в формате HEX. Чтобы преобразовать эти данные в ASCII строку, используйте следующую конструкцию:


// process an array of HEX bytes from Data field of Command or Feedback
function HexArrayToAsciiString(in_aArray)
{
// init string
var l_sStr = '';

// aray bypass
for(var i = 0; i < in_aArray.length; i++)
l_sStr += String.fromCharCode(parseInt(in_aArray[i], 16));

// return string in ASCII format
return l_sStr;
}
IR.AddListener(IR.EVENT_START, 0, function()
{
var l_pCommand = IR.GetDevice("Driver").GetCommandAtName(1);
IR.Log("data:" + HexArrayToAsciiString(l_pCommand.data)); // ASCII data
});

IR.GetDevices()​

получить массив всех драйверов в проекте iRidi.

Синтаксис

IR.GetDevices();

на выходе
Object[object DevicePrototype]type: Object
ссылка на массив драйверов

Пример

var devices = IR.GetDevices();
var name_1 = devices[0].Name;
var name_2 = devices[1].Name;
IR.Log("First device: " + name_1);
IR.Log("Second device: " + name_2);

IR.IsModuleLicensed​

Проверка драйвера на наличие лицензии

Важно

Внимание! Чтобы функция работала для вашего драйвера, вам необходимо согласовать поддержку вашего драйвера с нами. Для того чтобы внести ваш драйвер с список поддерживаемых, напишите нам на contact@iridiummobile.ru

Синтаксис

IR.IsModuleLicensed(ID)

на входезначениеописание
ID452type: Number
тип драйвера, согласованный с нашей компанией
на выходе
Resulttruetype: boolean
true - драйвер лицензирован, false - драйвер не лицензирован

Пример

var hasLicense1= IR.IsModuleLicensed("6")   // AV & Custom Systems
var hasLicense2= IR.IsModuleLicensed("14") // AV & Custom HTTP

События​

Событие - процесс, проброшенный в скрипты и имеющий идентификатор для отслеживания.

Слушатель - это функция, которая выполняется в случае срабатывания указанного ей события

Добавьте слушатель с помощью метода IR.AddListener

IR.AddListener(event, input, action);

  • event - идентификатор события, за которым следит слушатель
  • input - входной параметр, необходимый для создания слушателя. Если параметра нет, укажите 0
  • action - не именованная функция или ссылка на объявленную функцию, внутри которой выполняются действия
  • pointer - указатель на контекст вызова слушателя (не обязательный). Обратиться к контексту можно с помощью оператора this. Контекст может меняться во время работы программы

Пример:


// выполнение функции внутри слушателя
IR.AddListener(IR.EVENT_TAG_CHANGE, IR.GetDevice("Driver"), function (name, value)
{
IR.Log("changes: "+name+" > "+value); // changes: Feedback 1 > 100
});

IR.EVENT_ONLINE​

идентификатор события, которое срабатывает при соединении с оборудованием

Синтаксис

IR.AddListener(IR.EVENT_ONLINE, driver, function, [pointer]);

на входезначениеописание
driverIR.GetDevice("MyDriver")type: object
ссылка на драйвер
functionfunction() {}type: function
не именованная функция или обращение к функции
pointer-type: object
указатель на объект, который обслуживает функцию (опционально)
на выходе
-

Пример

IR.AddListener(IR.EVENT_ONLINE, IR.GetDevice("Global Cache"), function()
{
IR.Log("Device online");
});

IR.EVENT_OFFLINE​

идентификатор события, которое срабатывает при отключении от оборудования

Синтаксис

IR.AddListener(IR.EVENT_OFFLINE, driver, function, [pointer]);

на входезначениеописание
driverIR.GetDevice("MyDriver")type: object
ссылка на драйвер
functionfunction() {}type: function
не именованная функция или обращение к функции
pointer-type: object
указатель на объект, который обслуживает функцию (опционально)
на выходе
-

Пример

IR.AddListener(IR.EVENT_OFFLINE, IR.GetDevice("Global Cache"), function()
{
IR.Log("Device offline");
});

IR.EVENT_TAG_CHANGE​

идентификатор события, которое срабатывает при изменении статуса канала обратной связи нативного драйвера.

Синтаксис

IR.AddListener(IR.EVENT_TAG_CHANGE, driver, function, [pointer]);

на входезначениеописание
driverIR.GetDevice("MyDriver")type: object
ссылка на драйвер
functionfunction(name, value) {}type: function
не именованная функция или обращение к функции
pointer-type: object
указатель на объект, который обслуживает функцию (опционально)
на выходе
name"Feedback 1"type: string
имя изменившегося канала
value100type: number
новое значение

Пример

// Subscribe to driver
IR.AddListener(IR.EVENT_TAG_CHANGE, IR.GetDevice("KNX Router (KNXnet/IP)"), function(name, value)
{
IR.Log(name+": "+value); // Feedback 1: 100
});
// subscribe to iRidium Server variables (in Server project)
IR.AddListener(IR.EVENT_TAG_CHANGE, IR.GetServer(), function(name, value)
{
IR.Log(name+": "+value);
});

Примечания

Подсказка
  • Для драйвера AV & Custom Systems ! Используйте IR.EVENT_RECEIVE_DATA или IR.EVENT_RECEIVE_TEXT для разбора данных этого драйвера
  • HDL: вместо имени драйвера укажите имя HDL Network, по умолчанию это "HDL-BUS Pro Network (UDP)". Измененное значение канала возвращается в виде "device:channel"; device - имя исполняющего устройства HDL, channel - канал в настройках этого устройства.
  • Domintell: вместо имени драйвера укажите имя Domintell Network, по умолчанию это "Domintell Network (UDP)". Измененное значение канала возвращается в виде "device:channel"; device - имя исполняющего устройства Domintell, channel - канал в настройках этого устройства.
  • Событие IR.EVENT_TAG_CHANGE возникает:
    • при каждом получении данных (даже если значение не изменилось) в случае прямого доступа к драйверу IR.GetDevice(),
    • только при изменении данных в случае косвенного доступа через сервер IR.GetServer().

IR.EVENT_RECEIVE_DATA​

идентификатор события, которое срабатывает при получении данных драйвером AV & Custom Systems и выводит данные в виде байт-массива - массива символов в ASCII-коде. Работает только с драйверами AV & Custom Systems.

Синтаксис

IR.AddListener(IR.EVENT_RECEIVE_DATA, driver, function, [pointer]);

на входезначениеописание
driverIR.GetDevice("MyDriver")type: object
ссылка на драйвер
functionfunction(data) {}type: function
не именованная функция или обращение к функции
pointer-type: object
указатель на объект, который обслуживает функцию (опционально)
на выходе
datatype: array
массив символов

Пример

IR.AddListener(IR.EVENT_RECEIVE_DATA, IR.GetDevice("AV & Custom Systems (TCP)"), function(data)
{
IR.Log(data);
});

Примечания

Подсказка

работает только с драйверами AV & Custom Systems.

IR.EVENT_RECEIVE_TEXT​

идентификатор события, которое срабатывает при получении данных драйвером AV & Custom Systems и выводит данные в строковом формате. Работает только с драйверами AV & Custom Systems.

Синтаксис

IR.AddListener(IR.EVENT_RECEIVE_TEXT, driver, function, [pointer]);

на входезначениеописание
driverIR.GetDevice("MyDriver")type: object
ссылка на драйвер
functionfunction(text) {}type: function
не именованная функция или обращение к функции
pointer-type: object
указатель на объект, который обслуживает функцию (опционально)
на выходе
texttype: string
полученные данные в строковом формате

Пример

IR.AddListener(IR.EVENT_RECEIVE_TEXT, IR.GetDevice("AV & Custom Systems (TCP)"), function(text)
{
IR.Log(text);
});

Примечания

Подсказка

работает только с драйверами AV & Custom Systems.

IR.EVENT_ERROR​

идентификатор события, которое срабатывает, если при отправке НТТР запроса ресурс не доступен, или доступен, но не ответил за установленное время. Выводит результат в виде кода ошибки

Синтаксис

IR.AddListener(IR.EVENT_ERROR, driver, function, [pointer]);

на входезначениеописание
driverIR.GetDevice("AV & Custom Systems (HTTP)")type: object
ссылка на драйвер
functionfunction(transport_id, local_ip, local_port, host_ip, host_port, errorCode) {}type: function
не именованная функция или обращение к функции, обработает результаты срабатывания слушателя
pointer-type: object
указатель на объект, который обслуживает функцию (опционально)
на выходе
transport_id0type: number
идентификатор транспорта, 0 для любого AV драйвера, кроме Global Cache: 0 - IR, система, 1 - COM1, 2 - СОМ2
local_ipt192.168.0.100type: string
локальный адрес отправителя команды
local_port80type: number
локальный порт отправителя команды
host_ip200.200.10.10type: string
адрес получателя команды
host_port80type: number
порт получателя команды
errorCode1type: number
код ошибки:
* 1 - не удалось отправить запрос (ресурс недоступен)
* 2 - ресурс доступен, но за установленное время не пришел ответ

Пример

var driver = IR.CreateDevice(IR.DEVICE_CUSTOM_HTTP_TCP, "AV Device (HTTP)", {
Host: "ResourceUnavailable.net", Port: 80
});
driver.SendEx({
Type: "GET", Url: "/request", Headers: {},
cbReceiveText: function(text, code, headers) {IR.Log("cbReceiveText (code) = "+code);}
});
IR.AddListener(IR.EVENT_ERROR, driver, function(transport_id, local_ip, local_port, host_ip, host_port, errorCode) {
IR.Log("IR.EVENT_ERROR (code) = "+errorCode);
});

Примечания

Подсказка
  • работает только с AV & Custom Systems (HTTP)
  • не сработает, если от ресурса пришел ответ, даже с ошибкой. Для обработки ошибок используйте SendEx

IR.EVENT_CHANNEL_SET​

идентификатор события, которое срабатывает при активации команды драйвера

Синтаксис

IR.AddListener(IR.EVENT_CHANNEL_SET, driver, function, [pointer]);

на входезначениеописание
driverIR.GetDevice("MyDriver")type: object
ссылка на драйвер
functionfunction(name, value) {}type: function
не именованная функция или обращение к функции
pointer-type: object
указатель на объект, который обслуживает функцию (опционально)
на выходе
name"Command 1"type: string
имя команды, которая была активирована
value100type: number
значение Value, записанное в команду при отправке
data'string'type: string
значение, сохраненное в поле Data вызванной команды – есть только у драйверов AV & Custom Systems

Пример

IR.AddListener(IR.EVENT_CHANNEL_SET, IR.GetDevice("AV & Custom Systems (TCP)"), function(name, value, data) {
switch(name) {
case "Volume":
if (data) IR.Log("Volume set: " + data + " " + value)
else IR.Log("Volume set: " + value)
break;
case "Play":
IR.Log("Play")
break;
}
});

Примечания

Подсказка

событие сработает только для драйверов AV & Custom Systems и Global Cache

IR.EVENT_TAG_UPDATE_START​

Слушатель срабатывает по началу опроса KNX шины

Синтаксис

IR.AddListener(IR.EVENT_TAG_UPDATE_START, driver, function, [pointer]);

на входезначениеописание
driverIR.GetDevice("MyDriver")type: object
ссылка на драйвер
functionfunction(name, value) {}type: function
не именованная функция или обращение к функции
pointer-type: object
указатель на объект, который обслуживает функцию (опционально)

Пример

IR.AddListener(IR.EVENT_TAG_UPDATE_START, IR.GetDevice("KNX Router (KNXnet/IP) / Serial (UMC) 1"), function () {IR.Log("EVENT_TAG_UPDATE_START")});

IR.EVENT_TAG_UPDATE_END​

Слушатель срабатывает по окончанию опроса KNX шины.

Синтаксис

IR.AddListener(IR.EVENT_TAG_UPDATE_END, driver, function, [pointer]);

на входезначениеописание
driverIR.GetDevice("MyDriver")type: object
ссылка на драйвер
functionfunction(name, value) {}type: function
не именованная функция или обращение к функции
pointer-type: object
указатель на объект, который обслуживает функцию (опционально)

Пример

IR.AddListener(IR.EVENT_TAG_UPDATE_END, IR.GetDevice("KNX Router (KNXnet/IP) / Serial (UMC) 1"), function () {IR.Log("EVENT_TAG_UPDATE_END")});

UPnP​

.InvokeAction​

отослать инструкцию на устройство с поддержкой UPnP

Синтаксис

IR.GetDevice(driver).InvokeAction(action_name, service_type, [arguments, callback])

на входезначениеописание
driver"Driver 1"type: string
имя драйвера в проекте iRidi
action_name"Play"type: string
имя команды
service_type"service:AVTransport:1"type: string
используемый сервис
argumentsInstanceID: 0, Speed: 1type: string
список аргументов команды
callbacktype: object
функция обратного вызова
на выходе
успешностьtype: Boolean
успешность

Пример

IR.GetDevice("Sonos").InvokeAction("Play", "service:AVTransport:1", {InstanceID: 0, Speed: 1});

.Subscribe​

подписаться на событие устройства, поддерживающего UPnP

Синтаксис

IR.GetDevice(driver).Subscribe(service_type)

на входезначениеописание
driver"Driver 1"type: string
имя драйвера в проекте iRidi
service_type"urn:schemas-upnp-org:service:AVTransport:1"type: string
используемый сервис
на выходе
truetruetype: Boolean
успешность

Пример

IR.GetDevice("Sonos").Subscribe("urn:schemas-upnp-org:service:AVTransport:1");

.Unsubscribe​

отписаться от события устройства, поддерживающего UPnP

Синтаксис

IR.GetDevice(driver).Unsubscribe(service_type)

на входезначениеописание
driver"Driver 1"type: string
имя драйвера в проекте iRidi
service_type"urn:schemas-upnp-org:service:AVTransport:1"type: string
используемый сервис
на выходе
truetruetype: Boolean
успешность

Пример

IR.GetDevice("BAOS").Unsubscribe("urn:schemas-upnp-org:service:AVTransport:1");

IR.EVENT_DEVICE_FOUND​

идентификатор события, которое срабатывает при событии на UPnP устройстве

Синтаксис

IR.AddListener(IR.EVENT_DEVICE_FOUND, 0, function, [pointer]);

на входезначениеописание
functionfunction(name) {}type: function
не именованная функция или обращение к функции
pointer-type: object
указатель на объект, который обслуживает функцию (опционально)
на выходе
name"Device"type: string
имя найденного UPnP устройства

Пример

IR.AddListener(IR.EVENT_DEVICE_FOUND, 0, function(name)
{
IR.Log(name);
});

IR.EVENT_RECEIVE_EVENT​

идентификатор события, которое срабатывает при получении события от UPnP устройства

Синтаксис

IR.AddListener(IR.EVENT_RECEIVE_EVENT, driver, function, [pointer]);

на входезначениеописание
driverIR.GetDevice("MyDriver")type: object
ссылка на UPnP драйвер
functionfunction(type, text) {}type: function
не именованная функция или обращение к функции
pointer-type: object
указатель на объект, который обслуживает функцию (опционально)
на выходе
typetype: string
тип события
texttype: string
сообщение от устройства

Пример

IR.AddListener(IR.EVENT_RECEIVE_EVENT, IR.GetDevice("MyDriver"), function(type, text) {
IR.Log(text);
});

Свойства​

Свойства драйверов​

Параметры подключения драйвера доступны для чтения как свойства объекта Драйвер. Чтобы изменить параметры подключения, нужно использовать метод .SetParameters.

Основные свойства драйвера в проекте iRidi - это имя и тип. Их можно запросить у любого драйвера. :

driver.property

property:

СвойствоПримерОписание
NameCrestron 1type: string
имя драйвера
TypeCrestron (TCP)type: string
тип драйвера. Точное название типа вы можете видеть в параметре Driver Type, в окне настроек подключения
LogLevelDebugtype: number
уровень логирования:
0 - Emergency
1 - Alert
2 - Critical
3 - Error
4 - Warning
5 - Notice
6 - Info
7 - Debug
8 - Never

var driver = IR.GetDevice("Crestron 1");
IR.AddListener(IR.EVENT_START,0,function()
{
var properties = driver.Name + " (" + driver.Type + ") created";
IR.Log(properties);
});

Остальные параметры драйверов уникальны, и зависят от типа драйвера. Имена параметров драйвера можно посмотреть в системном меню или взять из списка:

driver.property

AMX​

ПараметрЗначениеТипОписание
Host192.168.0.100stringIP адрес или доменное имя
Port1319numberпорт подключения
DeviceID10001numberуникальный идентификатор панели AMX
Loginadminstringлогин защищенной сессии
Passwordadminstringпароль защищенной сессии

AV & Custom Systems (UDP)​

ПараметрЗначениеТипОписание
Host192.168.0.100stringIP адрес или доменное имя
Port8080numberпорт подключения
LocalPort80numberлокальный порт получения данных (на стороне iRidi)
Groupnullstringnull - броадкаст, "host" - мультикаст группа
Multicastfalsestringfalse - броадкаст, true - мультикаст (если группа указана)
ScriptMode0numberпосылать данные напрямую в драйвер и в скрипты (0) или только в скрипты (1)

AV & Custom Systems (HTTP)​

ПараметрЗначениеТипОписание
Host192.168.0.100stringIP адрес или доменное имя
Port8080numberпорт подключения
SSLfalsenumberзащищенное соединение
Loginadminstringлогин защищенной сессии
Passwordadminstringпароль защищенной сессии
DisableQueue0numberне добавлять команды в очередь, если их не удалось отправить
SendCommandAttempts0stringсколько раз повторить команду, если отправка не удалась (0 - не повторять, однократная отправка)
ConnectWaitTimeMax3000number(мс) время ожидания соединения
ReceiveWaitTimeMax5000number(мс) время ожидания ответа
UserAgentiRidistringкак iRidi представится HTTP серверу

AV & Custom Systems (RS232)​

ПараметрЗначениеТипОписание
PortName\.\COM1stringимя СОМ-порта
BaudRate19200numberскорость обмена данными
DataBits8numberчисло информационных разрядов в кадре
Parityestringконтроль четности
StopBits1numberстоповый бит в кадре
Use4850numberиспользовать транспорт RS485

AV & Custom Systems (TCP Server)​

ПараметрЗначениеТипОписание
Port8080numberпорт подключения
MaxClients10numberмаксимальное число подключенных клиентов

AV & Custom Systems (UDP Server)​

ПараметрЗначениеТипОписание
Port8080numberпорт подключения
MaxClients10numberмаксимальное число подключенных клиентов
ClientTimeOut100number(мс) через указанное время клиент будет отключен, если не отправляет данные серверу

Clipsal​

ПараметрЗначениеТипОписание
Host192.168.0.100stringIP адрес или доменное имя
Port20023numberпорт подключения
ProjectPROJstringимя проекта Toolkit

Crestron​

ПараметрЗначениеТипОписание
Host192.168.0.100stringIP адрес или доменное имя
Port41794numberпорт подключения
NetID3numberIP ID (IP Net Address) панели из проекта в SIMPL Windows
TelnetPort41795numberTelnet порт подключения (системный)
TelnetSSL1numberиспользование SSL подключения
TelnetLoginadminstringлогин для SSL
TelnetPasswordadminstringпароль для SSL

DVR​

ПараметрЗначениеТипОписание
Host192.168.0.100stringIP адрес или доменное имя
Port8080numberпорт подключения
Loginadminstringлогин защищенной сессии
Passwordadminstringпароль защищенной сессии

Domintell​

ПараметрЗначениеТипОписание
Host192.168.0.100stringIP адрес или доменное имя
Port17481numberпорт подключения
Passwordadminstringпароль подключения
PingTime1000number(мс) частота обновления данных

EPSNET​

ПараметрЗначениеТипОписание
Host192.168.0.100stringIP адрес или доменное имя
Port61682numberпорт подключения
UpdateTime1000number(мс) частота обновления данных
DeviceAddressstringпо умолчанию не используется

Global Cache​

ПараметрЗначениеТипОписание
Host192.168.0.100stringIP адрес или доменное имя
Port4998numberпорт передачи системных команд - 4998
IrConfirm0numberподтверждать доставку ИК команд
SerialPort14999numberСОМ порт 1 (serial 1), если есть
SerialPort25000numberСОМ порт 2 (serial 2), если есть
SerialPort30numberзарезервирован
PingTime0number(мс) периодически проверять, есть ли связь с GC. 0 - пинг выключен
DisableQueue0numberне добавлять команды в очередь, если их не удалось отправить
SendCommandAttempts0stringсколько раз повторить команду, если отправка не удалась (0 - не повторять, однократная отправка)
ConnectWaitTimeMax3000number(мс) время ожидания соединения
ReceiveWaitTimeMax5000number(мс) время ожидания ответа

HDL-Buspro​

ПараметрЗначениеТипОписание
Host255.255.255.255stringIP адрес или доменное имя. В локальной сети - широковещательный адрес 255.255.255.255
Port6000numberпорт подключения
SendTimeOut20number(мс) принудительный интервал между командами
ConnectMode0number0 - Local, 2 - Internet, 3 - Remote Server
LoginUserstringлогин (для Internet и Remote Server)
PasswordUserstringпароль (для Internet и Remote Server)
Projectir_projstringимя проекта (для Internet и Remote Server)
ExtendedPort6000stringпорт сервера (для Remote Server)
Groupir_groupstringгруппа (для Remote Server)

// Local (ConnectMode=0)
IR.GetDevice("HDL Buspro UDP").SetParameters({Host: "255.255.255.255", Port: 6000,
SendNeedConfirm: 0, SendTimeout: 20, ConnectMode: 0});

// Internet (ConnectMode=1)
IR.GetDevice("HDL Buspro UDP").SetParameters({Host: "215.110.10.10", Port: 6000,
Login: "User", Password: "User", SendNeedConfirm: 0, SendTimeout: 20, ConnectMode: 2,
Project: "ir_proj"});

// HDL Remote Server (ConnectMode=2)
IR.GetDevice("HDL Buspro UDP").SetParameters({Host: "215.110.10.10", Port: 9999,
Login: "User", Password: "User", SendNeedConfirm: 0, SendTimeout: 20, ConnectMode: 3,
ExtendedPort: 6000, Project: "ir_proj", Group: "ir_group"});

Helvar​

ПараметрЗначениеТипОписание
Host192.168.0.100stringIP адрес или доменное имя (отсутствует у Net Internal UDP)
Port50001numberпорт подключения

KNX​

ПараметрЗначениеТипОписание
Host192.168.0.100stringIP адрес или доменное имя
Port3671numberпорт подключения
ConnectionWaitTime120000number(мс) время ожидания при аварийном обрыве соединения: 60000 или 120000 мс (зависит от KNX интерфейса)
SendWaitTime0number(мс) пауза между отправкой команд в шину, вводится для снижения загруженности шины
PingTime60000number(мс) частота отправки команды Ping для проверки связи с роутером
Nat0numberрежим NAT (включите при работе через Интернет или с несколькими сетевыми интерфейсами)

KNX IP BAOS​

ПараметрЗначениеТипОписание
Host192.168.0.100stringIP адрес или доменное имя
Port12004numberпорт подключения
UpdateTime0number(мс) частота отправки команды Ping для проверки связи с роутером

Modbus​

ПараметрЗначениеТипОписание
Host192.168.0.100stringIP адрес или доменное имя
Port502numberпорт подключения
UpdateTime1000number(мс) частота обновления данных

Modbus Serial​

ПараметрЗначениеТипОписание
Port1numberномер СОМ-порта
PortName\.\COM1stringимя СОМ-порта
BaudRate19200numberскорость обмена данными
DataBits8numberчисло информационных разрядов в кадре
Parityestringконтроль четности
StopBits1numberстоповый бит в кадре
Use4850numberиспользовать транспорт RS485

SIP​

ПараметрЗначениеТипОписание
Host192.168.0.100stringIP адрес или доменное имя SIP сервера
Port502numberпорт подключения к SIP серверу
CallerIDBenstringпсевдоним абонента
IDBennumber, stringномер абонента
PasswordPwdnumber, stringпароль абонента
FirstRTPPort40000numberпервый порт RTP диапазона
LastRTPPort41000numberпоследний порт RTP диапазона
ToneDTMF1numberотправлять DTMF тоны
ToneSIP0numberотправлять SIP тоны
ExternalIPstringвнешний адрес абонента
PCMU1numberвключить/выключить кодек
PCMA1numberвключить/выключить кодек
GSM1numberвключить/выключить кодек
H2631numberвключить/выключить кодек
H263_19981numberвключить/выключить кодек

iRidi Server​

ПараметрЗначениеТипОписание
Host192.168.0.100stringIP адрес или доменное имя
Port30464numberпорт подключения
Loginadminstringлогин защищенной сессии
Passwordadminstringпароль защищенной сессии