Document toolboxDocument toolbox

14. [DKSF 488.] Поддержка устройством HTTP API

Интерфейс URL-encoded-команд в устройстве может быть использован для интеграции с web-приложениями без использования протокола SNMP. Через интерфейс URL-encoded-команд доступно управление следующими функциями:

Вызов

Примечания

Ответ

Примечания

IO линии

/io.cgi?ioN

Запрос состояния линии

N - номер линии

io_result('error')

io_result('ok', -1, 1, 339)

Первый аргумент: всегда 'ok' (при ошибке запроса - 'error').

Второй аргумент: всегда «-1», для расширения API в будущем.

Третий аргумент: текущее моментальное состояние IO-линии, включая состояние сброса.

Четвёртый аргумент: счетчик импульсов на данной IO-линии.

 

/io.cgi?io

Запрос состояния всех линий

 

io_result('error')

io_result('ok', 246);

Второй аргумент: бит-карта состояния линий.

 

 

/io.cgi?ioN=L

переключение линии в режиме выход

N - номер линии

L - уровень

io_result('error')

io_result('ok')

 

/io.cgi?ioN=f

переключение линии в инверсное состояние

N номер линии

 

io_result('error')

io_result('ok')

 

/io.cgi?ioN=f,5

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

N - линия
время после запятой

io_result('error')

io_result('ok')

 

/io.cgi?ioN&mode=М

изменение режима линии

0 - вход

1 - выход

io_result('error')

io_result('ok')

 

Реле

/relay.cgi?rN

Состояние реле\

N - номер реле

relay_result('error');

relay_result('ok', 0, 1);

Первый аргумент: всегда 'ok' (при ошибке запроса - 'error').

Второй аргумент: источник управления реле:

0 — Выключено;

1 — Включено.

Третий аргумент: моментальное актуальное состояние реле («0» или «1») с учетом функционирования модуля «Сторож», активации сброса, выдачи импульса и прочего.

 

/relay.cgi?rn=s

переключение реле

S - 0выкл, 1 вкл

relay_result('error');

relay_result('ok');

 

/relay.cgi?rn=f

переключение реле в инверсное состояния

relay_result('error');

relay_result('ok');

 

relay.cgi?rn=f,10

Кратковременное переключение реле в инверсное состояние (выдача импульса сброса):

посоле запятой в секундах

relay_result('error');

relay_result('ok');

 

relay.cgi?powerN

Текущее напряжение, сила тока и мощность на реле

relay_result('error');

relay_result('ok', ‘228', ‘1.6’, '364.8’);

первое значение - всегда ок

второе - напряжение

третье - сила тока

четвертое - мощность

Недоступно для версии железа 1.41

АВР

/ats_in.cgi

Запрос состояния вводов

ats_in_result('ok', 1, 1)

статус напряжения на вводах.

второе значение - првый ввода.

Третье - второй.

0 - не норма, повышенное, пониженное или отсутствует.

1 - норма, не повышенное и не пониженное.

Недоступно для версии железа 1.41

/ats.cgi?main=N

Выбор основного ввода

Где N:

0 - первый ввод основной

1 - втрой ввод остановной

ats_in_result('ok')

ats_in_result('error')

Если выбирается уже активный ввод - возвращать ats_in_result('ok'). Но команда не будет иметь действия.

термодатчики

/thermo.cgi?tN

запрос состояния датчика

thermo_result('error')

thermo_result('ok', 36, 2);

Первый аргумент: всегда 'ok' (при ошибке запроса - 'error').

Второй аргумент: текущая температура.

Третий аргумент: статус датчика

0 – Датчик не подключен или сбоит

1 – Температура ниже нормы

2 – Температура в норме

3 – Температура выше нормы

 

/thermo.cgi?tpreciseN

запрос состояния датчика

*возвращает температуру с точностью до 0.1

thermo_result('error')

thermo_result('ok', 36.3, 2);

Первый аргумент: всегда 'ok' (при ошибке запроса - 'error').

Второй аргумент: текущая температура.

Третий аргумент: статус датчика

0 – Датчик не подключен или сбоит

1 – Температура ниже нормы

2 – Температура в норме

3 – Температура выше нормы

 

датчики влажности

/relhum.cgi?hN

 

relhum_result('ok', 55, 2)

Первый аргумент: всегда 'ok'.

Второй аргумент: относительная влажность, %.

Третий аргумент: статус датчика:

0 — датчик не подключен или сбоит;

1 — влажность ниже нормы;

2 — влажность в норме;

3 — влажность выше нормы.

 

/relhum.cgi?tN

 

relhum_result('ok', 25, 2)

Первый аргумент: всегда 'ok'.

Второй аргумент: температура, °C.

Третий аргумент: статус датчика:

0 — датчик не подключен или сбоит;

1 — температура ниже нормы;

2 — температура в норме;

3 — температура выше нормы.

 

GSM

/sendsms.cgi?utf8

/sendsms.cgi

URL вызывается методом POST. Данные POST представляют из себя текст SMS в кодировке UTF-8. Более подробно об отправке произвольных SMS-сообщений можно прочитать в разделе «11.11. [DKSF 70/71.6 IU] Как отправлять произвольные SMS?».

smssend_result('ok');

smssend_result('error');

smssend_result('busy');

 

/ussdstart.cgi?кодзапроса

код запроса — a[код]x. Например, a100x, что означает *100#. В коде USSD запроса «*» заменяется на «a», «#» заменяется на «x» (латинские символы).

ussdsend_result('ok');

 

/ussdread.cgi

Вызывать через 20 секунд после запроса баланса SIM-карты.

ussdsend_result("ответ_gsm_оператора");

 

Преобразователь аналоговых сигналов

/inputanalog.cgi?inN

где, N - номер адаптера, 1..4

owinputanalog_result('error')

owinputanalog_result('ok', status, A, V, R)

'ok' - всегда ok

status - статус (значение аналогично SNMP .1.3.6.1.4.1.25728.8200.1.1.2,  npOwInputAnalogStatus)

A - ток в мкА

V - напряжение в мВ

R - сопротивление в Ом

 

/inputanalog.cgi?inN&pwr=S,

Управление питанием петли:где S: 0 - выкл, 1 - вкл, N - номер адаптера, 1..4

owinputanalog_result('error')
owinputanalog_result('ok')

 

/inputanalog.cgi?inN&rst

/inputanalog.cgi?inN&rst=N

тключение на N секунд (1..25)., N - номер адаптера, 1..4.

owinputanalog_result('error')
owinputanalog_result('ok')

 

Пример Ввода команд:

Переключение реле

Смена источника управления, а также ручное включение и выключение реле:

http://192.168.0.100/relay.cgi?rn=s

После ?r указывается номер реле, после = указывается номер режима (источника управления).

где:

n — номер реле

s — режим работы реле:

0 — Выключено

1 — Включено

Переключение (инвертирование) реле, вкл <-> выкл:

http://192.168.0.100/relay.cgi?rn=f

Реле должно находиться в режиме «Ручное выкл» или «Ручное вкл».

 

Кратковременное переключение реле в инверсное состояние (выдача импульса сброса):

 

http://192.168.0.100/relay.cgi?rn=f,10

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

Авторизация

 

Для добавления в структуру URL-encoded-команды логина и пароля можно воспользоваться следующей схемой:

http://<имя_пользователя>:<пароль>@<хост>:<порт>/<URL‐путь>?<параметры>

где:

<имя_пользователя>:<пароль> — учетные данные для авторизации в web-интерфейсе устройства;

<хост>  IP-адрес устройства;

<порт>  порт HTTP-сервера;

<URL‐путь>?<параметры>  URL-encoded-команда.