10. [DKSF72/73.1] Поддержка HTTP API
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-линии, включая состояние сброса. Четвертый аргумент: счетчик импульсов на данной IO-линии, считается по фронту. | |
Запрос состояния всех линий | /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 |
Отправка СМС, Win1251 | /sendsms.cgi [+7xxxxxxxxxx, +7yyyyyyyyyy..] Текст | smssend_result('ok'); — успешное выполнение команды smssend_result('error') — ошибка в тексте запроса smssend_result('busy') — GSM-модем занят | URL вызывается методом POST. Данные POST представляют собой текст SMS в кодировке UTF-8 |
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 — отлично. | |
Внешний блок розеток | |||
Запрос состояния реле | /extrelay.cgi?rN N — номер реле | extrelay_result('error'); extrelay_result('ok', 0, 1); Первый аргумент: всегда 'ok' (при ошибке запроса — 'error'). Второй аргумент — источник управления реле: 0 — выкл. вручную; 1 — вкл. вручную. Третий аргумент — моментальное актуальное состояние реле: 0 — выключено; 1 — включено. | |
Управление реле | /extrelay.cgi?rN=S n — номер реле; s — режим работы реле: 0 — выкл.; 1 — вкл. | extrelay_result('ok') extrelay_result('error') | |
Переключение реле в инверсное состояние | /extrelay.cgi?rN=F | extrelay_result('ok') extrelay_result('error') | |
Переключение реле в инверсное состояние на время | /extrelay.cgi?rN=F,10 N — номер реле S — время в с | extrelay_result('ok') extrelay_result('error') | |
Сброс реле, выключение на 15 с | /extrelay.cgi?rN&rst | extrelay_result('ok') extrelay_result('error') |