Эта страница является
переводом страницы
AV & Custom Systems. Перевод выполнен на 100%.
iRidium для AV & Custom Systems
набор инструментов для создания интерфейсов управления оборудованием по TCP, UDP, HTTP(s), RS232. Позволяет настроить произвольный список команд и получить обратную связь с помощью JavaScript
документация обновлена 18.6.2018
Описание
iRidium может отправлять ASCII, DEC, HEX команды по TCP, UDP, HTTP(s) и RS232 и получать обратную связь от оборудования с помощью JavaScript. Без использования скриптов можно настроить команды для оборудования, со скриптами - обратную связь.
Настройте команды любому оборудованию, управление которым ранее не было реализовано в iRidium.
Например: домашний кинотеатр, мультирум, ТВ, DVD/BluRay, iTunes, XBMC, матричный коммутатор, предусилитель. Управлять оборудованием можно напрямую, по Wi-Fi или Ethernet, или через преобразователь IP-to-RS232, IP-to-IR (такой как Global Cache).
Лицензирование iRidium для AV & Custom Systems (подробно):
- Device License Pro (AV & Custom Systems) - лицензия на одну панель управления. Позволяет отправлять команды и обрабатывать данные от оборудования, подключение к которому производится через драйверы AV & Custom Systems.
Если вам нужно подключаться к оборудованию несколько панелей управления, а оборудование имеет ограничения по количеству одновременных соединений, используйте iRidium Server
Подключение
Конфигурация оборудования и настройки для того, чтобы iRidium начал управлять оборудованием по IP.
Способы подключения
В зависимости от того, какой способ управления поддерживает ваше оборудование, можно выбрать драйвер AV & Custom Systems и настроить его для работы с конкретным устройством.
AV & Custom Systems (Client)
Весь основной список драйверов AV & Custom Systems в iRidium содержит драйверы клиентского типа - они могут подключиться к "серверу" - оборудованию системы автоматизации, для отправки команд и получения данных.
Добавьте драйвер в PROJECT DEVICE PANEL из DEVICE BASE
В зависимости от способа управления выберите:
- AV & Custom Systems (TCP)
- AV & Custom Systems (UDP)
- AV & Custom Systems (HTTP)
- AV & Custom Systems (RS232)
Параметры подключения AV & Custom Systems (TCP):
- Host - IP адрес или доменное имя
- Port - TCP порт подключения
- Mode - режим подключения к оборудованию
- Always Connected - постоянно подключен
- Connect when Sending - подключен только в момент отправки команды. Не работает обратная связь, но команды можно отправлять с разных устройств, не занимая соединение
- SSL - включить/выключить SSL
- Script Mode - определяет, куда отправлять команды
- Direct and Script - сразу отправлять команду оборудованию и дублировать ее в скрипт
- Script Only - отправлять команду только в скрипт (при нажатии на кнопку, команда не отправится)
- Disable Queue - выключить очередь отправки команд в iRidium, чтобы данные не копились при проблемах отправки. 0 - false, 1 - true
- Send Command Attempts - сколько раз пытаться отправить команду, если не было подтверждения доставки, 0 - не повторять отправку
- Wait for Connection - (мс) время ожидания связи (иначе подключаемся еще раз)
- Wait for Data - (мс) время ожидания ответа от оборудования (иначе повторяем запрос и проверяем связь). Поставьте 0, если нужно, чтобы драйвер не отключался от оборудования при отсутствии данных
Параметры подключения AV & Custom Systems (UDP):
- Host - IP адрес или доменное имя
- Port - UDP порт подключения
- Script Mode - определяет, куда отправлять команды
- Direct and Script - сразу отправлять команду оборудованию и дублировать ее в скрипт
- Script Only - отправлять команду только в скрипт (при нажатии на кнопку, команда не отправится)
- Local Port - UDP порт открытый на стороне панели управления (сюда будут приходить данные от управляемого оборудования). Может отличаться от внешнего порта (открытого на стороне оборудования)
- Multicast - использовать режим мультикаст соединения
- Group - мультикаст группа
Параметры подключения AV & Custom Systems (HTTP):
- Host - IP адрес или доменное имя
- Port - TCP порт подключения (обычно 80)
- Login / Password - логин и пароль для SSL
- SSL - включить/выключить SSL
- User Agent - имя пользователя, которым представится iRidium
- Script Mode - определяет, куда отправлять команды
- Direct and Script - сразу отправлять команду оборудованию и дублировать ее в скрипт
- Script Only - отправлять команду только в скрипт (при нажатии на кнопку, команда не отправится)
- Disable Queue - выключить очередь отправки команд в iRidium, чтобы данные не копились при проблемах отправки. 0 - false, 1 - true
- Send Command Attempts - сколько раз пытаться отправить команду, если не было подтверждения доставки, 0 - не повторять отправку
- Wait for Connection - (мс) время ожидания связи (иначе переподключаемся)
- Wait for Data - (мс) время ожидания ответа от оборудования (иначе повторяем запрос и проверяем связь). Поставьте 0, если нужно, чтобы драйвер не отключался от оборудования при отсутствии данных
Параметры подключения AV & Custom Systems (RS232):
- Port - номер СОМ-порта
- Baud Rate - скорость обмена данными
- Data Bits - число информационных разрядов в кадре
- Parity - контроль четности.
- Stop Bits - cтоповый бит в кадре
- Script Mode - определяет, куда отправлять команды
- Direct and Script - сразу отправлять команду оборудованию и дублировать ее в скрипт
- Script Only - отправлять команду только в скрипт (при нажатии на кнопку, команда не отправится)
AV & Custom Systems (Server)
Кроме основного списка, существуют драйверы для создания TCP и UDP сервера на базе свободно настраиваемого драйвера AV & Custom Systems. Их можно создать только командами JavaScript.
Информация о создании драйверов с помощью JavaScript в iRidium.
Пример создания драйвера AV & Custom Systems (TCP Server).
Смена настроек подключения
Возможность смены параметров подключения нужна, если вы отключаетесь от Wi-Fi сети объекта автоматизации и начинаете использовать 3G или другую Wi-Fi сеть. Чтобы управление продолжило работать, нужно переключиться с локального на публичный IP адрес интернет-маршрутизатора.
Переключение не происходит автоматически, вам нужно будет нажать на клавишу выбора режима соединения. Для возможности удаленного доступа необходимо сделать порты управления системой автоматизации публичными. Для этого настраивают службу Port Forwarding на интернет-маршрутизаторе. Защищенное соединение может обеспечить VPN.
1 Скачайте шаблон (*.js) (правая кнопка: "Сохранить объект как..."), добавьте шаблон в редактор скриптов
клавишей (+) Add Script from file
2 Настройте параметры скрипта, как показано в примере:
- function Internal_1() {
- IR.GetDevice("AV & Custom Systems (TCP)").SetParameters({Host: "192.168.0.100", Port: 8080, SendMode: IR.ALWAYS_CONNECTED, ScriptMode: IR.DIRECT_AND_SCRIPT, DisableQueue: false, SendCommandAttempts: 0, ConnectWaitTimeMax: 0, ReceiveWaitTimeMax: 0});
- }
- function External_1() {
- IR.GetDevice("AV & Custom Systems (TCP)").SetParameters({Host: "215.110.10.10", Port: 8081});
- }
Скопируйте имя драйвера из Projсet Device Panel, список параметров нужно скопировать из примера в точности.
3 Выберите кнопку, которая будет отвечать за переключение Internal и External параметров. Откройте Macros Editor
для события Press (Object Properties > Programming), выберите команду Script Call
и добавьте ее двойным кликом. Выберите имя функции, которую вызовет кнопка:
Теперь каждое нажатие на кнопку будет применять соответствующий набор настроек подключения.
Примеры:
//AV & Custom Systems (TCP)
IR.GetDevice("AV & Custom Systems (TCP)").SetParameters({Host: "192.168.0.100", Port: 8080, SendMode: IR.ALWAYS_CONNECTED, ScriptMode: IR.DIRECT_AND_SCRIPT, DisableQueue: false, SendCommandAttempts: 0, ConnectWaitTimeMax: 0, ReceiveWaitTimeMax: 0, LogLevel: 0, BackgroundMode: 0});
//AV & Custom Systems (UDP)
IR.GetDevice("AV & Custom Systems (UDP)").SetParameters({Host: "192.168.0.100", Port: 6001, ScriptMode: IR.DIRECT_AND_SCRIPT, LocalPort: 8080, Group: "224.0.0.1", Multicast: 1});
//AV & Custom Systems (HTTP)
IR.GetDevice("AV & Custom Systems (HTTP)").SetParameters({Host: "192.168.0.100", Port: 80, Login: "admin", Password: "pass", UseSSL: true, UserAgent: "iRidium", ScriptMode: IR.DIRECT_AND_SCRIPT, DisableQueue: false, SendCommandAttempts: 0, ConnectWaitTimeMax: 0, ReceiveWaitTimeMax: 0});
//AV & Custom Systems (RS232)
IR.GetDevice("AV & Custom Systems (RS232)").SetParameters({Port: 1, BaudRate: 19200, Bits: 8, Parity: "e", StopBit: 1, ScriptMode: 1});
Настройка команд
AV & Custom Systems (TCP, UDP, RS232)
Команды AV & Custom Systems (TCP, UDP, RS232) имеют одинаковые настройки. Они могут передать оборудованию строку данных в формате HEX, DEC, ASCII.
- Name - имя команды. По нему можно вызывать команду из скрипта
- Data - данные, которые команда передает оборудованию. Они могут быть записаны в формате HEX, DEC, ASCII. В зависимости от формата меняются правила оформления данных
- Disable Header - профессиональная настройка заголовков, имеет значение только в случае, если вы создали устройство в своей базе данных и указали в его настройках преамбулу - часть команды, которая будет добавляться к любым введенным в поле Data данным (см. редактор базы данных)
Настройка обратной связи:
- Name - имя канала обратной связи. Используя это имя, JavaScript можете передать в графический интерфейс данные, полученные от оборудования. Вся работа с обратной связью производится в скриптах.
Команду в поле Data нужно оформить в соответствии с синтаксисом iRidium, чтобы программа правильно определила, как нужно отправлять ваши данные (как строку, HEX-код или числа):
ASCII (строка)
Оформление ASCII строки в поле Data:
- обособьте строку 'одинарными кавычками'
- в конце строки добавьте
,$0D
- возврат каретки <CR>
,$0A
- конец строки<LF>
Оформление команды:
В документации: |
PWR01 <CR> |
VOLUME 50 <CR> <LF>
|
Формат: |
ASCII |
ASCII
|
В iRidium (поле Data): |
'PWR01',0x0D |
'VOLUME 50',0x0D,0x0A
|
Оформление возврата каретки <CR> и конца строки <LF>:
В документации: |
<CR> |
<CR> |
<CR> |
<LF> |
<LF> |
<LF>
|
Формат: |
HEX |
HEX |
DEC |
HEX |
HEX |
DEC
|
В iRidium (поле Data): |
,0x0D |
,$0D |
,13 |
,0x0A |
,$0A |
,10
|
HEX (шестнадцатеричный)
Оформление HEX символов в поле Data:
- Перед каждым HEX символом поставьте
0x
или $
- Уберите лишние обозначения перед НЕХ кодами, например: 0Ah >> $0A
- Разделите НЕХ символы запятыми, уберите все пробелы
- в конце строки добавьте
,$0D
- возврат каретки <CR>
,$0A
- конец строки<LF>
В документации:
|
16 8A FF 81 <CR> |
19h EEh A1h 00h <CR> <LF>
|
Формат: |
HEX |
HEX
|
В iRidium(поле Data):
|
0x16,0x8A,0xFF,0x81,0x0D |
$19,$EE,$A1,$00,0x0D,0x0A
|
Оформление возврата каретки <CR> и конца строки <LF>:
В документации: |
<CR> |
<CR> |
<CR> |
<LF> |
<LF> |
<LF>
|
Формат: |
HEX |
HEX |
DEC |
HEX |
HEX |
DEC
|
В iRidium (поле Data): |
,0x0D |
,$0D |
,13 |
,0x0A |
,$0A |
,10
|
DEC (десятичный)
Оформление десятичных чисел в поле Data:
- Разделите числа запятыми, уберите все пробелы
- в конце строки добавьте
,$0D
- возврат каретки <CR>
,$0A
- конец строки<LF>
В документации:
|
01 255 255 15 <CR> |
01 10 25 255 <CR> <LF>
|
Формат: |
DEC |
DEC
|
В iRidium(поле Data):
|
01,255,255,15,13 |
01,10,25,255,13,10
|
Оформление возврата каретки <CR> и конца строки <LF>:
В документации: |
<CR> |
<CR> |
<CR> |
<LF> |
<LF> |
<LF>
|
Формат: |
HEX |
HEX |
DEC |
HEX |
HEX |
DEC
|
В iRidium (поле Data): |
,0x0D |
,$0D |
,13 |
,0x0A |
,$0A |
,10
|
Добавление команд в Device Base
В общей базе "DEVICE BASE" вы можете создать список устройств и команд, которые можно быстро добавить в любой новый проект iRidium. Создать устройство AV & Custom Systems можно только в своей базе, стандартная закрыта для редактирования.
Создайте пользовательскую базу данных:
Добавьте в нее TCP, UDP, RS232 или HTTP устройство:
Во вкладке Commands & Feedbacks создайте список команд:
Двойным кликом откройте Command Properties и добавьте команду в поле Command:
Добавьте готовый набор команд в свой проект: выберите в списке DEVICE BASE свою базу данных и перетащите устройство в свой проект (PROJECT DEVICE PANEL).
AV & Custom Systems (HTTP)
Команды драйвера AV & Custom Systems (HTTP) могут быть переданы одним из методов:
- GET - получить. Передать идентификатор ресурса: URI
- POST - добавить, изменить, удалить. Передать блок данных
- PUT - добавить, заменить. Передать блок данных
Отправка HTTP команд возможна с помощью графических элементов (описана ниже).
Для отправки HTTP команд с помощью JavaScript имеется специализированный метод .SendEx, также возможно использование методов .Set и .Send.
Метод GET
Внесите GET запрос окно URI:
- удалите часть запроса, где хранится IP адрес ресурса и порт обращения к ресурсу
- добавьте тело запроса в окно в URI, включая слеш
/
в начале:
- от запроса httр://<host>:<port>/<url> оставьте только
/<url>
в поле URI настроек команды
В документации: |
httр://192.168.0.100:81/cgi-bin/do?cmd=ir_code=B748BF00
|
В iRidium (поле URI): |
/cgi-bin/do?cmd=ir_code=B748BF00
|
Методы POST и PUT
Выделите значимые части запроса и внесите в поля URI и Data:
- в URI добавьте идентификатор ресурса
- в Data добавьте тело запроса - это может быть большой набор данных. Целиком обособьте его
'одинарными кавычками'
Пример 1:
В документации (POST): |
POST /YamahaRemoteControl/ctrl HTTP/1.1
Accept: */*
Accept-Language: ru
Referer: http://192.168.10.102/
Content-Type: text/xml; charset=UTF-8
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; BRI/2)
Host: 192.168.10.100
Content-Length: 105
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: mstnc=1
<YAMAHA_AV cmd="PUT"><System><Power_Control><Power>Standby</Power></Power_Control></System></YAMAHA_AV>
|
В iRidium (поле URI): |
/YamahaRemoteControl/ctrl
|
В iRidium (поле Data): |
'<YAMAHA_AV cmd="PUT"><System><Power_Control><Power>Standby</Power></Power_Control></System></YAMAHA_AV>'
|
Пример 2:
В документации (POST): |
POST /WAN/dvdr/dvdr_ctrl.cgi? HTTP/1.1
User-Agent: MEI-LAN-REMOTE-CALL
Host: 192.168.1.105
Content-Length: 39
cCMD_RC_POWER.x=100&cCMD_RC_POWER.y=100
|
В iRidium (поле URI): |
/WAN/dvdr/dvdr_ctrl.cgi?
|
В iRidium (поле Data): |
'cCMD_RC_POWER.x=100&cCMD_RC_POWER.y=100'
|
Custom TCP, UDP, HTTP Network
Custom TCP Network, Custom UDP Network, Custom HTTP Network - это способ организации драйверов AV & Custom Systems, которые должны подключаться на один и тот же Host и Port. Этот способ позволит вам не создавать отдельный канал соединения для каждого драйвера и удобно обращаться к командам и каналам драйверов с помощью Java Script API. Команда и каналы могут иметь одинаковые имена, устройства внутри Network - нет.
В Network можно добавить только драйвер AV & Custom Systems с тем же транспортом, что у Network.
Драйвер Custom Network будет доступен по его имени, как все остальные драйверы. Вложенные в драйвер команды будут доступны как: <имя устройства>:<имя команды>
Например, добавим сеть Custom TCP Network
, в нее поместим драйвер AV & Custom Systems (TCP) с именем Device 1
и добавим в этот драйвер команду Power On
. Обращение к драйверу и его командам через Java Script:
// Set: IR.GetDevice(driver).Set(command, value)
IR.GetDevice("Custom TCP Network").Set("Device 1:Power On", "")
// Send: IR.GetDevice(name).Send([data])
IR.GetDevice("Custom TCP Network").Send(['instruction', '\r\n']);
Отправка команд
Отправить команду можно с помощью кнопки или через скрипт.
1 Для однократной отправки команды, привяжите ее на событие Press или Release:
2 Для создания макро-команды добавьте несколько команд на Press или Release :
Между командами можно добавить задержку Delay()
, чтобы регулировать скорость их отправки
3 Для циклической отправки команды при удержании кнопки Выберите Press и Hold :
Настройки Hold находятся в Object Properties > General:
- Hold Time (мс) - время, через которое активируется Hold при удержании элемента
- Repeat Time (мс) - интервал повторения команд из события Hold.
4 команды можно отправить через JavaScript. Используйте для отправки методы .Set(), .Send() или .SendEx() из Drivers API:
var device = IR.GetDevice("AV & Custom Systems (TCP)");
var HTTP_device = IR.GetDevice("AV & Custom Systems (HTTP)");
var CommandString = 'comand data /1';
var CommandName = "COMMAND";
IR.AddListener(IR.EVENT_ONLINE , device, function()
{
device.Set(CommandName, ""); // .Set command by name
device.Send([CommandString,0x0D]); // .Send command as string
HTTP_device.SendEx({ // .SendEx command as HTTP-text
Type: "GET",
Url: "/command",
Headers: {
"Connection": "Close",
"Accept-Language": "en",
"Content-Type": "application/json",
"Transfer-Encoding": "chunked",
"Accept": "application/xml;"
},
cbReceiveText: function(text, code, headers) {IR.Log("cbReceiveText "+text);}
});
});
Оформление ИК команды для метода Send подробно описано в iTach API.
Обратная связь
Обратную связь от оборудования, управляемого с помощью AV & Custom Systems, можно получить только с помощью JavaScript. Это обусловлено тем, что программа заранее не знает, к какому оборудованию подключится, соответственно, не может определить формат и тип данных, которые могут быть получены.
Функции, используемые при обработке входящих данных, описаны в Drivers API. Они работают только с лицензией, которая поддерживает обратуню связь от скриптовых драйверов ("Pro" лицензия). На практике, лицензия активирует работу слушателей
Все остальные методы и события JavaScript работают с любыми лицензиями.
Пример обработки входящих данных с помощью JavaScript:
var driver = IR.GetDevice("AV (TCP)");
// IR.EVENT_RECEIVE_TEXT makes you able to parse incomming data from equipment
IR.AddListener(IR.EVENT_RECEIVE_TEXT, driver, function(text)
{
// divide the received data by '\r\n' to get the separated strings
var strings = text.split('\r\n');
var string;
while(string = strings.shift())
{
// divide the string into parts with separator comma (it would be space or something else)
var parts = string.split(",");
switch(parts[0])
{
// if the first part of devides string = "#OK"
case "#OK":
// for equuipment it means that we are ready to work
IR.Log("Ready to control!");
break;
// if the first part of devides string = "#RID"
case "#RID":
// the second part should be "ALL", third part shouldn't be empty
if (parts[1] == 'ALL' && parts[2])
{
//devide the third part into 12 parts to know the status on 12 variables we got in this feedback
var slots = parts[2];
for(var i = 0; i < 12; i++)
{
var slot = parseInt(slots.substring(i, i+1));
a_dOutputs[i] = slot;
var fName = "OUT "+(i+1);
// in AV driver we have a preconfigured Feedback channels with name OUT 1 ... OUT 12
//so we can write the received data in this feedbacks and display on items
driver.SetFeedback(fName, slot);
}
}
break;
}
}
});
Эмулятор: проверка проекта
Эмулятор (Emulator) - приложение для проверки работы проекта в редакторе iRidium Studio.
Эмулятор работает только после авторизации с использованием логина и пароля с сайта iRidium Mobile
Режимы работы Эмулятора настраиваем в Tools > Options > Emulator:
- Client Fullscreen - запуск в полноэкранном режиме
- Client Sound On - включить/выключить звук в приложении
- Show log at Emuator Start - автоматически открывать окно лога (иначе лог можно открыть по нажатию F4)
Горячие клавиши:
- F4 - открыть лог
- F5 - запустить Эмулятор
- F7 - открыть меню управления аккаунтом и проектами
- F8 - открыть системные настройки (введите пароль 2007)
Синхронизация с панелью управления
Если вы - интегратор, вы можете быстро запустить созданный интерфейс визуализации на панели управления - смартфоне, планшете или ПК. Установите приложение i3 pro и авторизуйтесь в нем с помощью вашего логина и пароля интегратора с сайта iRidium Mobile.
Используйте i3 pro для iOS, Android, Windows, Mac в тестовом режиме, загружая проекты через iRidium Transfer (возможность доступна только для интеграторов):
Emulator
iRidium для Windows
iRidium для iOS
iRidium для Android
iRidium для Mac
Настройки iRidium Transfer
Коммерческое использование iRidium возможно толкьо при загрузке проектов визуализации с помощью облачного сервиса iRidium Cloud на сайте iRidium Mobile (см. инструкцию).
iRidium Cloud может настроить только зарегистрированный интегратор. После настройки, доступно приглашение пользователей к управлению объектом автоматизации.