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') |
|
/inputanalog.cgi?inN&rst /inputanalog.cgi?inN&rst=N | тключение на N секунд (1..25)., N - номер адаптера, 1..4. | owinputanalog_result('error') |
|
Пример Ввода команд:
Переключение реле
Смена источника управления, а также ручное включение и выключение реле:
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-команда.