Skip to main content
Skip table of contents

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

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

HTTP API

Команда

Вызов

Ответ

Примечание

Реле

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

/relay.cgi?rN

relay_result('error');

relay_result('ok', 2, 1);

первый аргумент всегда 'ok'

второй аргумент — состояние реле

третий аргумент — моментальное состояние реле

Управление реле

/relay.cgi?rN=S

relay_result('ok')

relay_result('error')

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

/relay.cgi?rN=S

relay_result('ok')

relay_result('error')

Ресет, переключение реле в инверсное состояние на время

/relay.cgi?rN=F,10

relay_result('ok')

relay_result('error')

Линии ввода-вывода

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

/io.cgi?ioN

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

io_result('error')

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

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

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

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

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

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

/io.cgi?io

io_result('error')

io_result('ok', 246);

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

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

Бит-карта (представлена в десятичном формате):

бит 0 = линия 1

бит 1 = линия 2

...

бит 7 = линия 8

Например:

00000000 — 0 (все линии в лог.0)

11100111 — 231 (4 и 5 линии в лог.0, остальные в лог.1)

Управление линией в режиме «выход»

/io.cgi?ioN=S

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

S — режим работы (1 — вкл., 0 — выкл.)

io_result('error')

io_result('ok')

Переключение линии в инверсное состояние в режиме «выход»

/io.cgi?ioN=f

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

io_result('error')

io_result('ok')

Ресет, переключение линии в инверсное состояние на время в режиме «выход»

/io.cgi?ioN=f,T

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

T — время переключения в с.

io_result('error')

io_result('ok')

Изменение режима работы линии

/io.cgi?ioN&mode=S

N — номер датчика

S — режим работы (1 — выход, 0 — вход)

io_result('error')

io_result('ok')

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

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

/thermo.cgi?tN

N — номер датчика

thermo_result('error')

thermo_result('ok', 36, 2);

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

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

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

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

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

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

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

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

Запрос влажности

/relhum.cgi?hN

N — номер датчика

relhum_result('error')

relhum_result('ok', 55, 2)

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

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

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

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

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

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

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

Запрос температуры

/relhum.cgi?tN

N — номер датчика

relhum_result('error')

relhum_result('ok', 25, 2)

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

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

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

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

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

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

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

1-wire-адаптер аналоговых датчиков

Получение суммарного отчета о нескольких параметрах

/inputanalog.cgi?inN

N — номер датчика

inputanalog_result('error'); — oшибка возвращается в случае неправильного формата запроса

inputanalog_result('ok', status, A, V, R); — успешное выполнение команды

Возвращаемые значения:

inputanalog_result('error'); — oшибка возвращается в случае неправильного формата запроса

inputanalog_result('ok', status, A, V, R); — успешное выполнение команды

Расшифровка ответа:

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

status — статус адаптера:

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

1 — ниже нормы;

2 — в норме;

3 — выше нормы;

4 — вне раб. диапазона.

A — ток в мкА

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

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

Управление питанием петли

/inputanalog.cgi?inN&pwr=S

N — номер датчика

S — 0 — выкл., 1 — вкл.

inputanalog_result('error');

inputanalog_result('ok')

Сброс питания петли

/inputanalog.cgi?inN&rst

/inputanalog.cgi?inN&rst=T

N — номер адаптера

T — время отключения (1...25 с), если не указано — 10 с

inputanalog_result('error');

inputanalog_result('ok')

GSM-модем

Отправка СМС, UTF8

/sendsms.cgi?utf8

[+7xxxxxxxxxx, +7yyyyyyyyyy..] Текст

smssend_result('ok'); — успешное выполнение команды

smssend_result('error') — ошибка в тексте запроса

smssend_result('busy') — GSM-модем занят

URL вызывается методом POST. Данные POST представляют собой текст SMS в кодировке UTF-8. Подробнее о том как отправлять произвольные SMS написано в разделе «10.11. [DKSF 5440] Как отправлять произвольные SMS» данного документа.

Отправка СМС, Win1251

/sendsms.cgi

[+7xxxxxxxxxx, +7yyyyyyyyyy..] Текст

smssend_result('ok'); — успешное выполнение команды

smssend_result('error') — ошибка в тексте запроса

smssend_result('busy') — GSM-модем занят

URL вызывается методом POST. Данные POST представляют собой текст SMS в кодировке UTF-8. Подробнее о том как отправлять произвольные SMS написано в разделе «10.11. [DKSF 5440] Как отправлять произвольные SMS» данного документа.

USSD-запрос

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

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

ussdsend_result('ok');

Для получения ответа на запрос вызывать

/ussdread.cgi

Ответ:

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

Датчики качества электропитания 1-wire

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

/voltage.cgi?vN

N — номер датчика

voltage_result('error'); — oшибка возвращается в случае неправильного формата запроса.

voltage_result('ok', 220, 4, 50, 4); — успешное выполнение команды:

первый аргумент — всегда 'ok';
второй аргумент — текущее значение напряжения, В;
третий аргумент — статус напряжения, светофор:

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

1 — электропитание отсутствует;

2 — плохо;

3 — средне;

4 — отлично.

Четвёртый аргумент — текущее значение частоты, Гц.
Пятый аргумент — статус частоты, светофор:

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

1 — частота отсутствует;

2 — плохо;

3 — средне;

4 — отлично.

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

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

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

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

где:

n — номер реле

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

0 — Выключено

1 — Включено

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

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

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

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

Авторизация

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

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

где:

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

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

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

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

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.