Web API: различия между версиями
(не показаны 53 промежуточные версии 2 участников) | |||
Строка 1: | Строка 1: | ||
− | + | <languages /> | |
+ | <translate> | ||
+ | <!--T:1--> | ||
+ | * API v01 * | ||
+ | |||
+ | <!--T:2--> | ||
API ( json ) | API ( json ) | ||
+ | <!--T:3--> | ||
URL https://quadrobit.com/ | URL https://quadrobit.com/ | ||
− | = | + | = Общие сведения = |
+ | |||
+ | Обмен данными между Пользователем и серверной частью системы Quadrobit Smart Home осуществляется путём отправки пакетов (запросов и ответов). | ||
+ | Пакет отправляется по HTTP методом POST на указанный адрес Request URL. | ||
+ | |||
+ | Запрос может содержать JSON-структуру, включающую один или несколько параметров. | ||
+ | После успешной авторизации Пользователя запрос всегда должен содержать параметр token. | ||
+ | |||
+ | В ответ на полученный запрос Сервер возвращает Пользователю следующую JSON-структуру: | ||
+ | <pre> | ||
+ | { | ||
+ | error: null, | ||
+ | data: { ... } | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | Параметр error содержит информацию о результате выполнения запроса. error: null - запрос выполнен успешно. | ||
− | + | Структура и содержание параметра data определяется типом запроса. | |
− | + | ||
− | + | ||
− | + | = Учётная запись = <!--T:4--> | |
+ | == Авторизация (login) == | ||
+ | |||
+ | <!--T:5--> | ||
+ | Запрос: | ||
+ | |||
+ | <!--T:6--> | ||
+ | Request URL: [site]/api/login | ||
+ | |||
+ | <!--T:7--> | ||
+ | Параметры запроса: | ||
+ | |||
+ | <!--T:8--> | ||
+ | #(string) email, | ||
+ | #(string) password | ||
+ | |||
+ | <!--T:10--> | ||
+ | Пример запроса: | ||
<pre> | <pre> | ||
{ | { | ||
Строка 17: | Строка 56: | ||
} | } | ||
</pre> | </pre> | ||
− | + | ||
− | + | <!--T:11--> | |
− | + | Ответ: | |
+ | |||
+ | <!--T:12--> | ||
+ | Пример ответа (data): | ||
<pre> | <pre> | ||
{ | { | ||
Строка 35: | Строка 77: | ||
} | } | ||
+ | <!--T:13--> | ||
</pre> | </pre> | ||
− | = Регистрация (registration) = | + | == Регистрация (registration) == <!--T:14--> |
+ | |||
+ | <!--T:15--> | ||
+ | Запрос: | ||
+ | |||
+ | Request URL: [site]/api/registration | ||
+ | |||
+ | <!--T:16--> | ||
+ | Параметры запроса: | ||
− | + | <!--T:17--> | |
− | + | #(string) email, | |
− | + | #(string) password | |
− | + | ||
+ | <!--T:19--> | ||
+ | Пример запроса: | ||
<pre> | <pre> | ||
{ | { | ||
Строка 50: | Строка 103: | ||
} | } | ||
</pre> | </pre> | ||
− | + | Ответ: | |
− | + | ||
− | + | Пример ответа (data): | |
<pre> | <pre> | ||
{ | { | ||
Строка 67: | Строка 120: | ||
− | = Профиль пользователя (profile) = | + | == Профиль пользователя (profile) == <!--T:20--> |
− | + | <!--T:21--> | |
− | + | Запрос: | |
− | + | ||
− | + | <!--T:22--> | |
+ | Request URL: [site]/api/profile/ | ||
+ | |||
+ | <!--T:23--> | ||
+ | Параметры запроса: (string) token | ||
+ | |||
+ | <!--T:24--> | ||
+ | Пример запроса: | ||
<pre> | <pre> | ||
{ | { | ||
Строка 78: | Строка 138: | ||
} | } | ||
</pre> | </pre> | ||
− | + | Ответ: | |
− | + | ||
− | + | Пример ответа (data): | |
<pre> | <pre> | ||
{ | { | ||
Строка 100: | Строка 160: | ||
</pre> | </pre> | ||
− | = | + | = Контроллеры = <!--T:25--> |
− | + | == Список Контроллеров Пользователя (list) == <!--T:26--> | |
− | + | ||
− | + | <!--T:27--> | |
− | + | Запрос: | |
+ | |||
+ | Request URL: [site]/api/ctrl/list/ | ||
+ | |||
+ | <!--T:28--> | ||
+ | Параметры запроса: (string) token | ||
+ | |||
+ | <!--T:29--> | ||
+ | Пример запроса: | ||
+ | |||
<pre> | <pre> | ||
{ | { | ||
Строка 111: | Строка 180: | ||
} | } | ||
</pre> | </pre> | ||
− | + | ||
− | + | <!--T:30--> | |
− | + | Ответ: | |
+ | |||
+ | <!--T:32--> | ||
+ | Пример ответа (data): | ||
<pre> | <pre> | ||
{ | { | ||
"0":{ | "0":{ | ||
− | "id": | + | "id": 651, |
− | " | + | "name": "AE439648F951", |
− | " | + | "ip": "192.168.10.135", |
− | " | + | "fw_id": "1", |
− | " | + | "hostname": "quadrobase", |
− | " | + | "armed": 0, |
− | " | + | "address": "", |
− | " | + | "lat": null, |
− | " | + | "lng": null, |
− | " | + | "timezone": 2, |
− | " | + | "online": 1, |
− | + | "last_online": "2019-06-17 19:36:48", | |
− | " | + | "type_signal": "wifi", |
− | " | + | "wifi_param": -67, |
− | " | + | "gsm_param": 0, |
− | + | "phone": "", | |
− | + | "pin": 0, | |
− | } | + | "user_controller_name": "quadrobase", |
+ | "on_dashboard": 0 | ||
+ | }] | ||
</pre> | </pre> | ||
+ | == Информация о Контроллере (info) == <!--T:33--> | ||
− | + | <!--T:34--> | |
− | + | Запрос: | |
− | + | ||
− | + | Request URL: [site]/api/ctrl/info/ | |
− | + | ||
− | + | <!--T:35--> | |
+ | Параметры запроса: | ||
+ | |||
+ | #(int) controller_id, | ||
+ | #(string) token | ||
+ | |||
+ | <!--T:36--> | ||
+ | Пример запроса: | ||
<pre> | <pre> | ||
{ | { | ||
− | " | + | "controller_id": 1 , |
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae" | "token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae" | ||
} | } | ||
</pre> | </pre> | ||
− | + | ||
− | + | <!--T:37--> | |
− | + | Ответ: | |
+ | |||
+ | <!--T:39--> | ||
+ | Пример ответа (data): | ||
+ | |||
+ | <!--T:40--> | ||
<pre> | <pre> | ||
{ | { | ||
− | "id": | + | "id":"6", |
− | " | + | "name":"66D4E809EF0A", |
− | " | + | "hostname":"Test Valera 34", |
− | " | + | "armed":0, |
− | " | + | "address":"", |
− | " | + | "lat":50.4156, |
− | " | + | "lng":30.5336, |
− | " | + | "ip":"192.168.1.155", |
− | " | + | "fw_id":1, |
− | " | + | "timezone":3, |
− | " | + | "online":1, |
− | " | + | "last_online":"2019-07-29 17:08:41", |
− | + | "type_signal":"wifi", | |
− | + | "wifi_param":-78, | |
− | + | "gsm_param":0, | |
+ | "phone":"", | ||
+ | "pin":0, | ||
+ | "user_controller_name":"Test Valera 34", | ||
+ | "on_dashboard":0 | ||
} | } | ||
</pre> | </pre> | ||
+ | == Постановка/снятие Контроллера на охрану / с охраны (armed) == <!--T:41--> | ||
+ | <!--T:42--> | ||
+ | Запрос: | ||
− | + | <!--T:43--> | |
+ | Request URL: [site]/api/ctrl/armed/ | ||
− | + | <!--T:44--> | |
− | + | Параметры запроса: | |
− | + | ||
− | + | №(int) controller_id, | |
+ | №(string) token | ||
+ | |||
+ | Пример запроса: | ||
+ | |||
+ | <!--T:45--> | ||
<pre> | <pre> | ||
{ | { | ||
+ | "controller_id": 6 , | ||
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae" | "token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae" | ||
} | } | ||
</pre> | </pre> | ||
− | + | ||
− | + | Так как MQTT односторонний - ответа быть не может. Ответ что запрос ушел: | |
− | + | ||
+ | Ответ: | ||
+ | |||
+ | Пример ответа (data): | ||
<pre> | <pre> | ||
{ | { | ||
− | + | "result": "Ok" | |
− | + | } | |
− | " | + | </pre> |
− | + | ||
− | + | ||
− | + | == Добавление Контроллера (add) == <!--T:46--> | |
− | + | ||
− | + | <!--T:47--> | |
− | + | Запрос: | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
+ | <!--T:48--> | ||
+ | Request URL: [site]/api/ctrl/add | ||
− | + | <!--T:49--> | |
+ | Параметры запроса: (string) token | ||
− | + | <!--T:50--> | |
− | + | Пример: | |
− | |||
− | |||
<pre> | <pre> | ||
{ | { | ||
− | |||
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae" | "token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae" | ||
} | } | ||
</pre> | </pre> | ||
− | |||
− | |||
− | |||
+ | Ответ: | ||
+ | |||
+ | Пример ответа: | ||
<pre> | <pre> | ||
{ | { | ||
− | " | + | "PIN":"7gDH" |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
} | } | ||
</pre> | </pre> | ||
− | = | + | После ввода пин-кода необходимо обновить список Контроллеров (/api/ctrl/list/) |
+ | |||
+ | == Обновление списка устройств и действий на Контроллере (update) == <!--T:51--> | ||
+ | |||
+ | === Этап 1 - обновляем список IDS устройств на Контроллере === <!--T:52--> | ||
+ | Запрос: | ||
− | + | <!--T:53--> | |
− | + | Request URL: [site]/api/ctrl/update/ | |
− | + | ||
− | + | Параметры запроса: | |
+ | |||
+ | #(int) controller_id, | ||
+ | #(string) token | ||
+ | |||
+ | Пример запроса: | ||
<pre> | <pre> | ||
{ | { | ||
Строка 255: | Строка 350: | ||
} | } | ||
</pre> | </pre> | ||
− | + | ||
− | + | Ответ: | |
− | + | ||
− | + | Пример ответа (data): | |
<pre> | <pre> | ||
{ | { | ||
− | "result": "Ok" | + | "result": "Ok" // "Ok" = запрос отправлен |
} | } | ||
</pre> | </pre> | ||
+ | === Этап 2 - обновляем информацию о каждом устройстве === <!--T:54--> | ||
− | + | <!--T:55--> | |
+ | Запрос: | ||
− | + | Request URL: [site]/api/ctrl/update-devices/ | |
− | + | ||
− | + | <!--T:56--> | |
− | + | Параметры запроса: | |
+ | |||
+ | <!--T:57--> | ||
+ | #(int) controller_id, | ||
+ | #(string) token | ||
+ | |||
+ | <!--T:58--> | ||
+ | Пример запроса: | ||
<pre> | <pre> | ||
{ | { | ||
− | "token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae" | + | "controller_id": 6 , |
+ | "token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae", | ||
} | } | ||
</pre> | </pre> | ||
− | + | ||
− | + | <!--T:59--> | |
− | + | Ответ: | |
+ | |||
+ | <!--T:61--> | ||
+ | Пример ответа: | ||
+ | |||
<pre> | <pre> | ||
{ | { | ||
− | " | + | "result": "Ok" // Запрос отправлен |
} | } | ||
</pre> | </pre> | ||
− | |||
− | + | Процесс происходит автоматически. Для получения результата требуется таймаут, после чего делается стандартный запрос на получение данных (контроллер, устройства) | |
− | === | + | |
− | + | == Удаление Контроллера (delete) == <!--T:62--> | |
− | + | ||
− | + | Запрос: | |
− | + | ||
+ | <!--T:63--> | ||
+ | Request URL: [site]/api/ctrl/delete | ||
+ | |||
+ | <!--T:65--> | ||
+ | Пример запроса: | ||
+ | |||
<pre> | <pre> | ||
{ | { | ||
− | " | + | "token":"8yE-VIQrYuZ2bTeho_lajxjOJPnIe_Yx", |
− | " | + | "controller_id":"81" |
} | } | ||
</pre> | </pre> | ||
− | + | ||
− | + | <!--T:66--> | |
− | + | Ответ: | |
+ | |||
+ | Пример ответа: | ||
+ | |||
<pre> | <pre> | ||
{ | { | ||
− | " | + | "error":null, |
+ | "data":{"result":"Ok"} | ||
} | } | ||
</pre> | </pre> | ||
− | == | + | == Обновление статуса контроллера (update-status) == <!--T:67--> |
+ | |||
+ | <!--T:68--> | ||
+ | Запрос: | ||
+ | |||
+ | <!--T:69--> | ||
+ | Request URL: [site]/api/ctrl/update-status/ | ||
− | + | <!--T:70--> | |
− | + | Параметры запроса: | |
− | + | ||
+ | #(string) token, | ||
+ | #(int) controller_id | ||
+ | |||
+ | <!--T:73--> | ||
+ | Пример запроса: | ||
− | |||
− | |||
<pre> | <pre> | ||
{ | { | ||
− | |||
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae", | "token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae", | ||
+ | "controller_id": 122 | ||
} | } | ||
</pre> | </pre> | ||
− | + | ||
− | + | <!--T:74--> | |
− | + | Ответ: | |
+ | |||
+ | <!--T:76--> | ||
+ | Пример ответа: | ||
+ | |||
<pre> | <pre> | ||
{ | { | ||
− | "result": "Ok" | + | "error":null, |
+ | "data":{ | ||
+ | "result":"Ok" | ||
+ | } | ||
} | } | ||
</pre> | </pre> | ||
− | |||
+ | == Получение актуального статуса Контроллера (get-status) == <!--T:77--> | ||
+ | |||
+ | Запрос: | ||
+ | |||
+ | <!--T:78--> | ||
+ | Request URL: [site]/api/ctrl/get-status/ | ||
+ | |||
+ | <!--T:79--> | ||
+ | Параметры запроса: | ||
+ | |||
+ | #(string) token, | ||
+ | #(int) controller_id | ||
− | + | <!--T:82--> | |
+ | Пример запроса: | ||
− | |||
− | |||
− | |||
− | |||
<pre> | <pre> | ||
{ | { | ||
− | + | "token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae", | |
+ | "controller_id": 122 | ||
} | } | ||
</pre> | </pre> | ||
− | + | ||
− | + | <!--T:83--> | |
− | + | Ответ: | |
+ | |||
+ | <!--T:85--> | ||
+ | Пример ответа: | ||
+ | |||
<pre> | <pre> | ||
{ | { | ||
− | + | "error":null, | |
+ | "data":{ | ||
+ | "status":1 | ||
+ | } | ||
} | } | ||
</pre> | </pre> | ||
+ | <!--T:86--> | ||
+ | Поле “status” может принимать следующие значения: | ||
+ | • 0 – офлайн | ||
− | = | + | <!--T:87--> |
+ | • 1 – онлайн | ||
+ | |||
+ | <!--T:88--> | ||
+ | • 2 – онлайн, после включения питания | ||
+ | |||
+ | == Получение конфигурации Контроллера (config) == <!--T:89--> | ||
+ | |||
+ | <!--T:82--> | ||
+ | Запрос: | ||
+ | |||
+ | Request URL: [site]/api/ctrl/config/ | ||
+ | |||
+ | <!--T:82--> | ||
+ | Параметры запроса: | ||
+ | |||
+ | #(string) token, | ||
+ | #(int) controller_id | ||
+ | |||
+ | <!--T:82--> | ||
+ | Пример запроса: | ||
− | |||
− | |||
− | |||
− | |||
<pre> | <pre> | ||
{ | { | ||
− | " | + | "token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae", |
− | " | + | "controller_id" : 111 |
} | } | ||
</pre> | </pre> | ||
− | response: | + | |
− | + | <!--T:82--> | |
− | + | Ответ: | |
+ | |||
+ | <!--T:82--> | ||
+ | Пример ответа (data): | ||
+ | |||
+ | <pre> | ||
+ | { | ||
+ | "id":"1", // id конфигурации | ||
+ | "controller_id":"111", // id контроллера | ||
+ | "language":"ru-RU", | ||
+ | "hostname":"alarm-system", | ||
+ | "wifi_mode":1, // 1 - STA, 2 - AP | ||
+ | "wifi_sta_type":1, // 0 - STATIC, 1 - DHCP | ||
+ | "wifi_sta_ssid":"SSID", | ||
+ | "wifi_sta_pass":"PASSWORD", | ||
+ | "wifi_sta_ip":"192.168.0.101", | ||
+ | "wifi_sta_mask":"255.255.255.0", | ||
+ | "wifi_sta_gw":"192.168.0.1", | ||
+ | "wifi_sta_dns1":"208.67.222.222", | ||
+ | "wifi_sta_dns2":"208.67.222.222", | ||
+ | "wifi_ap_authmode": 3, // 0 - OPEN, 1 - WEP, 2 - WPA_PSK, 3 - WPA2_PSK, 4 - WPA_WPA2_PSK | ||
+ | "wifi_ap_hidden":0, // 0/1 | ||
+ | "wifi_ap_channel":1, // 1...14 | ||
+ | "wifi_ap_ssid":"SMARTHOME_000000000000", | ||
+ | "wifi_ap_pass":"00000000", | ||
+ | "wifi_ap_ip":"192.168.4.1", | ||
+ | "wifi_ap_mask":"255.255.255.0", | ||
+ | "wifi_ap_gw":"192.168.4.1", | ||
+ | "httpd_port":80, // 1...65535 | ||
+ | "httpd_auth":0, // 0/1 | ||
+ | "httpd_user":"admin", | ||
+ | "httpd_pass":"admin", | ||
+ | "ntp_enable":0, // 0/1 | ||
+ | "ntp_host":"time.windows.com", | ||
+ | "ntp_tz":3, // -11...13 | ||
+ | "upnp_enable":1, // 0/1 | ||
+ | "advanced_mode":0, // 0/1 | ||
+ | "app_afb_enable":1, // 0/1 | ||
+ | "app_leds_off":1, // 0/1 | ||
+ | "app_alarm_duration":10, // minutes | ||
+ | "app_arming_delay":0, // seconds | ||
+ | "app_portal_link":0, // 0/1 | ||
+ | "app_rf_freq":2, // 1 - 315Mhz, 2 - 433Mhz | ||
+ | "app_rf_power":3, // 0 - 1DBM, 1 - 2DBM, 2 - 5DBM, 3 - 8DBM, 4 - 11DBM, 5 - 14DBM, 6 - 17DBM, 7 - 20DBM | ||
+ | "app_button_action":1, // 0 - NONE, 1 - ARMING, 2 - RUN_ACTION, 3 - SEND_CODE | ||
+ | "app_button_rec_id":0, // ID | ||
+ | "gsm_pin":"1234", | ||
+ | "gsm_allowed_phones":"", // список через запятую | ||
+ | "gsm_sendto_phones":"", // список через запятую | ||
+ | "gsm_callto_phones":"", // один номер | ||
+ | "gsm_smsin_enable":"0", // 0/1 | ||
+ | "gsm_smsout_enable":"0", // 0/1 | ||
+ | "gsm_call_enable":"0", // 0/1 | ||
+ | "gprs_enable":"1", // 0/1 | ||
+ | "gprs_apn":"", "internet.mts.ru", | ||
+ | "gprs_user":"mts", | ||
+ | "gprs_pass":"mts", | ||
+ | "gsm_enable":"0", // 0/1 | ||
+ | "ebus_enable":0, // 0/1 | ||
+ | "command":"xxx", | ||
+ | "response":"0" | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | |||
+ | == Изменение конфигурации контроллера(config-set) == <!--T:89--> | ||
+ | |||
+ | <!--T:89--> | ||
+ | Запрос: | ||
+ | |||
+ | Request URL: [site]/api/ctrl/config-set/ | ||
+ | |||
+ | <!--T:89--> | ||
+ | Параметры запроса: | ||
+ | |||
+ | #(string) token, | ||
+ | #(int) controller_id | ||
+ | |||
+ | <!--T:89--> | ||
+ | Пример запроса: | ||
+ | |||
<pre> | <pre> | ||
{ | { | ||
− | + | "token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae", | |
− | " | + | "controller_id" : 111, |
− | + | "command": "yyy" // параметры контроллера смотри метод Получить конфигурацию контроллера(ctrl/config/) | |
− | "controller_id": | + | } |
− | + | </pre> | |
− | " | + | |
− | + | <!--T:89--> | |
− | + | Ответ: | |
− | + | ||
− | + | <!--T:89--> | |
− | + | Пример ответа (data): | |
− | + | ||
− | + | <pre> | |
− | + | { | |
− | + | "result": "Ok" | |
− | + | } | |
− | + | </pre> | |
− | + | ||
− | + | == Передача локального IP Контроллера (get-ip) == <!--T:89--> | |
− | + | ||
− | + | Запрос | |
− | + | ||
− | + | <!--T:90--> | |
− | + | Request URL: [site]/api/ctrl/get-ip | |
− | + | ||
− | + | <!--T:91--> | |
− | + | Request Params: | |
− | + | ||
− | + | #token (required): string(64); | |
− | + | #controller_id (required): int; | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
+ | Ответ: | ||
+ | <!--T:94--> | ||
− | + | Пример ответа: | |
− | + | <!--T:95--> | |
− | |||
− | |||
− | |||
<pre> | <pre> | ||
{ | { | ||
− | + | data:'192.168.0.15', | |
− | + | error: null | |
− | |||
} | } | ||
</pre> | </pre> | ||
− | + | ||
− | + | == Установка подписки на Контроллере == <!--T:96--> | |
− | + | ||
+ | Запрос: | ||
+ | |||
+ | <!--T:97--> | ||
+ | Request URL: [site]/in/subscription/set” | ||
+ | |||
+ | Ответ: | ||
+ | |||
+ | Пример ответа (data): | ||
+ | |||
<pre> | <pre> | ||
{ | { | ||
− | " | + | "seq_id": 0, |
− | " | + | "id": 1, // ID подписки (см. ниже) |
− | " | + | "remain_time": 100 // оставшееся время в секундах, 4294967295 - неограниченно |
− | + | } | |
− | + | </pre> | |
− | + | ||
− | + | == Просмотр статуса подписки (get-subscribe-status) == <!--T:98--> | |
− | + | ||
− | + | Запрос: | |
− | + | ||
− | + | <!--T:99--> | |
− | + | Request URL: [site]/api/ctrl/get-subscribe-status | |
− | + | ||
− | + | <!--T:100--> | |
− | + | Параметры: | |
− | + | ||
− | + | <!--T:101--> | |
− | + | #token (required): string(64) | |
− | + | #controller_id (required): int | |
− | + | ||
− | + | <!--T:103--> | |
− | + | Ответ: | |
− | + | ||
− | + | Пример ответа (data): | |
− | + | ||
− | + | <!--T:104--> | |
− | + | <pre> | |
− | + | { | |
− | + | data:{ | |
− | + | id: 1, | |
− | + | controller_id: 40, | |
− | + | user_id: 424, | |
+ | remain_time: 100, | ||
+ | request_time: 1355314332, | ||
+ | response_time: 1355315332, | ||
+ | success: 0 | ||
}, | }, | ||
− | + | error: '' | |
− | |||
− | |||
} | } | ||
</pre> | </pre> | ||
− | = | + | == Активация/продление/покупка подписки (set-subscribe) == <!--T:105--> |
+ | |||
+ | Запрос: | ||
+ | |||
+ | <!--T:106--> | ||
+ | Request URL: [site]/api/ctrl/set-subscribe | ||
− | + | <!--T:107--> | |
− | + | Параметры: | |
− | + | ||
− | + | <!--T:108--> | |
− | <pre> | + | #token (required): string(64) |
+ | #controller_id (required): int | ||
+ | |||
+ | <!--T:110--> | ||
+ | Ответ: | ||
+ | |||
+ | <pre> | ||
{ | { | ||
− | + | data:{ | |
− | + | id: 1, | |
− | + | controller_id: 40, | |
− | + | user_id: 424, | |
− | + | remain_time: 100, | |
+ | request_time: 1355314332, | ||
+ | response_time: 1355315332, | ||
+ | success: 0 | ||
+ | }, | ||
+ | error: '' | ||
} | } | ||
</pre> | </pre> | ||
− | + | ||
− | + | == Метод получения списка телефонов (get-phones) == <!--T:111--> | |
− | + | ||
− | + | Запрос: | |
+ | |||
+ | <!--T:112--> | ||
+ | Request URL: [site]/api/ctrl/get-phones | ||
+ | |||
+ | <!--T:113--> | ||
+ | Параметры: | ||
+ | |||
+ | <!--T:114--> | ||
+ | #token (required): string, 64 | ||
+ | #controller_id (required): int | ||
+ | #type (optional): string, | ||
+ | #range ['recipient', 'authorized', 'all'], (default: 'all') | ||
+ | |||
+ | <!--T:117--> | ||
+ | Ответ: | ||
+ | |||
+ | Пример ответа: | ||
+ | |||
+ | <!--T:118--> | ||
<pre> | <pre> | ||
{ | { | ||
− | + | 'error': null, | |
+ | data: [ | ||
+ | {'id': 5, 'phone': '+380123456789'}, | ||
+ | {'id': 6, 'phone': '+380123334455'}, | ||
+ | {'id': 7, 'phone': '+380112223344'} | ||
+ | ] | ||
} | } | ||
</pre> | </pre> | ||
− | = | + | == Редактирование телефона (edit-phone) == <!--T:119--> |
− | + | Запрос: | |
− | + | ||
− | + | <!--T:120--> | |
− | + | Request URL: [site]/api/ctrl/edit-phone | |
+ | |||
+ | <!--T:121--> | ||
+ | Параметры: | ||
+ | |||
+ | <!--T:122--> | ||
+ | #token (required): string, 64 | ||
+ | #phone_id (required): int | ||
+ | #is_recipient (optional): int | ||
+ | #is_authorized (optional): int | ||
+ | #phone (optional): string | ||
+ | |||
+ | <!--T:127--> | ||
+ | Ответ: | ||
+ | |||
+ | Пример ответа: | ||
<pre> | <pre> | ||
{ | { | ||
− | " | + | "error":null, |
− | " | + | "data":{ |
− | + | "id":2, | |
− | + | "controller_id":81, | |
+ | "phone":"+380503334455", | ||
+ | "is_recipient":"1", | ||
+ | "is_authorized":0 | ||
+ | } | ||
} | } | ||
</pre> | </pre> | ||
− | + | ||
− | + | ||
− | + | == Удаление телефона (delete-phone) == <!--T:128--> | |
+ | |||
+ | Запрос: | ||
+ | |||
+ | <!--T:129--> | ||
+ | Request URL: [site]/api/ctrl/delete-phone | ||
+ | |||
+ | <!--T:130--> | ||
+ | Параметры: | ||
+ | |||
+ | <!--T:131--> | ||
+ | #token (required): string, 64 | ||
+ | #phone_id (required): int | ||
+ | |||
+ | <!--T:133--> | ||
+ | Ответ: | ||
+ | |||
+ | Пример ответа: | ||
+ | |||
<pre> | <pre> | ||
{ | { | ||
− | " | + | "error":null, |
+ | "data":{"response":"OK"} | ||
} | } | ||
</pre> | </pre> | ||
− | = | + | == Добавление телефона (add-phone) == <!--T:134--> |
− | + | Запрос: | |
− | + | ||
− | + | <!--T:135--> | |
− | + | Request URL: [site]/api/ctrl/add-phone | |
+ | |||
+ | <!--T:136--> | ||
+ | Params: | ||
+ | |||
+ | <!--T:137--> | ||
+ | #token (required): string, 64 | ||
+ | #controller_id (required): int | ||
+ | #phone (required): string | ||
+ | #is_recipient (optional): int | ||
+ | #is_authorized (optional): int | ||
+ | |||
+ | <!--T:142--> | ||
+ | Ответ: | ||
+ | |||
+ | Пример ответа: | ||
+ | |||
+ | <!--T:143--> | ||
<pre> | <pre> | ||
{ | { | ||
− | " | + | "error":null, |
− | + | "data":{ | |
+ | "id":2, | ||
+ | "controller_id":81, | ||
+ | "phone":"+380503334455", | ||
+ | "is_recipient":"1", | ||
+ | "is_authorized":0 | ||
+ | } | ||
} | } | ||
</pre> | </pre> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | == Информация о версии прошивки контроллера (fw-version-current) == <!--T:145--> | |
− | + | ||
+ | Запрос: | ||
+ | |||
+ | Request URL: [site]/api/ctrl/fw-version-current/ | ||
+ | Параметры запроса: | ||
− | + | #(int) controller_id, | |
+ | #(string) token | ||
− | + | Пример запроса: | |
− | |||
− | |||
− | |||
− | |||
<pre> | <pre> | ||
{ | { | ||
− | "controller_id": | + | "controller_id": 1 , |
− | |||
− | |||
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae" | "token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae" | ||
− | |||
} | } | ||
</pre> | </pre> | ||
− | + | ||
− | + | Ответ: | |
− | + | ||
+ | Пример ответа (data): | ||
+ | |||
<pre> | <pre> | ||
{ | { | ||
− | " | + | "version_id":1, |
− | + | "version_name":"0.01", | |
− | + | "tag":"OLD", | |
− | + | "url":"\/controllers_fw\/NULL.bin", | |
− | + | "date":"16.10.2018", | |
− | + | "new_version_id":38 // если "new_version_id" != "version_id" значит имеется новая версия. | |
− | |||
− | |||
− | " | ||
− | " | ||
− | " | ||
− | " | ||
− | " | ||
− | |||
− | |||
− | |||
} | } | ||
</pre> | </pre> | ||
− | = ( | + | == Информация о последней версии прошивки контроллера (get-new-fw-version) == <!--T:145--> |
+ | |||
+ | Запрос: | ||
+ | |||
+ | Request URL: [site]/api/ctrl/get-new-fw-version/ | ||
+ | |||
+ | Параметры запроса: | ||
+ | |||
+ | #(int) controller_id, | ||
+ | #(string) token | ||
− | |||
− | |||
− | |||
− | |||
<pre> | <pre> | ||
+ | Пример запроса: | ||
+ | |||
{ | { | ||
− | + | "controller_id": 1 , | |
+ | "token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae" | ||
} | } | ||
</pre> | </pre> | ||
− | + | ||
− | + | Ответ: | |
− | + | ||
+ | Пример ответа (data): | ||
+ | |||
<pre> | <pre> | ||
{ | { | ||
− | + | "version_id":38, | |
+ | "version_name":"0.14", | ||
+ | "tag":"0.14 \/ Oct 5 2018 16:49:04", | ||
+ | "url":"\/controllers_fw\/tls-smarthome-hw-9_0.14.bin", | ||
+ | "date":"16.10.2018" | ||
} | } | ||
</pre> | </pre> | ||
− | = | + | = Устройства = <!--T:144--> |
− | + | == Получение списка устройств пользователя (list) == <!--T:145--> | |
− | + | <!--T:146--> | |
− | + | Запрос: | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | < | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | <!--T:147--> | |
− | + | Request URL: [site]/api/device/list | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | <!--T:148--> | |
+ | Параметры запроса: | ||
+ | #(int) controller_id, | ||
+ | #(string) token | ||
− | + | <!--T:149--> | |
− | + | Пример запроса: | |
− | |||
− | |||
− | |||
− | |||
<pre> | <pre> | ||
{ | { | ||
+ | "controller_id": 1 , | ||
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae" | "token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae" | ||
} | } | ||
</pre> | </pre> | ||
− | + | ||
− | + | <!--T:150--> | |
− | + | Ответ: | |
+ | |||
+ | Пример ответа (data): | ||
<pre> | <pre> | ||
{ | { | ||
"0":{ | "0":{ | ||
− | "id": | + | "id":"122", |
− | "external_id": | + | "external_id":"19", //id на контроллере |
− | " | + | "controller_id":"6", |
− | " | + | "name":"Сирена", |
− | " | + | "type_id":"2", //тип устройства |
− | " | + | "codes":":{ //коды (кнопки) |
− | + | "0":{ | |
− | + | "id":"218", | |
− | + | "external_cod_id":"32", | |
− | + | "device_id":"122", | |
− | + | "name":"ON", | |
− | + | "code":"3675192", | |
− | + | "protocol":"1", | |
− | + | "pulse_len":null, | |
− | + | "group_1":"1", | |
− | + | "group_2":"0", | |
− | + | "group_3":"0", | |
− | + | "group_4":"0", | |
− | + | "group_5":"0", | |
− | + | "group_6":"0", | |
− | + | "group_7":"0", | |
− | + | "group_8":"0", | |
− | + | "active":"1" | |
− | + | }, | |
− | + | "1":{ ... } | |
− | + | }, | |
− | " | + | "state":"1", |
− | + | "on_dashboard":"1", //показывать на главной | |
− | " | + | "active":"1" |
− | + | }, | |
− | " | + | "1":{ |
− | + | "id":"120", | |
− | + | "external_id":"22", | |
− | " | + | "controller_id":"6", |
− | + | "name":"Пульт 4кн бел", | |
− | " | + | "type_id":"3", |
− | " | + | "codes": ... , |
− | " | + | "state":"1", |
− | " | + | "on_dashboard":"0", |
− | " | + | "active":"1" |
− | + | } | |
− | "1" | + | } |
− | " | + | </pre> |
− | " | + | |
− | + | ||
− | } | + | == Информация об устройстве (info) == <!--T:151--> |
− | } | + | |
− | + | <!--T:152--> | |
− | </pre> | + | Запрос: |
− | + | ||
− | + | <!--T:153--> | |
− | = | + | Request URL: [site]/api/device/info/ |
− | |||
− | Запрос | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
+ | <!--T:154--> | ||
+ | Параметры запроса: | ||
− | + | <!--T:155--> | |
+ | #(int) controller_id, | ||
+ | #(int) device_id, | ||
+ | #(string) token | ||
− | + | <!--T:158--> | |
− | + | Пример запроса: | |
− | |||
− | |||
<pre> | <pre> | ||
{ | { | ||
− | " | + | "controller_id": 1 , |
+ | "device_id": 122, | ||
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae" | "token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae" | ||
} | } | ||
</pre> | </pre> | ||
− | + | ||
− | + | <!--T:159--> | |
− | + | Ответ: | |
+ | |||
+ | Пример ответа (data): | ||
<pre> | <pre> | ||
{ | { | ||
− | "id": | + | "id":"122", |
− | "external_id": | + | "external_id":"19", |
− | " | + | "controller_id":"6", |
− | " | + | "name":"Сирена", |
− | " | + | "type_id":"2", |
− | " | + | "codes" |
− | + | "0" | |
− | + | "id":"218", | |
− | + | "external_cod_id":"32", | |
− | + | "device_id":"122", | |
− | + | "name":"ON", | |
− | + | "code":"3675192", | |
− | + | "protocol":"1", | |
− | + | "pulse_len":null, | |
− | + | "group_1":"1", | |
− | + | "group_2":"0", | |
− | + | "group_3":"0", | |
− | + | "group_4":"0", | |
− | + | "group_5":"0", | |
− | + | "group_6":"0", | |
− | + | "group_7":"0", | |
− | + | "group_8":"0", | |
− | + | "active":"1", | |
− | + | }, | |
− | + | "1" | |
− | + | "id":"219", | |
− | + | "external_cod_id":"33", | |
− | + | "device_id":"122", | |
− | + | "name":"OFF", | |
− | " | + | "code":"3675186 |
− | + | ... | |
− | " | + | } |
− | + | }, | |
− | " | + | "state":"1", |
− | + | "on_dashboard":"1", | |
− | " | + | "active":"1", |
− | " | + | "alias":"xxx", |
− | " | + | "send_sms ":0, |
− | " | + | "voice_call":0, |
− | + | place" | |
+ | "name":null, | ||
+ | "color":null | ||
+ | } | ||
} | } | ||
− | |||
+ | </pre> | ||
+ | |||
+ | == Обновление информации об устройстве (update) == <!--T:161--> | ||
− | + | <!--T:162--> | |
− | + | Запрос: | |
− | + | ||
− | + | <!--T:163--> | |
− | + | Request URL: [site]/api/device/update/ | |
+ | |||
+ | <!--T:164--> | ||
+ | Параметры запроса: | ||
+ | |||
+ | <!--T:165--> | ||
+ | #(int) device_id, | ||
+ | #(string) name, | ||
+ | #(int) active, | ||
+ | #(string) token, | ||
+ | |||
+ | <!--T:169--> | ||
+ | Пример запроса (data): | ||
+ | |||
+ | <pre> | ||
{ | { | ||
− | + | "device_id": 107, // local device id | |
+ | "name": "New name", // new name | ||
+ | "active": 1, | ||
+ | "token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae" | ||
} | } | ||
− | + | </pre> | |
− | |||
− | |||
− | |||
− | + | Ответ: | |
+ | |||
+ | Пример ответа (data): | ||
− | + | <pre> | |
− | |||
− | |||
− | |||
− | |||
{ | { | ||
− | + | "result" : "Ok" | |
} | } | ||
− | + | </pre> | |
− | |||
− | |||
− | |||
− | + | == Удаление устройства (delete) == <!--T:171--> | |
− | + | <!--T:172--> | |
− | + | Запрос: | |
− | + | ||
− | + | <!--T:173--> | |
− | + | Request URL: [site]/api/device/delete/ | |
− | + | ||
− | + | <!--T:174--> | |
− | + | Параметры запроса: | |
− | + | ||
− | + | <!--T:175--> | |
− | + | #(int) device_id, | |
− | + | #(string) token | |
− | + | <!--T:177--> | |
+ | Пример запроса: | ||
− | |||
− | |||
− | |||
− | |||
− | |||
<pre> | <pre> | ||
{ | { | ||
+ | "device_id": 107, // local device id | ||
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae" | "token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae" | ||
} | } | ||
</pre> | </pre> | ||
− | + | ||
− | + | <!--T:178--> | |
− | + | Ответ: | |
+ | |||
+ | <!--T:180--> | ||
+ | Пример ответа (data): | ||
+ | |||
+ | <pre> | ||
{ | { | ||
− | + | "result" : "Ok" | |
} | } | ||
− | + | </pre> | |
+ | |||
+ | == Получение метеоданных (last) == <!--T:182--> | ||
+ | <!--T:183--> | ||
+ | Запрос: | ||
+ | Request URL: [site]/api/device/meteo-last/ | ||
− | + | <!--T:184--> | |
+ | Параметры запроса: | ||
+ | |||
+ | <!--T:185--> | ||
+ | #(string) token, | ||
+ | #(int) device_id | ||
+ | |||
+ | <!--T:187--> | ||
+ | Пример запроса: | ||
− | |||
− | |||
− | |||
− | |||
<pre> | <pre> | ||
{ | { | ||
Строка 880: | Строка 1207: | ||
} | } | ||
</pre> | </pre> | ||
− | + | ||
− | + | Ответ: | |
− | + | ||
+ | <!--T:189--> | ||
+ | Пример ответа (data): | ||
+ | |||
+ | <!--T:190--> | ||
<pre> | <pre> | ||
{ | { | ||
Строка 900: | Строка 1231: | ||
</pre> | </pre> | ||
− | = Получение метеоданных за период (period) = | + | == Получение метеоданных за период (period) == <!--T:191--> |
− | + | ||
− | + | Запрос: | |
− | + | ||
− | + | <!--T:192--> | |
+ | Request URL: [site]/api/device/meteo-period/ | ||
+ | |||
+ | <!--T:193--> | ||
+ | Параметры запроса: | ||
+ | |||
+ | <!--T:194--> | ||
+ | #(string) token, | ||
+ | (int) device_id, | ||
+ | #(int) period | ||
+ | |||
+ | <!--T:197--> | ||
+ | Пример запроса: | ||
+ | |||
<pre> | <pre> | ||
{ | { | ||
Строка 913: | Строка 1257: | ||
</pre> | </pre> | ||
− | + | <!--T:198--> | |
− | параметры ответа | + | Ответ: |
− | + | ||
+ | <!--T:199--> | ||
+ | параметры ответа (array to objects): | ||
+ | |||
+ | <!--T:200--> | ||
+ | Пример ответа (data): | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 940: | Строка 1290: | ||
</pre> | </pre> | ||
− | = Получение данных электропитания (last) = | + | == Получение данных электропитания (last) == <!--T:201--> |
+ | |||
+ | Запрос: | ||
+ | |||
+ | Request URL: [site]/api/device/electro-last/ | ||
+ | |||
+ | <!--T:202--> | ||
+ | Параметры запроса: | ||
+ | |||
+ | <!--T:203--> | ||
+ | #(string) token, | ||
+ | #(int) device_id | ||
+ | |||
+ | <!--T:205--> | ||
+ | Пример запроса: | ||
− | |||
− | |||
− | |||
− | |||
<pre> | <pre> | ||
{ | { | ||
Строка 952: | Строка 1312: | ||
} | } | ||
</pre> | </pre> | ||
− | + | ||
− | + | <!--T:206--> | |
− | + | Ответ: | |
+ | |||
+ | <!--T:208--> | ||
+ | Пример ответа (data): | ||
+ | |||
+ | <!--T:209--> | ||
<pre> | <pre> | ||
{ | { | ||
Строка 975: | Строка 1340: | ||
</pre> | </pre> | ||
− | = Получение данных электропитания за период (period) = | + | == Получение данных электропитания за период (period) == <!--T:210--> |
− | + | Запрос: | |
− | + | ||
− | + | <!--T:211--> | |
− | + | Request URL: [site]/api/device/electro-period/ | |
+ | |||
+ | <!--T:212--> | ||
+ | Параметры запроса: | ||
+ | |||
+ | <!--T:213--> | ||
+ | #(string) token, | ||
+ | #(int) device_id, | ||
+ | #(int) period | ||
+ | |||
+ | <!--T:216--> | ||
+ | Пример запроса: | ||
+ | |||
<pre> | <pre> | ||
{ | { | ||
Строка 988: | Строка 1365: | ||
} | } | ||
</pre> | </pre> | ||
− | + | ||
− | + | Ответ: | |
− | + | ||
+ | <!--T:217--> | ||
+ | Параметры ответа: (array to objects) | ||
+ | |||
+ | <!--T:218--> | ||
+ | Пример ответа (data): | ||
+ | |||
<pre> | <pre> | ||
[ | [ | ||
Строка 1018: | Строка 1401: | ||
</pre> | </pre> | ||
− | = | + | == Получение данных о сторонних устройствах (other-last) == <!--T:219--> |
+ | |||
+ | <!--T:220--> | ||
+ | Метод возвращает информацию о последнем обнаруженном стороннем устройстве. | ||
+ | |||
+ | Запрос: | ||
+ | |||
+ | <!--T:221--> | ||
+ | Request URL: [site]/api/device/other-last/ | ||
+ | |||
+ | <!--T:222--> | ||
+ | Параметры запроса: | ||
+ | |||
+ | <!--T:223--> | ||
+ | #(string) token, | ||
+ | #(int) device_id | ||
+ | |||
+ | <!--T:225--> | ||
+ | Пример запроса: | ||
− | |||
− | |||
− | |||
− | |||
<pre> | <pre> | ||
{ | { | ||
Строка 1030: | Строка 1427: | ||
} | } | ||
</pre> | </pre> | ||
− | + | ||
− | + | Ответ: | |
− | + | ||
+ | <!--T:227--> | ||
+ | Пример ответа (data): | ||
<pre> | <pre> | ||
{ | { | ||
Строка 1052: | Строка 1451: | ||
− | = | + | == Получение данных о сторонних устройствах за период (other-period) == <!--T:228--> |
− | + | ||
− | + | Запрос: | |
− | + | ||
− | + | <!--T:229--> | |
+ | Request URL: [site]/api/device/other-period/ | ||
+ | |||
+ | <!--T:230--> | ||
+ | Параметры запроса: | ||
+ | |||
+ | <!--T:231--> | ||
+ | #(string) token, | ||
+ | #(int) device_id, | ||
+ | #(int) period | ||
+ | |||
+ | <!--T:234--> | ||
+ | Пример запроса: | ||
+ | |||
+ | <pre> | ||
{ | { | ||
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae", | "token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae", | ||
Строка 1062: | Строка 1475: | ||
"period": 1 // количество дней | "period": 1 // количество дней | ||
} | } | ||
− | + | </pre> | |
− | + | ||
− | + | Ответ: | |
+ | |||
+ | <!--T:236--> | ||
+ | Пример ответа (data): | ||
+ | |||
<pre> | <pre> | ||
{ | { | ||
Строка 1087: | Строка 1504: | ||
} | } | ||
</pre> | </pre> | ||
− | |||
− | === | + | = Wizard добавления устройств = <!--T:237--> |
− | + | ||
− | + | ||
− | < | + | == Датчик открытия двери (create-door-open-sensor) == <!--T:238--> |
− | + | ||
− | + | Запрос: | |
− | + | ||
− | + | <!--T:239--> | |
− | + | URL: [site]/api/wizard/create-door-open-sensor | |
− | + | ||
− | + | <!--T:240--> | |
− | < | + | Параметры запроса: |
− | + | #controller_id (required): int | |
+ | #token (required): string, 64 | ||
+ | #device_name (optional): string, 256 | ||
+ | #code_ready (optional): string, 64 //Название кода готовности | ||
+ | #code_alarm (optional): string, 64 //Название кода оповещания | ||
+ | #code_low_battery (optional): string, 64 //Название кода садящейся батареи | ||
− | + | <!--T:241--> | |
+ | Ответ: | ||
Пример ответа: | Пример ответа: | ||
+ | |||
<pre> | <pre> | ||
{ | { | ||
− | + | data:{ | |
− | + | 'response': 'OK' | |
+ | }, | ||
+ | error: null | ||
} | } | ||
+ | </pre> | ||
+ | <!--T:242--> | ||
+ | После отправки параметров ожидается срабатывание добавляемого устройства. При срабатывании происходит процесс добавления, и лишь после этого приходит ответ. | ||
− | = | + | == Датчик затопления (create-flood-sensor) == <!--T:243--> |
− | + | Запрос: | |
− | + | <!--T:244--> | |
− | + | Request URL: [site]/api/wizard/create-flood-sensor | |
− | + | <!--T:245--> | |
+ | Параметры запроса: | ||
+ | |||
+ | <!--T:246--> | ||
+ | #controller_id (required): int | ||
+ | #token (required): string, 64 | ||
+ | #device_name (optional): string, 256 | ||
+ | #code_alarm (optional): string, 64 //Название кода оповещения | ||
+ | #code_tamper (optional): string, 64 //Название кода вмешательства | ||
+ | #code_low_battery (optional): string, 64 //Название кода садящейся батареи | ||
+ | |||
+ | <!--T:251--> | ||
+ | Ответ: | ||
+ | |||
+ | Пример ответа: | ||
+ | |||
<pre> | <pre> | ||
{ | { | ||
− | + | data: { | |
− | + | 'response': 'OK' | |
− | + | }, | |
− | + | error: null | |
} | } | ||
</pre> | </pre> | ||
+ | После отправки параметров ожидается срабатывание добавляемого устройства. При срабатывании происходит процесс добавления, и лишь после этого приходит ответ. | ||
− | |||
+ | == Пульт,4 кнопки (create-console) == <!--T:252--> | ||
− | + | Запрос: | |
− | Request | + | <!--T:253--> |
+ | Request URL: [site]/api/wizard/create-console | ||
− | + | <!--T:254--> | |
+ | Параметры запроса: | ||
− | + | <!--T:255--> | |
+ | #controller_id (required): int | ||
+ | #token (required): string, 64 | ||
+ | #device_name (optional): string, 256 | ||
+ | #code_lock (optional): string, 64 //Название кода блокировки | ||
+ | #code_unlock (optional): string, 64 //Название кода разблокировки | ||
+ | #code_s (optional): string, 64 //Название кода s | ||
+ | #code_alarm (optional): string, 64 //Название кода оповещения | ||
− | + | <!--T:262--> | |
+ | Ответ: | ||
− | + | Пример ответа: | |
− | + | <pre> | |
+ | { | ||
+ | data: { | ||
+ | 'response': 'OK' | ||
+ | }, | ||
+ | error: null | ||
+ | } | ||
+ | </pre> | ||
− | + | После отправки параметров ожидается срабатывание добавляемого устройства. При срабатывании происходит процесс добавления, и лишь после этого приходит ответ. | |
− | |||
− | + | == Сирена (create-siren) == <!--T:263--> | |
− | + | Запрос: | |
− | + | <!--T:264--> | |
+ | Request URL: [site]/api/wizard/create-siren | ||
− | + | <!--T:265--> | |
+ | Параметры запроса: | ||
− | + | <!--T:266--> | |
+ | #controller_id (required): int | ||
+ | #token (required): string, 64 | ||
+ | #device_name (optional): string, 256 | ||
+ | #code_on (optional): string, 64 //Название кода включения | ||
+ | #code_off (optional): string, 64 //Название кода выключения | ||
+ | #code_blank (optional): string, 64 //Название кода blank | ||
− | + | <!--T:272--> | |
+ | Ответ: | ||
− | + | Пример ответа: | |
− | + | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
<pre> | <pre> | ||
{ | { | ||
− | + | data: { | |
− | data: {' | + | 'response': 'OK' |
+ | }, | ||
+ | error: null | ||
} | } | ||
</pre> | </pre> | ||
+ | Перед отправкой параметров необходимо перевести сирену в режим обучения. | ||
− | |||
− | + | == Метеостанция: получение списка обнаруженных метеостанций за последние 10 минут (get-meteos) == <!--T:273--> | |
− | + | Запрос: | |
− | + | Request URL: [site]/api/wizard/get-meteos | |
− | + | <!--T:274--> | |
+ | Параметры запроса: | ||
− | + | <!--T:275--> | |
+ | #controller_id (required): int | ||
+ | #token (required): string, 64 | ||
− | + | <!--T:277--> | |
+ | Ответ: | ||
− | + | Пример ответа: | |
− | + | <pre> | |
+ | { | ||
+ | "error":null, | ||
+ | "data":[ | ||
+ | { | ||
+ | "id":"93", | ||
+ | "controller_id":"79", | ||
+ | "date":"1528389351", | ||
+ | "type":"7", | ||
+ | "family":"0", | ||
+ | "rf_code":null, | ||
+ | "rf_bit_len":null, | ||
+ | "rf_pulse_len":null, | ||
+ | "rf_protocol":null, | ||
+ | "rf_freq":null, | ||
+ | "ir_code":null, | ||
+ | "ir_bit_len":null, | ||
+ | "ir_address":null, | ||
+ | "ir_protocol":null, | ||
+ | "meteo_num":"0" | ||
+ | } | ||
+ | ] | ||
+ | } | ||
+ | </pre> | ||
− | + | == Метеостанция: добавление (create-meteo) == <!--T:278--> | |
− | + | Запрос: | |
− | + | <!--T:279--> | |
+ | Request URL: [site][site]/api/wizard/create-meteo | ||
− | + | <!--T:280--> | |
+ | Параметры запроса: | ||
− | + | <!--T:281--> | |
+ | #controller_id (required): int | ||
+ | #token (required): string, 64 | ||
+ | #meteo_num (required): int //Получается в списке выше | ||
+ | #device_name (optional): string, 256 | ||
− | + | <!--T:285--> | |
+ | Ответ: | ||
− | + | Пример ответа: | |
− | + | ||
− | + | <pre> | |
− | + | { | |
− | + | "error":null, | |
+ | "data":{ | ||
+ | "response":"OK" | ||
+ | } | ||
+ | } | ||
+ | </pre> | ||
− | + | == Водопроводный кран == <!--T:286--> | |
− | + | <!--T:287--> | |
+ | Порядок добавления крана: | ||
− | + | 1) Сгенерировать коды | |
− | + | <!--T:288--> | |
+ | 2) Зажать на кране кнопку, пока кран не мигнёт трижды | ||
− | + | <!--T:289--> | |
+ | 3) Отправить один код | ||
− | + | <!--T:290--> | |
+ | 4) Нажать на кране кнопку однократно | ||
− | + | <!--T:291--> | |
+ | 5) Зажать на кране кнопку, пока не мигнёт 4 раза | ||
+ | <!--T:292--> | ||
+ | 6) Отправить второй код из сгенерированных | ||
− | + | <!--T:293--> | |
− | < | + | 7) Нажать на кране кнопку однократно |
− | + | ||
− | + | <!--T:294--> | |
− | + | 8) Отправить запрос на создание крана. | |
− | + | ||
+ | |||
+ | === Генерация кодов === <!--T:295--> | ||
− | + | Запрос: | |
− | + | <!--T:296--> | |
+ | Request URL: [site]/api/wizard/create-codes | ||
− | + | <!--T:297--> | |
+ | Параметры запроса: | ||
− | + | <!--T:298--> | |
+ | #controller_id (required): int | ||
+ | #token (required): string, 64 | ||
− | + | <!--T:300--> | |
+ | Ответ: | ||
− | + | Пример ответа: | |
− | |||
<pre> | <pre> | ||
{ | { | ||
− | error:null, | + | "error":null, |
− | data: { | + | "data": |
+ | { | ||
+ | "response":{ | ||
+ | "id":30, | ||
+ | "masks":"[6,4,0,1]", | ||
+ | "code_1":"9920950", | ||
+ | "code_2":"9920948", | ||
+ | "code_3":"9920944", | ||
+ | "code_4":"9920945" | ||
+ | } | ||
+ | } | ||
} | } | ||
</pre> | </pre> | ||
− | |||
− | + | === Выполнение кода === <!--T:301--> | |
− | + | ||
+ | Запрос: | ||
+ | |||
+ | <!--T:302--> | ||
+ | Request URL: [site]/api/wizard/execute-code | ||
+ | |||
+ | <!--T:303--> | ||
+ | Параметры запроса: | ||
+ | |||
+ | <!--T:304--> | ||
+ | #controller_id (required): int | ||
+ | #token (required): string, 64 | ||
+ | #code (required): int // Берется из сгенерированных | ||
− | + | <!--T:307--> | |
+ | Ответ: | ||
− | + | Пример ответа: | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
<pre> | <pre> | ||
{ | { | ||
− | + | error: null, | |
− | + | data: { | |
− | " | + | "response":"OK" |
} | } | ||
} | } | ||
</pre> | </pre> | ||
− | = | + | === Добавление крана === <!--T:308--> |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | Запрос: | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | <!--T:309--> | |
− | + | Request URL: [site]/api/wizard/create-crane-by-codes | |
− | |||
− | |||
− | + | <!--T:310--> | |
+ | Параметры запроса: | ||
+ | <!--T:311--> | ||
+ | #controller_id (required): int | ||
+ | #token (required): string, 64 | ||
+ | #code_1 (required): int | ||
+ | #code_2 (required): int | ||
+ | #device_name (optional): string, 256 | ||
+ | #code_open (optional): string, 64 //Название кода открытия | ||
+ | #code_close (optional): string, 64 //Название кода закрытия | ||
− | + | <!--T:318--> | |
+ | Ответ: | ||
− | + | Пример ответа: | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
<pre> | <pre> | ||
{ | { | ||
− | data:{ | + | data:{'response': 'OK'}, |
− | |||
− | |||
error: null | error: null | ||
} | } | ||
</pre> | </pre> | ||
− | + | == Добавление розетки == <!--T:319--> | |
+ | <!--T:320--> | ||
+ | Порядок добавления розетки следующий: | ||
− | + | <!--T:321--> | |
+ | 1) Сгенерировать коды | ||
− | + | <!--T:322--> | |
− | + | 2) Зажать на розетке кнопку, пока она не начнет мигать | |
− | + | <!--T:323--> | |
+ | 3) Отправить один код | ||
− | + | <!--T:324--> | |
− | + | 4) Зажать на розетке кнопку, пока она не начнет мигать | |
− | |||
− | |||
− | |||
− | |||
− | + | <!--T:325--> | |
− | + | 5) Отправить второй код из сгенерированых | |
− | + | ||
− | + | <!--T:326--> | |
− | + | 6) Отправить запрос на создание розетки | |
− | + | ||
− | + | ||
− | + | === Генерация кодов (create-codes) === <!--T:327--> | |
− | < | + | |
− | + | Запрос: | |
− | + | ||
+ | <!--T:328--> | ||
+ | Request URL: [site]/api/wizard/create-codes | ||
+ | <!--T:329--> | ||
+ | Параметры запроса: | ||
− | + | <!--T:330--> | |
+ | #controller_id (required): int | ||
+ | #token (required): string, 64 | ||
+ | #socket (required): любое значение. | ||
− | + | <!--T:333--> | |
+ | Ответ: | ||
− | + | Пример ответа: | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
<pre> | <pre> | ||
{ | { | ||
− | data: { | + | "error":null, |
− | + | "data":{ | |
− | + | "response":{"id":30,"masks":"[257, 258]","code_1":"8737025","code_2":"8737026"} | |
− | + | } | |
} | } | ||
</pre> | </pre> | ||
− | |||
− | |||
+ | === Выполнение кода (execute-code) === <!--T:334--> | ||
− | + | Запрос: | |
− | URL | + | <!--T:335--> |
+ | Request URL: [site]/api/wizard/execute-code | ||
− | + | <!--T:336--> | |
+ | Параметры запроса: | ||
+ | |||
+ | <!--T:337--> | ||
+ | #controller_id (required): int | ||
+ | #token (required): string, 64 | ||
+ | #code (required): int // Берется из сгенерированных | ||
− | + | <!--T:340--> | |
− | + | Ответ: | |
− | |||
− | |||
− | |||
− | |||
− | + | Пример ответа: | |
+ | |||
<pre> | <pre> | ||
{ | { | ||
− | data: { | + | error: null, |
− | + | data: {'response' => 'OK'} | |
− | |||
− | |||
} | } | ||
</pre> | </pre> | ||
− | |||
− | |||
− | == | + | === Добавление розетки (create-socket) === <!--T:341--> |
− | |||
− | + | Запрос: | |
− | + | <!--T:342--> | |
− | + | Request URL: [site]/api/wizard/create-socket | |
− | + | <!--T:343--> | |
− | + | Параметры запроса: | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | <!--T:344--> | |
+ | #controller_id (required): int | ||
+ | #token (required): string, 64 | ||
+ | #code_1 (required): int | ||
+ | #code_2 (required): int | ||
+ | #device_name (optional): string, 256 | ||
+ | #code_off (optional): string, 64 //Название кода открытия | ||
+ | #code_on (optional): string, 64 //Название кода закрытия | ||
− | + | <!--T:351--> | |
+ | Ответ: | ||
− | + | Пример ответа: | |
− | + | ||
− | |||
− | |||
− | |||
− | |||
− | |||
<pre> | <pre> | ||
{ | { | ||
− | + | data: {'response':'OK'}, | |
− | + | error: null | |
− | |||
− | |||
} | } | ||
</pre> | </pre> | ||
+ | = Сценарии = <!--T:352--> | ||
+ | == Получение списка сценариев (list) == <!--T:353--> | ||
− | + | <!--T:354--> | |
+ | Запрос: | ||
− | + | Request URL: [site]/api/scheduler/list/ | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
+ | <!--T:355--> | ||
+ | Параметры запроса: (string) token | ||
− | + | <!--T:356--> | |
− | + | Пример запроса: | |
− | + | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
<pre> | <pre> | ||
{ | { | ||
− | " | + | "token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae" |
− | |||
− | |||
} | } | ||
</pre> | </pre> | ||
+ | <!--T:357--> | ||
+ | Ответ: | ||
− | + | <!--T:359--> | |
− | + | Пример ответа: | |
− | + | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
<pre> | <pre> | ||
{ | { | ||
− | + | "error":null, | |
− | + | "data" | |
− | " | + | "schedulers":[ |
+ | { | ||
+ | "id":83, | ||
+ | "external_id":23, | ||
+ | "name":"Test 444", | ||
+ | "operation":"local", | ||
+ | "armed":2, | ||
+ | "type":"meteo", | ||
+ | "active":0, | ||
+ | "action" | ||
+ | "action_id":1, | ||
+ | "controller_id":109, | ||
+ | "device_id":1747, | ||
+ | "code_id":1100, | ||
+ | "device_external_id":64, | ||
+ | "armed":1, | ||
+ | "groups":7, | ||
+ | "sensor_type":"1", | ||
+ | "date":"00:00", | ||
+ | "repetition":"1", | ||
+ | "logic_operation":"=", | ||
+ | "value":"9" | ||
+ | }, | ||
+ | "target" | ||
+ | "target_id":2, | ||
+ | "controller_id":109, | ||
+ | "device_id":0, | ||
+ | "device_external_id":0, | ||
+ | "code_id":0, | ||
+ | "external_cod_id":0, | ||
+ | "armed":0, | ||
+ | "groups":168 | ||
} | } | ||
+ | }, | ||
+ | { | ||
+ | "id":84, | ||
+ | "external_id":24, | ||
+ | ... | ||
+ | }] | ||
+ | } | ||
} | } | ||
+ | |||
+ | <!--T:360--> | ||
</pre> | </pre> | ||
− | == | + | == Обновление/добавление сценариев (update) == <!--T:361--> |
+ | |||
+ | <!--T:362--> | ||
+ | Запрос осуществляется в 2 этапа: на первом этапе происходит при запросе на обновление Контроллера (см. "Обновление Контроллера"); | ||
+ | на втором этапе обновляется информация о каждом действии. | ||
− | + | <!--T:363--> | |
+ | Запрос: | ||
− | + | Request URL: [site]/api/scheduler/update/ | |
+ | |||
+ | <!--T:364--> | ||
+ | Параметры запроса: | ||
− | + | <!--T:365--> | |
− | + | #(int) controller_id, | |
− | + | #(string) token | |
− | |||
− | |||
− | |||
− | |||
− | + | Пример запроса: | |
+ | |||
<pre> | <pre> | ||
{ | { | ||
− | + | "controller_id": 6 , | |
− | + | "token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae", | |
} | } | ||
</pre> | </pre> | ||
− | + | <!--T:368--> | |
+ | Ответ: | ||
− | + | <!--T:370--> | |
− | + | Пример ответа: | |
− | + | ||
− | + | <pre> | |
− | + | { | |
− | + | "result": "Ok" // ответ что запрос ушел | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | <pre> | ||
− | { | ||
− | " | ||
− | |||
− | |||
− | |||
} | } | ||
</pre> | </pre> | ||
+ | Процесс обновления происходит автоматически. Для получения результата требуется таймаут, после чего делается стандартный запрос на получение данных (Контроллер, действия) | ||
+ | |||
+ | == Информация о сценарии (info) == <!--T:371--> | ||
− | + | <!--T:372--> | |
+ | Запрос: | ||
− | URL: [site]/api/ | + | Request URL: [site]/api/scheduler/info/ |
− | + | <!--T:373--> | |
+ | Параметры запроса: | ||
− | + | <!--T:374--> | |
− | + | #(int) scheduler_id, | |
− | + | #(string) token | |
− | + | <!--T:376--> | |
+ | Пример запроса: | ||
+ | |||
<pre> | <pre> | ||
{ | { | ||
− | + | "scheduler_id": 122, | |
− | + | "token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae" | |
} | } | ||
</pre> | </pre> | ||
+ | Ответ: | ||
− | + | <!--T:378--> | |
− | + | Пример ответа (data): | |
− | + | ||
− | + | <pre> | |
− | + | { | |
− | + | "id":107, | |
− | controller_id | + | "external_id":6, |
− | + | "name":"Test 1.1.1", | |
− | + | "operation":"local", | |
− | + | "armed":1, | |
− | + | "type":"device", | |
− | + | "active":1, | |
− | + | "action":{ | |
− | + | "action_id":1, | |
− | + | "controller_id":111, | |
− | + | "device_id":1824, | |
− | + | "code_id":1399, | |
− | + | "device_external_id":18, | |
− | + | "armed":0, | |
+ | "groups":0, | ||
+ | "sensor_type":"0", | ||
+ | "date":null, | ||
+ | "repetition":"0", | ||
+ | "logic_operation":"=", | ||
+ | "value":null | ||
+ | }, | ||
+ | "targets":[ | ||
+ | { | ||
+ | "id":87, | ||
+ | "type_id":3, | ||
+ | "controller_id":111, | ||
+ | "device_id":0, | ||
+ | "code_id":0, | ||
+ | "device_external_id":0, | ||
+ | "armed":1, | ||
+ | "groups":0 | ||
+ | }, | ||
+ | { | ||
+ | "id":88, | ||
+ | "type_id":1, | ||
+ | "controller_id":113, | ||
+ | "device_id":13, | ||
+ | "code_id":123, | ||
+ | "device_external_id":1234, | ||
+ | "armed":0, | ||
+ | "groups":0 | ||
+ | }, | ||
+ | ] | ||
} | } | ||
</pre> | </pre> | ||
− | |||
− | + | == Обновление сценариев (update) == <!--T:371--> | |
− | + | Обновление состоит из двух запросов: 1) обновление действия, вызывающего событие; 2) обновления целей сработки. | |
+ | При этом запросы можно делать независимо друг от друга. | ||
− | + | === Обновление/добавление действий и событий сценария (Update-action) === | |
− | |||
− | |||
− | + | Request URL: [site]/api/scheduler/update-action/ | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
+ | Параметры запроса: | ||
− | + | #(int) scheduler_id, | |
+ | #(string) token, | ||
+ | #(string) name, | ||
+ | #(int) "active" | ||
+ | #(int) "send_sms" // 1 - отправлять / 0 - не отправлять | ||
+ | #(int) "make_call" // 1 - отправлять / 0 - не отправлять | ||
+ | #(int) "armed" // 0 - в любом режиме, 1 - в режиме охраны, 2 - без режима охраны | ||
+ | #(int) "action_id", | ||
+ | #(int) "action_device_id", | ||
+ | #(int) "action_code_id", | ||
+ | #(int) "action_armed", | ||
+ | #(int) "action_groups", // битовая маска группы от 1 до 8 | ||
+ | #(string) "action_repetition", // только для расписания: номер дней повторения через запятую от 1 до 7 | ||
+ | #(string) "action_event_time", // только для расписания: время повторения | ||
+ | #(int) "action_sensor_type", // только для метео устройств: 1 - напряжение, 2 - температура, 3 - влажность, 4 - Атм. давление, 5 - Освещенность , 0 - не выбрано | ||
+ | #(string) "action_logic_operation", // логическая операция : '=', '!=', '<', '>', '<=', '>=', 'in', 'like' | ||
+ | #(int) "action_value" | ||
− | + | Пример запроса: | |
+ | <pre> | ||
+ | { | ||
+ | "scheduler_id": 6 , | ||
+ | "token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae", | ||
+ | "name": "New name", | ||
+ | "active": 1, | ||
+ | "send_sms": 0, | ||
+ | "make_call": 1, | ||
+ | "armed": 2, | ||
+ | "action_id" : 2, | ||
+ | "action_device_id" : 2, | ||
+ | "action_code_id" : 4, | ||
+ | "action_armed" : 0, | ||
+ | "action_groups" : 7, | ||
+ | "action_repetition" : "1,3", | ||
+ | "action_event_time" : "10:00", | ||
+ | "action_sensor_type" : 2, | ||
+ | "action_logic_operation" : "=", | ||
+ | "action_value" : 35, | ||
+ | } | ||
+ | </pre> | ||
+ | Ответ: | ||
− | + | Пример ответа: | |
− | + | <pre> | |
− | + | { | |
+ | "result": "Ok" // ответ о том, что запрос отправлен. | ||
+ | } | ||
+ | </pre> | ||
+ | === Обновление цели события (Update-target) === | ||
− | |||
− | /api/ | + | Request URL: [site]/api/scheduler/update-target/ |
− | |||
− | + | Параметры запроса: | |
− | + | #(int) target_id, | |
− | + | #(string) token, | |
− | + | #(int) "target_type_id", | |
− | + | #(int) "target_device_id", | |
− | + | #(int) "target_code_id", | |
− | + | #(int) "target_armed", | |
− | + | #(int) "target_groups", // битовая маска группы от 1 до 8 | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | Пример запроса: | |
<pre> | <pre> | ||
{ | { | ||
− | + | "target_id": 6 , | |
− | + | "token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae", | |
+ | "target_type_id" : 2, | ||
+ | "target_device_id" : 2, | ||
+ | "target_code_id" : 4, | ||
+ | "target_armed" : 0, | ||
+ | "target_groups" : 7 | ||
} | } | ||
− | </pre> | + | </pre> |
+ | Ответ: | ||
− | + | Пример ответа: | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
<pre> | <pre> | ||
− | + | { | |
− | + | "result": "Ok" // ответ о том, что запрос отправлен. | |
− | + | } | |
− | + | </pre> | |
− | == | + | = Логи пользователя (logs) = <!--T:379--> |
− | + | Запрос: | |
− | + | <!--T:380--> | |
− | + | Request URL: [site]/api/profile/logs/ | |
− | |||
− | + | <!--T:381--> | |
− | + | Параметры запроса: (string) token, (int) page, (int) limit | |
− | |||
− | |||
− | + | <!--T:382--> | |
− | + | Пример запроса: | |
− | + | ||
− | |||
− | |||
− | |||
<pre> | <pre> | ||
{ | { | ||
− | + | "token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae", | |
− | + | "page": 1 // номер страницы лога | |
+ | "limit": 20 // количество логов на странице , по умолчанию 20, максимум 100 | ||
} | } | ||
</pre> | </pre> | ||
+ | Ответ: | ||
+ | Пример ответа: | ||
− | == | + | <pre> |
+ | [ | ||
+ | { | ||
+ | "id":15, | ||
+ | "controller":"Test Valera", | ||
+ | "action_name":"", | ||
+ | "device":"", | ||
+ | "cod":"", | ||
+ | "action_pack":"", | ||
+ | "date_create":"2019-06-20 15:57:26", | ||
+ | "status":0 | ||
+ | }, | ||
+ | { | ||
+ | "id":14, | ||
+ | "controller":"Test Valera", | ||
+ | "action_name":"", | ||
+ | "device":"", | ||
+ | "cod":"", | ||
+ | "action_pack":"", | ||
+ | "date_create":"2019-06-20 15:57:18", | ||
+ | "status":0 | ||
+ | } | ||
+ | ] | ||
+ | </pre> | ||
+ | |||
+ | = Коды = <!--T:383--> | ||
+ | |||
+ | == Получение информации о коде (info) == <!--T:384--> | ||
+ | |||
+ | <!--T:385--> | ||
+ | Запрос: | ||
+ | |||
+ | <!--T:386--> | ||
+ | Request URL: [site]/api/property/info/ | ||
− | + | <!--T:387--> | |
− | + | Параметры запроса: | |
+ | #(int) controller_id, | ||
+ | #(int) device_id, | ||
+ | #(int) code_id, | ||
+ | #(string) token | ||
− | + | <!--T:391--> | |
− | + | Пример запроса: | |
− | |||
<pre> | <pre> | ||
{ | { | ||
− | + | "controller_id": 6, | |
− | + | "device_id": 109, | |
+ | "code_id": 192, | ||
+ | "token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae" | ||
} | } | ||
− | |||
</pre> | </pre> | ||
+ | <!--T:393--> | ||
+ | Ответ: | ||
+ | <!--T:394--> | ||
+ | Пример ответа (data): | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
<pre> | <pre> | ||
{ | { | ||
− | + | "id":"1465", | |
− | + | "external_cod_id":"59", | |
− | + | "device_id":"1866", | |
− | + | "name":"alarm", | |
− | + | "alias":"xxx", | |
− | + | "code":"15779537", | |
− | + | "msg_cod":"003001", | |
− | + | "send_armed":"INFO", | |
− | + | "send_disarmed":"INFO", | |
− | + | "protocol":"1", | |
− | + | "pulse_len":null, | |
− | + | "group_1":"0", | |
− | + | "group_2":"0", | |
− | + | "group_3":"0", | |
− | + | "group_4":"0", | |
− | + | "group_5":"0", | |
− | + | "group_6":"0", | |
− | + | "group_7":"0", | |
− | + | "group_8":"0", | |
− | + | "active":"1", | |
− | + | "send_sms":"0", | |
− | + | "voice_call":"0" | |
− | + | } | |
− | + | </pre> | |
− | + | ||
− | + | == Изменение имени кода (update-code-name) == <!--T:395--> | |
− | + | ||
− | + | Запрос: | |
− | + | <!--T:396--> | |
− | + | Request URL: [site]/api/device/update-code-name | |
− | + | ||
− | + | <!--T:397--> | |
− | + | Параметры запроса: | |
− | + | ||
− | + | <!--T:398--> | |
− | + | #token (required): string(64) | |
− | + | #code_id (required): int | |
− | + | #name (optional): string(255) | |
− | + | ||
− | + | <!--T:401--> | |
− | + | Ответ: | |
− | + | ||
− | + | Пример ответа: | |
− | + | ||
− | + | <pre> | |
− | + | { | |
− | + | data: { | |
− | + | 'message': "OK" | |
+ | }, | ||
+ | error: null | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | == Редактирование параметров кода (update) == | ||
+ | |||
+ | <!--T:401--> | ||
+ | Запрос: | ||
+ | |||
+ | <!--T:401--> | ||
+ | Request URL: [site]/api/property/update/ | ||
+ | |||
+ | <!--T:401--> | ||
+ | Параметры запроса: | ||
+ | |||
+ | #(string) token | ||
+ | #(int) device_id | ||
+ | #(int) code_id | ||
+ | #(string) name // опционально | ||
+ | #(int) active // опционально | ||
+ | #(int) send_sms // опционально | ||
+ | #(int) voice_call // опционально | ||
− | + | <!--T:401--> | |
− | + | Пример запроса: | |
− | + | <pre> | |
− | + | { | |
− | + | "token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae", | |
− | + | "device_id" : 111, | |
− | + | "code_id" : 111, | |
− | + | "send_sms": 1 | |
− | + | } | |
− | + | </pre> | |
− | + | ||
− | + | <!--T:402--> | |
− | + | Ответ: | |
− | + | ||
− | + | <!--T:402--> | |
− | + | Пример ответа (data): | |
− | + | ||
− | + | <pre> | |
− | + | { | |
− | + | "result": "Ok" | |
− | + | } | |
− | + | </pre> | |
− | + | ||
− | + | == Получение кодов по типу сигнала (get-codes-by-subtype) == <!--T:402--> | |
− | + | ||
− | + | Запрос: | |
− | + | ||
− | + | <!--T:403--> | |
− | + | Request URL: [site]/api/device/get-codes-by-subtype | |
− | + | ||
− | + | <!--T:404--> | |
− | + | Параметры запроса: | |
− | + | ||
− | + | <!--T:405--> | |
− | + | #token (required): string(64) | |
− | + | #device_subtype_id (optional): int, default 0. | |
− | + | ||
− | + | Ответ: | |
− | + | ||
− | + | Пример ответа: | |
− | + | ||
− | + | <pre> | |
− | + | { | |
− | + | "code" | |
− | + | "id":131, | |
− | + | "controller_id":109, | |
− | + | "device_type_id":0, | |
− | + | "device_subtype_id":1, | |
− | + | "code":"655370", | |
− | + | "protocol":1, | |
− | + | "bit_len":24, | |
− | + | "pulse_len":283, | |
− | } | + | "freq":2,"address":null, |
− | + | "num":null, | |
+ | "date_create":"2019-03-13 17:35:05", | ||
+ | "device_id":null | ||
+ | }, | ||
+ | "devices":[ | ||
+ | { | ||
+ | "id":"1684", | ||
+ | "external_id":"64", | ||
+ | "controller_id":"109", | ||
+ | "name":"WS 1", | ||
+ | "alias":null, | ||
+ | "type_id":"12", | ||
+ | "password":null, | ||
+ | "codes":[178,179,180], | ||
+ | "state":"1", | ||
+ | "on_dashboard":"0", | ||
+ | "active":"1", | ||
+ | "new":"1", | ||
+ | "family":"DEVICE_FAMILY_RADIO", | ||
+ | "camera_id":null, | ||
+ | "camera_host":null, | ||
+ | "send_sms":"0", | ||
+ | "voice_call":"0" | ||
+ | }, | ||
+ | { | ||
+ | "id":"1738", | ||
+ | "external_id":"115", | ||
+ | "controller_id":"109", | ||
+ | "name":"Pult 123", | ||
+ | "alias":null, | ||
+ | "type_id":"3", | ||
+ | "password":null, | ||
+ | "codes":[280,281,282,283], | ||
+ | "state":"1", | ||
+ | "on_dashboard":"0", | ||
+ | "active":"1", | ||
+ | "new":"1", | ||
+ | "family":"DEVICE_FAMILY_RADIO", | ||
+ | "camera_id":null, | ||
+ | "camera_host":null, | ||
+ | "send_sms":"0", | ||
+ | "voice_call":"0" | ||
+ | } | ||
+ | ] | ||
} | } | ||
</pre> | </pre> | ||
+ | == Получение списка кодов (get-codes) == <!--T:407--> | ||
+ | |||
+ | Запрос: | ||
− | + | <!--T:408--> | |
+ | Request URL: [site]/api/device/get-codes | ||
− | + | <!--T:409--> | |
− | + | Параметры: | |
− | |||
− | |||
− | |||
− | |||
− | + | #token (required): string 64 | |
− | + | #controller_id (required): int | |
− | + | ||
− | + | Ответ: | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
+ | <!--T:411--> | ||
+ | Пример ответа: | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
<pre> | <pre> | ||
{ | { | ||
− | data: { | + | data: [ |
− | + | { | |
− | + | devices: [ | |
− | + | { | |
− | } | + | id: 13 |
− | + | external_id: 7, | |
− | + | controller_id: 5, | |
− | + | name: "Simple device", | |
− | + | type_id: 2, | |
− | + | password: null, | |
− | + | codes: "a:4:{i:0;i:46;i:1;i:47;i:2;i:48;i:3;i:45;}", | |
− | + | state: 1, | |
− | + | on_dashboard: 0, | |
− | + | active: 1, | |
− | + | new: 1, | |
− | + | family: DEVICE_FAMILY_RADIO, | |
− | + | camera_id: null, | |
− | + | camera_host: null | |
− | + | }, | |
− | + | { | |
− | } | + | id: 14 |
− | + | external_id: 8, | |
− | + | controller_id: 5, | |
− | + | name: "Simple device", | |
− | + | type_id: 2, | |
− | + | password: null, | |
− | + | codes: "a:4:{i:0;i:46;i:1;i:47;i:2;i:48;i:3;i:45;}", | |
− | + | state: 1, | |
− | + | on_dashboard: 0, | |
− | + | active: 1, | |
− | + | new: 1, | |
− | + | family: DEVICE_FAMILY_RADIO, | |
− | controller_id | + | camera_id: null, |
− | + | camera_host: null | |
− | + | }, | |
− | + | ], | |
− | + | code: { | |
− | + | id: 12, | |
− | + | controller_id: 5, | |
− | + | device_type_id: 2, | |
− | + | code: 498654, | |
− | + | protocol: 1, | |
− | + | bit_len: 32, | |
− | + | pulse_len: 86, | |
− | + | freq: 77, | |
− | + | address: 94, | |
+ | num: 1, | ||
+ | date_create: '2018-04-13 18:29:11" | ||
− | + | <!--T:412--> | |
− | |||
− | |||
− | |||
− | |||
− | |||
} | } | ||
+ | }, | ||
− | + | <!--T:413--> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
{ | { | ||
− | " | + | devices: [ |
− | " | + | { |
− | + | id: 13 | |
− | } | + | external_id: 7, |
− | + | controller_id: 5, | |
− | + | name: "Simple device", | |
− | " | + | type_id: 2, |
− | " | + | password: null, |
− | } | + | codes: "a:4:{i:0;i:46;i:1;i:47;i:2;i:48;i:3;i:45;}", |
− | + | state: 1, | |
− | + | on_dashboard: 0, | |
− | + | active: 1, | |
− | + | new: 1, | |
− | + | family: DEVICE_FAMILY_RADIO, | |
− | + | camera_id: null, | |
− | " | + | camera_host: null |
+ | }, | ||
+ | { | ||
+ | id: 14 | ||
+ | external_id: 8, | ||
+ | controller_id: 5, | ||
+ | name: "Simple device", | ||
+ | type_id: 2, | ||
+ | password: null, | ||
+ | codes: "a:4:{i:0;i:46;i:1;i:47;i:2;i:48;i:3;i:45;}", | ||
+ | state: 1, | ||
+ | on_dashboard: 0, | ||
+ | active: 1, | ||
+ | new: 1, | ||
+ | family: DEVICE_FAMILY_RADIO, | ||
+ | camera_id: null, | ||
+ | camera_host: null | ||
+ | }, | ||
+ | ], | ||
+ | code: { | ||
+ | id: 12, | ||
+ | controller_id: 5, | ||
+ | device_type_id: 2, | ||
+ | code: 498654, | ||
+ | protocol: 1, | ||
+ | bit_len: 32, | ||
+ | pulse_len: 86, | ||
+ | freq: 77, | ||
+ | address: 94, | ||
+ | num: 1, | ||
+ | date_create: '2018-04-13 18:29:11" | ||
+ | |||
+ | <!--T:414--> | ||
} | } | ||
− | Поле “status” может принимать следующие значения: | + | }, |
− | • 0 – | + | }, |
− | • 1 – онлайн | + | error: null, |
− | • 2 – онлайн, после включения питания | + | } |
− | При получении сообщения со статусом 2, портал должен отправить | + | </pre> |
− | + | ||
− | + | == Добавление кода к устройству (set-code-to-device) == <!--T:415--> | |
− | + | ||
− | == | + | Запрос: |
− | + | ||
− | { | + | <!--T:416--> |
− | " | + | Request URL: [site]/api/device/set-code-to-device |
− | " | + | |
− | " | + | <!--T:417--> |
+ | Параметры запроса: | ||
+ | |||
+ | <!--T:418--> | ||
+ | #token (required): string 64 | ||
+ | #code_id (required): int | ||
+ | #device_id (required): int | ||
+ | #name (optional): string 256 | ||
+ | |||
+ | <!--T:422--> | ||
+ | Ответ: | ||
+ | |||
+ | Пример ответа: | ||
+ | |||
+ | <pre> | ||
+ | { | ||
+ | data: { | ||
+ | id: 5, | ||
+ | external_cod_id: 15, | ||
+ | device_id: 14, | ||
+ | name: "Name" | ||
+ | code: 8463517, | ||
+ | protocol: 0, | ||
+ | pulse_len: 86, | ||
+ | active: 1, | ||
+ | }, | ||
+ | error: null | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | == Удаление кода (remove-code) == <!--T:423--> | ||
+ | |||
+ | Запрос: | ||
+ | |||
+ | <!--T:424--> | ||
+ | Request URL: [site]/api/device/remove-code | ||
+ | |||
+ | Параметры запроса: | ||
+ | |||
+ | <!--T:425--> | ||
+ | #token (required): string 64 | ||
+ | #code_id (required): int | ||
+ | |||
+ | <!--T:427--> | ||
+ | Ответ: | ||
+ | |||
+ | Пример ответа: | ||
+ | |||
+ | <pre> | ||
+ | { | ||
+ | data: { | ||
+ | message: "OK" | ||
+ | }, | ||
+ | error: null | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | = События = <!--T:428--> | ||
+ | |||
+ | == Нажатие кнопки на устройстве (event) == <!--T:429--> | ||
+ | |||
+ | <!--T:430--> | ||
+ | Запрос: | ||
+ | |||
+ | <!--T:431--> | ||
+ | Request URL: [site]/api/device/event/ | ||
+ | |||
+ | Параметры запроса: | ||
+ | |||
+ | <!--T:432--> | ||
+ | #(string) controller_name, | ||
+ | #(int) device_external_id, | ||
+ | #(int) cod_external_id, | ||
+ | #(string) token, | ||
+ | #(int) device_type | ||
+ | |||
+ | <!--T:437--> | ||
+ | Пример запроса: | ||
+ | |||
+ | <!--T:438--> | ||
+ | <pre> | ||
+ | { | ||
+ | "controller_name": " AS_7F26335CCF4B" , | ||
+ | "device_external_id": 19, | ||
+ | "cod_external_id": 1, | ||
+ | "device_type": 1, | ||
+ | "token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae" | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | <!--T:439--> | ||
+ | так как MQTT односторонний - ответа быть не может. Может быть возвращён ответ, что запрос отправлен: | ||
+ | response: | ||
+ | |||
+ | Ответ: | ||
+ | |||
+ | <!--T:441--> | ||
+ | Пример ответа (data): | ||
+ | |||
+ | <!--T:442--> | ||
+ | <pre> | ||
+ | { | ||
+ | "result": "Ok" | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | = Места = <!--T:443--> | ||
+ | |||
+ | == Получение списка мест (places-list) == <!--T:444--> | ||
+ | |||
+ | Запрос: | ||
+ | |||
+ | <!--T:445--> | ||
+ | Request URL: [site]/api/places/places-list | ||
+ | |||
+ | <!--T:446--> | ||
+ | Параметры запроса: token (required): string, 64 | ||
+ | |||
+ | <!--T:448--> | ||
+ | Ответ: | ||
+ | |||
+ | Пример ответа: | ||
+ | |||
+ | <pre> | ||
+ | { | ||
+ | "error":null, | ||
+ | "data":{ | ||
+ | "rooms":[ | ||
+ | { | ||
+ | "id":1, | ||
+ | "root_id":1, | ||
+ | "user_id":424, | ||
+ | "lvl":0, | ||
+ | "name":"Дом", | ||
+ | "icon":0, | ||
+ | "icon_type":1, | ||
+ | "color":"#fff2cc", | ||
+ | "readonly":0, | ||
+ | "visible":1 | ||
+ | }, | ||
+ | { | ||
+ | "id":2, | ||
+ | "root_id":1, | ||
+ | "user_id":424, | ||
+ | "lvl":1, | ||
+ | "name":"Спальня", | ||
+ | "icon":0, | ||
+ | "icon_type":1, | ||
+ | "color":"#b6d7a8", | ||
+ | "readonly":0, | ||
+ | "visible":1 | ||
+ | } | ||
+ | ] | ||
+ | } | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | |||
+ | == Создание места (create) == <!--T:449--> | ||
+ | |||
+ | Запрос: | ||
+ | |||
+ | <!--T:450--> | ||
+ | Request URL: [site]/api/places/create | ||
+ | |||
+ | <!--T:451--> | ||
+ | Параметры запроса: | ||
+ | |||
+ | <!--T:452--> | ||
+ | #token (required): string, 64 | ||
+ | #root (optional): int, default 1 | ||
+ | #lft (optional): int, from 1 to 5 //В сумме с rgt должно быть 5 | ||
+ | #rgt (optional): int, from 1 to 5 //В сумме с lft должно быть 5 | ||
+ | #lvl (optional): int, default 0 | ||
+ | #name (optional): string, 64, default 'Simple name' | ||
+ | #icon (optional): string, default '' //Допускаемые параметры -- ключи объекта выше | ||
+ | #color (optional): string, default: '#ccc' //Любой цвет в формате HEX, решетка в начале обязательна | ||
+ | #active (optional): int, default 1 | ||
+ | #selected (optional): int, default 0 | ||
+ | #disabled (optional): int, default 0 | ||
+ | #readonly (optional): int, default 0 | ||
+ | #visible (optional): int, default 1 | ||
+ | #collapsed (optional): int, default 0 | ||
+ | #movable_u (optional): int, default 1 | ||
+ | #movable_d (optional): int, default 1 | ||
+ | #movable_l (optional): int, default 1 | ||
+ | #movable_r (optional): int, default 1 | ||
+ | #removable (optional): int, default 1 | ||
+ | #removable_all (optional): int, default 0 | ||
+ | #inverse_text (optional): string, default 'black' | ||
+ | |||
+ | <!--T:473--> | ||
+ | Ответ: | ||
+ | |||
+ | Пример ответа: | ||
+ | |||
+ | <pre> | ||
+ | { | ||
+ | error:null, | ||
+ | data: {'message': 'OK'} | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | |||
+ | == Редактирование места (edit) == <!--T:474--> | ||
+ | |||
+ | Запрос: | ||
+ | |||
+ | <!--T:475--> | ||
+ | Request URL: [site]/api/places/edit | ||
+ | |||
+ | <!--T:476--> | ||
+ | Параметры запроса: | ||
+ | |||
+ | <!--T:477--> | ||
+ | #token (required): string, 64 | ||
+ | #place_id (required): int | ||
+ | #root (optional): int, default 1 | ||
+ | #lft (optional): int, from 1 to 5 //В сумме с rgt должно быть 5 | ||
+ | #rgt (optional): int, from 1 to 5 //В сумме с lft должно быть 5 | ||
+ | #lvl (optional): int, default 0 | ||
+ | #name (optional): string, 64, default 'Simple name' | ||
+ | #icon (optional): string, default '' //Допускаемые параметры -- ключи объекта выше | ||
+ | #color (optional): string, default: '#ccc' //Любой цвет в формате HEX, решетка в начале обязательна | ||
+ | #active (optional): int, default 1 | ||
+ | #selected (optional): int, default 0 | ||
+ | #disabled (optional): int, default 0 | ||
+ | #readonly (optional): int, default 0 | ||
+ | #visible (optional): int, default 1 | ||
+ | #collapsed (optional): int, default 0 | ||
+ | #movable_u (optional): int, default 1 | ||
+ | #movable_d (optional): int, default 1 | ||
+ | #movable_l (optional): int, default 1 | ||
+ | #movable_r (optional): int, default 1 | ||
+ | #removable (optional): int, default 1 | ||
+ | #removable_all (optional): int, default 0 | ||
+ | #inverse_text (optional): string, default 'black' | ||
+ | |||
+ | <!--T:499--> | ||
+ | Ответ: | ||
+ | |||
+ | Пример ответа: | ||
+ | |||
+ | <pre> | ||
+ | { | ||
+ | error:null, | ||
+ | data: {'message': 'OK'} | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | == Удаление места (delete) == <!--T:501--> | ||
+ | |||
+ | Запрос: | ||
+ | <!--T:502--> | ||
+ | Request URL: [site]/api/places/delete | ||
+ | |||
+ | <!--T:503--> | ||
+ | Параметры запроса: | ||
+ | |||
+ | <!--T:504--> | ||
+ | #token (required): string, 64 | ||
+ | #place_id (required): int | ||
+ | |||
+ | <!--T:506--> | ||
+ | Ответ: | ||
+ | |||
+ | Пример ответа: | ||
+ | |||
+ | <pre> | ||
+ | { | ||
+ | error:null, | ||
+ | data: {'message': 'OK'} | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | |||
+ | == Добавление устройства к месту, смена места у устройства (device-in-place) == <!--T:502--> | ||
+ | |||
+ | Запрос: | ||
+ | |||
+ | Request URL: [site]/api/places/device-in-place/ | ||
+ | |||
+ | Параметры запроса: | ||
+ | |||
+ | #token (required): string 64 | ||
+ | #device_id (required): int | ||
+ | #place_id (required): int | ||
+ | #visible (not required): int | ||
+ | |||
+ | Ответ: | ||
+ | |||
+ | Пример ответа: | ||
+ | |||
+ | <pre> | ||
+ | { | ||
+ | data: {result: "OK"}, | ||
+ | error: null | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | |||
+ | == Отвязать устройство от месту (device-out-place) == <!--T:509--> | ||
+ | |||
+ | Запрос: | ||
+ | |||
+ | Request URL: [site]/api/places/device-out-place/ | ||
+ | |||
+ | Параметры запроса: | ||
+ | |||
+ | #token (required): string 64 | ||
+ | #device_id (required): int | ||
+ | #place_id (required): int | ||
+ | |||
+ | Ответ: | ||
+ | |||
+ | Пример ответа: | ||
+ | |||
+ | <pre> | ||
+ | { | ||
+ | data: { | ||
+ | result: "OK" | ||
+ | }, | ||
+ | error: null | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | |||
+ | == Получить список связей устройство-место (device-place-list) == <!--T:519--> | ||
+ | |||
+ | Запрос: | ||
+ | |||
+ | Request URL: [site]/api/places/device-place-list/ | ||
+ | |||
+ | Параметры запроса: | ||
+ | |||
+ | #token (required): string 64 | ||
+ | |||
+ | Ответ: | ||
+ | |||
+ | Пример ответа: | ||
+ | |||
+ | <pre> | ||
+ | { | ||
+ | "error":null, | ||
+ | "data":{ | ||
+ | "0":{ | ||
+ | "device_id":1336, | ||
+ | "device_name":"Camera test", | ||
+ | "place_id":8, | ||
+ | "place_name":"office" | ||
+ | }, | ||
+ | ... | ||
+ | "10":{ | ||
+ | "device_id":1865, | ||
+ | "device_name":"Meteo 9", | ||
+ | "place_id":10, | ||
+ | "place_name":"Box 1" | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | == Активация подписки Ebus == <!--T:507--> | ||
+ | |||
+ | |||
+ | <!--T:508--> | ||
+ | Получение состояния подписки на Контроллере - “in/subscription/get”: | ||
+ | |||
+ | <!--T:509--> | ||
+ | <pre> | ||
+ | { | ||
+ | "id": 1, // ID подписки (см. ниже) | ||
+ | "seq_id": 0 | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | <!--T:510--> | ||
+ | Ответ: | ||
+ | |||
+ | <!--T:511--> | ||
+ | <pre> | ||
+ | { | ||
+ | "seq_id": 0, | ||
+ | "remain_time": 100, // оставшееся время в секундах, 4294967295 – неограниченно | ||
+ | "success": 0/1 | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | |||
+ | Установка подписки на Контроллере - “in/subscription/set”: | ||
+ | |||
+ | <!--T:513--> | ||
+ | <pre> | ||
+ | { | ||
+ | "seq_id": 0, | ||
+ | "id": 1, // ID подписки (см. ниже) | ||
+ | "remain_time": 100 // оставшееся время в секундах, 4294967295 - неограниченно | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | <!--T:514--> | ||
+ | Ответ: | ||
+ | |||
+ | <pre> | ||
+ | { | ||
+ | "seq_id": 0, | ||
+ | "success": 0/1 | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | <!--T:515--> | ||
+ | Идентификаторы подписок: | ||
+ | SUBSCRIPTION_EBUS = 1 | ||
+ | |||
+ | <!--T:516--> | ||
+ | Статус Контроллера | ||
+ | |||
+ | <!--T:517--> | ||
+ | Контроллер отправляет информацию о своем онлайн/оффлайн статусе в топик “out/status”. | ||
+ | |||
+ | <!--T:518--> | ||
+ | Формат сообщения: | ||
+ | <pre> | ||
+ | { | ||
+ | "status": 1 // см. ниже | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | <!--T:519--> | ||
+ | Поле “status” может принимать следующие значения: | ||
+ | |||
+ | <!--T:520--> | ||
+ | • "0" – оффлайн | ||
+ | |||
+ | <!--T:521--> | ||
+ | • "1" – онлайн | ||
+ | |||
+ | <!--T:522--> | ||
+ | • "2" – онлайн, после включения питания | ||
+ | |||
+ | <!--T:523--> | ||
+ | При получении сообщения со статусом "2", портал должен отправить Контроллеру информацию о пользовательских подписках, как это описано в разделе «Подписки». | ||
+ | |||
+ | |||
+ | = Виджеты = <!--T:524--> | ||
+ | |||
+ | == Список виджетов пользователя (widget-list) == <!--T:525--> | ||
+ | |||
+ | <!--T:525--> | ||
+ | Запрос: | ||
+ | |||
+ | <!--T:526--> | ||
+ | Request URL: [site]/api/device/widget-list/ | ||
+ | |||
+ | <!--T:527--> | ||
+ | Параметры запроса: | ||
+ | (string) token | ||
+ | |||
+ | <!--T:528--> | ||
+ | Пример запроса: | ||
+ | |||
+ | <pre> | ||
+ | { | ||
+ | "token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae" | ||
+ | } | ||
+ | |||
+ | </pre> | ||
+ | |||
+ | <!--T:529--> | ||
+ | Ответ: | ||
+ | |||
+ | <!--T:530--> | ||
+ | Пример ответа (data): | ||
+ | |||
+ | <pre> | ||
+ | { | ||
+ | "widgets":[ | ||
+ | { | ||
+ | "controller_id":111, | ||
+ | "device_ids":[18,20,21,22], | ||
+ | "device_id":"1824", | ||
+ | "external_id":18, | ||
+ | "device_type":3, | ||
+ | "name":"Remote control", | ||
+ | "widget_type":3, | ||
+ | "state":1 | ||
+ | }, | ||
+ | { | ||
+ | "controller_id":111, | ||
+ | "device_ids":[18,20,21,22], | ||
+ | "device_id":"1850", | ||
+ | "external_id":20, | ||
+ | "device_type":4, | ||
+ | "name":"Sockets", | ||
+ | "widget_type":4, | ||
+ | "state":1 | ||
+ | } | ||
+ | ], | ||
+ | "ctrl_widgets":[ | ||
+ | { | ||
+ | "controller_id":111, | ||
+ | "name":"66D4E809EF0A", | ||
+ | "hostname":"Test", | ||
+ | "armed":0 | ||
+ | } | ||
+ | ] | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | == Добавить виджет (widget-add-home) == <!--T:525--> | ||
+ | |||
+ | <!--T:525--> | ||
+ | Запрос: | ||
+ | |||
+ | <!--T:525--> | ||
+ | Request URL: [site]/api/device/widget-add-home/ | ||
+ | |||
+ | <!--T:525--> | ||
+ | Параметры запроса: | ||
+ | |||
+ | <!--T:525--> | ||
+ | #(string) token, | ||
+ | #(int) device_id, | ||
+ | #(int) controller_id | ||
+ | |||
+ | <!--T:525--> | ||
+ | Пример запроса: | ||
+ | |||
+ | <pre> | ||
+ | { | ||
+ | "token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae", | ||
+ | "controller_id": 1862 | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | <!--T:525--> | ||
+ | Ответ: | ||
+ | |||
+ | <!--T:525--> | ||
+ | Пример ответа (полный): | ||
+ | |||
+ | <pre> | ||
+ | { | ||
+ | "error":null, | ||
+ | "data":{ | ||
+ | "result":"Ok" | ||
+ | } | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | == Удалить виджет пользователя (widget-remove-home) == <!--T:525--> | ||
+ | |||
+ | <!--T:525--> | ||
+ | Запрос: | ||
+ | |||
+ | Request URL: [site]/api/device/widget-remove-home/ | ||
+ | |||
+ | <!--T:525--> | ||
+ | Параметры запроса: | ||
+ | |||
+ | #(string) token, | ||
+ | #(int) device_id, | ||
+ | #(int) controller_id | ||
+ | |||
+ | <!--T:525--> | ||
+ | Пример запроса: | ||
+ | |||
+ | <pre> | ||
+ | { | ||
+ | "token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae", | ||
+ | "device_id": 1862 | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | <!--T:525--> | ||
+ | Ответ: | ||
+ | |||
+ | <!--T:525--> | ||
+ | Пример ответа (полный): | ||
+ | |||
+ | <pre> | ||
+ | { | ||
+ | "error":null, | ||
+ | "data":{ | ||
+ | "result":"Ok" | ||
+ | } | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | |||
+ | = Неклассифицируемые методы = <!--T:524--> | ||
+ | |||
+ | == Список доступных стран (countries) == | ||
+ | |||
+ | <!--T:525--> | ||
+ | Запрос: | ||
+ | |||
+ | <!--T:526--> | ||
+ | Request URL: [site]/api/profile/countries/ | ||
+ | |||
+ | <!--T:527--> | ||
+ | Параметры запроса: | ||
+ | #(string) token | ||
+ | #(string) lang // en , ua, ru | ||
+ | |||
+ | <!--T:528--> | ||
+ | Пример запроса: | ||
+ | |||
+ | <pre> | ||
+ | { | ||
+ | "token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae", | ||
+ | "lang" : "en" | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | <!--T:529--> | ||
+ | Ответ: | ||
+ | |||
+ | <!--T:530--> | ||
+ | Пример ответа (data): | ||
+ | |||
+ | <pre> | ||
+ | [ | ||
+ | { | ||
+ | "id":"1", | ||
+ | "code":"AF", | ||
+ | "name":"Afghanistan" | ||
+ | }, | ||
+ | { | ||
+ | "id":"2", | ||
+ | "code":"AL", | ||
+ | "name":"Albania" | ||
+ | } | ||
+ | ] | ||
+ | </pre> | ||
+ | |||
+ | |||
+ | = Ошибки = <!--T:524--> | ||
+ | |||
+ | <!--T:525--> | ||
+ | параметры ошибки: | ||
+ | |||
+ | пример: | ||
+ | |||
+ | <!--T:526--> | ||
+ | <pre> | ||
+ | { | ||
+ | "errors":{ | ||
+ | "password": [ | ||
+ | "Incorrect username." | ||
+ | ] | ||
+ | } | ||
} | } | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
</pre> | </pre> | ||
− | |||
− | + | </translate> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | </ |
Текущая версия на 16:12, 30 июля 2019
- API v01 *
API ( json )
Содержание
- 1 Общие сведения
- 2 Учётная запись
- 3 Контроллеры
- 3.1 Список Контроллеров Пользователя (list)
- 3.2 Информация о Контроллере (info)
- 3.3 Постановка/снятие Контроллера на охрану / с охраны (armed)
- 3.4 Добавление Контроллера (add)
- 3.5 Обновление списка устройств и действий на Контроллере (update)
- 3.6 Удаление Контроллера (delete)
- 3.7 Обновление статуса контроллера (update-status)
- 3.8 Получение актуального статуса Контроллера (get-status)
- 3.9 Получение конфигурации Контроллера (config)
- 3.10 Изменение конфигурации контроллера(config-set)
- 3.11 Передача локального IP Контроллера (get-ip)
- 3.12 Установка подписки на Контроллере
- 3.13 Просмотр статуса подписки (get-subscribe-status)
- 3.14 Активация/продление/покупка подписки (set-subscribe)
- 3.15 Метод получения списка телефонов (get-phones)
- 3.16 Редактирование телефона (edit-phone)
- 3.17 Удаление телефона (delete-phone)
- 3.18 Добавление телефона (add-phone)
- 3.19 Информация о версии прошивки контроллера (fw-version-current)
- 3.20 Информация о последней версии прошивки контроллера (get-new-fw-version)
- 4 Устройства
- 4.1 Получение списка устройств пользователя (list)
- 4.2 Информация об устройстве (info)
- 4.3 Обновление информации об устройстве (update)
- 4.4 Удаление устройства (delete)
- 4.5 Получение метеоданных (last)
- 4.6 Получение метеоданных за период (period)
- 4.7 Получение данных электропитания (last)
- 4.8 Получение данных электропитания за период (period)
- 4.9 Получение данных о сторонних устройствах (other-last)
- 4.10 Получение данных о сторонних устройствах за период (other-period)
- 5 Wizard добавления устройств
- 5.1 Датчик открытия двери (create-door-open-sensor)
- 5.2 Датчик затопления (create-flood-sensor)
- 5.3 Пульт,4 кнопки (create-console)
- 5.4 Сирена (create-siren)
- 5.5 Метеостанция: получение списка обнаруженных метеостанций за последние 10 минут (get-meteos)
- 5.6 Метеостанция: добавление (create-meteo)
- 5.7 Водопроводный кран
- 5.8 Добавление розетки
- 6 Сценарии
- 7 Логи пользователя (logs)
- 8 Коды
- 8.1 Получение информации о коде (info)
- 8.2 Изменение имени кода (update-code-name)
- 8.3 Редактирование параметров кода (update)
- 8.4 Получение кодов по типу сигнала (get-codes-by-subtype)
- 8.5 Получение списка кодов (get-codes)
- 8.6 Добавление кода к устройству (set-code-to-device)
- 8.7 Удаление кода (remove-code)
- 9 События
- 10 Места
- 10.1 Получение списка мест (places-list)
- 10.2 Создание места (create)
- 10.3 Редактирование места (edit)
- 10.4 Удаление места (delete)
- 10.5 Добавление устройства к месту, смена места у устройства (device-in-place)
- 10.6 Отвязать устройство от месту (device-out-place)
- 10.7 Получить список связей устройство-место (device-place-list)
- 10.8 Активация подписки Ebus
- 11 Виджеты
- 12 Неклассифицируемые методы
- 13 Ошибки
Общие сведения
Обмен данными между Пользователем и серверной частью системы Quadrobit Smart Home осуществляется путём отправки пакетов (запросов и ответов). Пакет отправляется по HTTP методом POST на указанный адрес Request URL.
Запрос может содержать JSON-структуру, включающую один или несколько параметров. После успешной авторизации Пользователя запрос всегда должен содержать параметр token.
В ответ на полученный запрос Сервер возвращает Пользователю следующую JSON-структуру:
{ error: null, data: { ... } }
Параметр error содержит информацию о результате выполнения запроса. error: null - запрос выполнен успешно.
Структура и содержание параметра data определяется типом запроса.
Учётная запись
Авторизация (login)
Запрос:
Request URL: [site]/api/login
Параметры запроса:
- (string) email,
- (string) password
Пример запроса:
{ "email":"aaaa@aaaa.aa", "password":"12345678" }
Ответ:
Пример ответа (data):
{ "user_id":1, "username":"Ivan Pupkin", "email":"aaaa@aaa.aa", "phone": "423546546546", "sex":2, // пол 0 - не указан , 1 - женский , 2 - мужской "country":219, // код страны в базе "active_configuration":"1", "refcode":"JHE-1GD-T8B-9HB", "status":10, // 0 - неактивен , 10 - активен "token":"1Cyuvr9DKMbB6aFQ-mLPLeGZXFLyuK8d", "expired":1502586831 // метка времени до которой активен token }
Регистрация (registration)
Запрос:
Request URL: [site]/api/registration
Параметры запроса:
- (string) email,
- (string) password
Пример запроса:
{ "email":"aaaa@aaaa.aa", "password":"12345678" }
Ответ:
Пример ответа (data):
{ "user_id": 43, "username": "user_4383", "email": "aaaa@aaa.aa", "sex": null, "country": null, "active_configuration": null, "refcode": "746-81O-0RJ-RJS", "status": 10 }
Профиль пользователя (profile)
Запрос:
Request URL: [site]/api/profile/
Параметры запроса: (string) token
Пример запроса:
{ "token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae" }
Ответ:
Пример ответа (data):
{ "user_id":1, "username":"Ivan Pupkin", "email":"aaaa@aaa.aa", "phone": "423546546546", "sex":2, // пол 0 - не указан , 1 - женский , 2 - мужской "send_email": 1, "send_sms": 0, "role": 1, "lang": 2, "country":219, // код страны в базе "active_configuration":"1", "refcode":"JHE-1GD-T8B-9HB", "status":10, // 0 - неактивен , 10 - активен "token":"1Cyuvr9DKMbB6aFQ-mLPLeGZXFLyuK8d", }
Контроллеры
Список Контроллеров Пользователя (list)
Запрос:
Request URL: [site]/api/ctrl/list/
Параметры запроса: (string) token
Пример запроса:
{ "token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae" }
Ответ:
Пример ответа (data):
{ "0":{ "id": 651, "name": "AE439648F951", "ip": "192.168.10.135", "fw_id": "1", "hostname": "quadrobase", "armed": 0, "address": "", "lat": null, "lng": null, "timezone": 2, "online": 1, "last_online": "2019-06-17 19:36:48", "type_signal": "wifi", "wifi_param": -67, "gsm_param": 0, "phone": "", "pin": 0, "user_controller_name": "quadrobase", "on_dashboard": 0 }]
Информация о Контроллере (info)
Запрос:
Request URL: [site]/api/ctrl/info/
Параметры запроса:
- (int) controller_id,
- (string) token
Пример запроса:
{ "controller_id": 1 , "token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae" }
Ответ:
Пример ответа (data):
{ "id":"6", "name":"66D4E809EF0A", "hostname":"Test Valera 34", "armed":0, "address":"", "lat":50.4156, "lng":30.5336, "ip":"192.168.1.155", "fw_id":1, "timezone":3, "online":1, "last_online":"2019-07-29 17:08:41", "type_signal":"wifi", "wifi_param":-78, "gsm_param":0, "phone":"", "pin":0, "user_controller_name":"Test Valera 34", "on_dashboard":0 }
Постановка/снятие Контроллера на охрану / с охраны (armed)
Запрос:
Request URL: [site]/api/ctrl/armed/
Параметры запроса:
№(int) controller_id, №(string) token
Пример запроса:
{ "controller_id": 6 , "token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae" }
Так как MQTT односторонний - ответа быть не может. Ответ что запрос ушел:
Ответ:
Пример ответа (data):
{ "result": "Ok" }
Добавление Контроллера (add)
Запрос:
Request URL: [site]/api/ctrl/add
Параметры запроса: (string) token
Пример:
{ "token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae" }
Ответ:
Пример ответа:
{ "PIN":"7gDH" }
После ввода пин-кода необходимо обновить список Контроллеров (/api/ctrl/list/)
Обновление списка устройств и действий на Контроллере (update)
Этап 1 - обновляем список IDS устройств на Контроллере
Запрос:
Request URL: [site]/api/ctrl/update/
Параметры запроса:
- (int) controller_id,
- (string) token
Пример запроса:
{ "controller_id": 6 , "token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae" }
Ответ:
Пример ответа (data):
{ "result": "Ok" // "Ok" = запрос отправлен }
Этап 2 - обновляем информацию о каждом устройстве
Запрос:
Request URL: [site]/api/ctrl/update-devices/
Параметры запроса:
- (int) controller_id,
- (string) token
Пример запроса:
{ "controller_id": 6 , "token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae", }
Ответ:
Пример ответа:
{ "result": "Ok" // Запрос отправлен }
Процесс происходит автоматически. Для получения результата требуется таймаут, после чего делается стандартный запрос на получение данных (контроллер, устройства)
Удаление Контроллера (delete)
Запрос:
Request URL: [site]/api/ctrl/delete
Пример запроса:
{ "token":"8yE-VIQrYuZ2bTeho_lajxjOJPnIe_Yx", "controller_id":"81" }
Ответ:
Пример ответа:
{ "error":null, "data":{"result":"Ok"} }
Обновление статуса контроллера (update-status)
Запрос:
Request URL: [site]/api/ctrl/update-status/
Параметры запроса:
- (string) token,
- (int) controller_id
Пример запроса:
{ "token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae", "controller_id": 122 }
Ответ:
Пример ответа:
{ "error":null, "data":{ "result":"Ok" } }
Получение актуального статуса Контроллера (get-status)
Запрос:
Request URL: [site]/api/ctrl/get-status/
Параметры запроса:
- (string) token,
- (int) controller_id
Пример запроса:
{ "token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae", "controller_id": 122 }
Ответ:
Пример ответа:
{ "error":null, "data":{ "status":1 } }
Поле “status” может принимать следующие значения: • 0 – офлайн
• 1 – онлайн
• 2 – онлайн, после включения питания
Получение конфигурации Контроллера (config)
Запрос:
Request URL: [site]/api/ctrl/config/
Параметры запроса:
- (string) token,
- (int) controller_id
Пример запроса:
{ "token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae", "controller_id" : 111 }
Ответ:
Пример ответа (data):
{ "id":"1", // id конфигурации "controller_id":"111", // id контроллера "language":"ru-RU", "hostname":"alarm-system", "wifi_mode":1, // 1 - STA, 2 - AP "wifi_sta_type":1, // 0 - STATIC, 1 - DHCP "wifi_sta_ssid":"SSID", "wifi_sta_pass":"PASSWORD", "wifi_sta_ip":"192.168.0.101", "wifi_sta_mask":"255.255.255.0", "wifi_sta_gw":"192.168.0.1", "wifi_sta_dns1":"208.67.222.222", "wifi_sta_dns2":"208.67.222.222", "wifi_ap_authmode": 3, // 0 - OPEN, 1 - WEP, 2 - WPA_PSK, 3 - WPA2_PSK, 4 - WPA_WPA2_PSK "wifi_ap_hidden":0, // 0/1 "wifi_ap_channel":1, // 1...14 "wifi_ap_ssid":"SMARTHOME_000000000000", "wifi_ap_pass":"00000000", "wifi_ap_ip":"192.168.4.1", "wifi_ap_mask":"255.255.255.0", "wifi_ap_gw":"192.168.4.1", "httpd_port":80, // 1...65535 "httpd_auth":0, // 0/1 "httpd_user":"admin", "httpd_pass":"admin", "ntp_enable":0, // 0/1 "ntp_host":"time.windows.com", "ntp_tz":3, // -11...13 "upnp_enable":1, // 0/1 "advanced_mode":0, // 0/1 "app_afb_enable":1, // 0/1 "app_leds_off":1, // 0/1 "app_alarm_duration":10, // minutes "app_arming_delay":0, // seconds "app_portal_link":0, // 0/1 "app_rf_freq":2, // 1 - 315Mhz, 2 - 433Mhz "app_rf_power":3, // 0 - 1DBM, 1 - 2DBM, 2 - 5DBM, 3 - 8DBM, 4 - 11DBM, 5 - 14DBM, 6 - 17DBM, 7 - 20DBM "app_button_action":1, // 0 - NONE, 1 - ARMING, 2 - RUN_ACTION, 3 - SEND_CODE "app_button_rec_id":0, // ID "gsm_pin":"1234", "gsm_allowed_phones":"", // список через запятую "gsm_sendto_phones":"", // список через запятую "gsm_callto_phones":"", // один номер "gsm_smsin_enable":"0", // 0/1 "gsm_smsout_enable":"0", // 0/1 "gsm_call_enable":"0", // 0/1 "gprs_enable":"1", // 0/1 "gprs_apn":"", "internet.mts.ru", "gprs_user":"mts", "gprs_pass":"mts", "gsm_enable":"0", // 0/1 "ebus_enable":0, // 0/1 "command":"xxx", "response":"0" }
Изменение конфигурации контроллера(config-set)
Запрос:
Request URL: [site]/api/ctrl/config-set/
Параметры запроса:
- (string) token,
- (int) controller_id
Пример запроса:
{ "token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae", "controller_id" : 111, "command": "yyy" // параметры контроллера смотри метод Получить конфигурацию контроллера(ctrl/config/) }
Ответ:
Пример ответа (data):
{ "result": "Ok" }
Передача локального IP Контроллера (get-ip)
Запрос
Request URL: [site]/api/ctrl/get-ip
Request Params:
- token (required): string(64);
- controller_id (required): int;
Ответ:
Пример ответа:
{ data:'192.168.0.15', error: null }
Установка подписки на Контроллере
Запрос:
Request URL: [site]/in/subscription/set”
Ответ:
Пример ответа (data):
{ "seq_id": 0, "id": 1, // ID подписки (см. ниже) "remain_time": 100 // оставшееся время в секундах, 4294967295 - неограниченно }
Просмотр статуса подписки (get-subscribe-status)
Запрос:
Request URL: [site]/api/ctrl/get-subscribe-status
Параметры:
- token (required): string(64)
- controller_id (required): int
Ответ:
Пример ответа (data):
{ data:{ id: 1, controller_id: 40, user_id: 424, remain_time: 100, request_time: 1355314332, response_time: 1355315332, success: 0 }, error: '' }
Активация/продление/покупка подписки (set-subscribe)
Запрос:
Request URL: [site]/api/ctrl/set-subscribe
Параметры:
- token (required): string(64)
- controller_id (required): int
Ответ:
{ data:{ id: 1, controller_id: 40, user_id: 424, remain_time: 100, request_time: 1355314332, response_time: 1355315332, success: 0 }, error: '' }
Метод получения списка телефонов (get-phones)
Запрос:
Request URL: [site]/api/ctrl/get-phones
Параметры:
- token (required): string, 64
- controller_id (required): int
- type (optional): string,
- range ['recipient', 'authorized', 'all'], (default: 'all')
Ответ:
Пример ответа:
{ 'error': null, data: [ {'id': 5, 'phone': '+380123456789'}, {'id': 6, 'phone': '+380123334455'}, {'id': 7, 'phone': '+380112223344'} ] }
Редактирование телефона (edit-phone)
Запрос:
Request URL: [site]/api/ctrl/edit-phone
Параметры:
- token (required): string, 64
- phone_id (required): int
- is_recipient (optional): int
- is_authorized (optional): int
- phone (optional): string
Ответ:
Пример ответа:
{ "error":null, "data":{ "id":2, "controller_id":81, "phone":"+380503334455", "is_recipient":"1", "is_authorized":0 } }
Удаление телефона (delete-phone)
Запрос:
Request URL: [site]/api/ctrl/delete-phone
Параметры:
- token (required): string, 64
- phone_id (required): int
Ответ:
Пример ответа:
{ "error":null, "data":{"response":"OK"} }
Добавление телефона (add-phone)
Запрос:
Request URL: [site]/api/ctrl/add-phone
Params:
- token (required): string, 64
- controller_id (required): int
- phone (required): string
- is_recipient (optional): int
- is_authorized (optional): int
Ответ:
Пример ответа:
{ "error":null, "data":{ "id":2, "controller_id":81, "phone":"+380503334455", "is_recipient":"1", "is_authorized":0 } }
Информация о версии прошивки контроллера (fw-version-current)
Запрос:
Request URL: [site]/api/ctrl/fw-version-current/
Параметры запроса:
- (int) controller_id,
- (string) token
Пример запроса:
{ "controller_id": 1 , "token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae" }
Ответ:
Пример ответа (data):
{ "version_id":1, "version_name":"0.01", "tag":"OLD", "url":"\/controllers_fw\/NULL.bin", "date":"16.10.2018", "new_version_id":38 // если "new_version_id" != "version_id" значит имеется новая версия. }
Информация о последней версии прошивки контроллера (get-new-fw-version)
Запрос:
Request URL: [site]/api/ctrl/get-new-fw-version/
Параметры запроса:
- (int) controller_id,
- (string) token
Пример запроса: { "controller_id": 1 , "token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae" }
Ответ:
Пример ответа (data):
{ "version_id":38, "version_name":"0.14", "tag":"0.14 \/ Oct 5 2018 16:49:04", "url":"\/controllers_fw\/tls-smarthome-hw-9_0.14.bin", "date":"16.10.2018" }
Устройства
Получение списка устройств пользователя (list)
Запрос:
Request URL: [site]/api/device/list
Параметры запроса:
- (int) controller_id,
- (string) token
Пример запроса:
{ "controller_id": 1 , "token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae" }
Ответ:
Пример ответа (data):
{ "0":{ "id":"122", "external_id":"19", //id на контроллере "controller_id":"6", "name":"Сирена", "type_id":"2", //тип устройства "codes":":{ //коды (кнопки) "0":{ "id":"218", "external_cod_id":"32", "device_id":"122", "name":"ON", "code":"3675192", "protocol":"1", "pulse_len":null, "group_1":"1", "group_2":"0", "group_3":"0", "group_4":"0", "group_5":"0", "group_6":"0", "group_7":"0", "group_8":"0", "active":"1" }, "1":{ ... } }, "state":"1", "on_dashboard":"1", //показывать на главной "active":"1" }, "1":{ "id":"120", "external_id":"22", "controller_id":"6", "name":"Пульт 4кн бел", "type_id":"3", "codes": ... , "state":"1", "on_dashboard":"0", "active":"1" } }
Информация об устройстве (info)
Запрос:
Request URL: [site]/api/device/info/
Параметры запроса:
- (int) controller_id,
- (int) device_id,
- (string) token
Пример запроса:
{ "controller_id": 1 , "device_id": 122, "token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae" }
Ответ:
Пример ответа (data):
{ "id":"122", "external_id":"19", "controller_id":"6", "name":"Сирена", "type_id":"2", "codes" "0" "id":"218", "external_cod_id":"32", "device_id":"122", "name":"ON", "code":"3675192", "protocol":"1", "pulse_len":null, "group_1":"1", "group_2":"0", "group_3":"0", "group_4":"0", "group_5":"0", "group_6":"0", "group_7":"0", "group_8":"0", "active":"1", }, "1" "id":"219", "external_cod_id":"33", "device_id":"122", "name":"OFF", "code":"3675186 ... } }, "state":"1", "on_dashboard":"1", "active":"1", "alias":"xxx", "send_sms ":0, "voice_call":0, place" "name":null, "color":null } }
Обновление информации об устройстве (update)
Запрос:
Request URL: [site]/api/device/update/
Параметры запроса:
- (int) device_id,
- (string) name,
- (int) active,
- (string) token,
Пример запроса (data):
{ "device_id": 107, // local device id "name": "New name", // new name "active": 1, "token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae" }
Ответ:
Пример ответа (data):
{ "result" : "Ok" }
Удаление устройства (delete)
Запрос:
Request URL: [site]/api/device/delete/
Параметры запроса:
- (int) device_id,
- (string) token
Пример запроса:
{ "device_id": 107, // local device id "token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae" }
Ответ:
Пример ответа (data):
{ "result" : "Ok" }
Получение метеоданных (last)
Запрос:
Request URL: [site]/api/device/meteo-last/
Параметры запроса:
- (string) token,
- (int) device_id
Пример запроса:
{ "token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae", "device_id": 130 }
Ответ:
Пример ответа (data):
{ "id":"4046", "controller_name":"AS_7FD6785CCF5D", "internal_id":"55", "device_id":"130", "name":"7", "temp":"240", "hum":"245", "illum":"0", "pres":"1239", "volt":"32", "date_time":"2016-03-02 21:09:40", "new":"0" }
Получение метеоданных за период (period)
Запрос:
Request URL: [site]/api/device/meteo-period/
Параметры запроса:
- (string) token,
(int) device_id,
- (int) period
Пример запроса:
{ "token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae", "device_id": 130, "period": 1 // количество дней }
Ответ:
параметры ответа (array to objects):
Пример ответа (data):
[ { "id":"4065", "controller_name":"AS_7FD6785CCF5D", "internal_id":"55", "device_id":"130", "name":"7", "temp":"240", "hum":"523", "illum":"0", "pres":"1239", "volt":"32", "date_time":"2017-07-30 21:11:07", "new":"0" }, { "id":"4067", "controller_name":"AS_7FD6785CCF5D ... }, ]
Получение данных электропитания (last)
Запрос:
Request URL: [site]/api/device/electro-last/
Параметры запроса:
- (string) token,
- (int) device_id
Пример запроса:
{ "token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae", "device_id": 130 }
Ответ:
Пример ответа (data):
{ "id":"318", "controller_id":"11", "external_id":"2", "device_id":"125", "name":"23", "token":"747D3844ABD35B08F27D18D15D7178B7AF99A754D805633928D4362D19B4AEC2", "last_seen":"2017-07-21 04:20:27", "available":"1", "voltage":"24", "have_voltage":"1", "current":"2147483647", "have_current":"1", "supp_voltage":"33", "date_create":"2017-07-21 01:20:33", "new":"0" }
Получение данных электропитания за период (period)
Запрос:
Request URL: [site]/api/device/electro-period/
Параметры запроса:
- (string) token,
- (int) device_id,
- (int) period
Пример запроса:
{ "token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae", "device_id": 130, "period": 1 // количество дней }
Ответ:
Параметры ответа: (array to objects)
Пример ответа (data):
[ { "id":"318", "controller_id":"11", "external_id":"2", "device_id":"125", "name":"23", "token":"747D3844ABD35B08F27D18D15D7178B7AF99A754D805633928D4362D19B4AEC2", "last_seen":"2017-07-21 04:20:27", "available":"1", "voltage":"24", "have_voltage":"1", "current":"2147483647", "have_current":"1", "supp_voltage":"33", "date_create":"2017-07-21 01:20:33", "new":"0" }, { "id":"318", "controller_id":"11", ... }, ]
Получение данных о сторонних устройствах (other-last)
Метод возвращает информацию о последнем обнаруженном стороннем устройстве.
Запрос:
Request URL: [site]/api/device/other-last/
Параметры запроса:
- (string) token,
- (int) device_id
Пример запроса:
{ "token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae", "device_id": 118 }
Ответ:
Пример ответа (data):
{ "id":"1301", "controller_id":"6", "device_id":"118", "name":"Розетка", "code":"81", "pulse_len":null, "bit_len":null, "protocol":null, "groups":null, "type":null, "date_time":"2017-08-21 04:55:18", "active":null, "new":"1" }
Получение данных о сторонних устройствах за период (other-period)
Запрос:
Request URL: [site]/api/device/other-period/
Параметры запроса:
- (string) token,
- (int) device_id,
- (int) period
Пример запроса:
{ "token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae", "device_id": 118, "period": 1 // количество дней }
Ответ:
Пример ответа (data):
{ "id":"1301", "controller_id":"6", "device_id":"118", "name":"Розетка", "code":"81", "pulse_len":null, "bit_len":null, "protocol":null, "groups":null, "type":null, "date_time":"2017-08-21 04:55:18", "active":null, "new":"1" }, { "id":"4067", "controller_id":"6", ... }
Wizard добавления устройств
Датчик открытия двери (create-door-open-sensor)
Запрос:
URL: [site]/api/wizard/create-door-open-sensor
Параметры запроса:
- controller_id (required): int
- token (required): string, 64
- device_name (optional): string, 256
- code_ready (optional): string, 64 //Название кода готовности
- code_alarm (optional): string, 64 //Название кода оповещания
- code_low_battery (optional): string, 64 //Название кода садящейся батареи
Ответ:
Пример ответа:
{ data:{ 'response': 'OK' }, error: null }
После отправки параметров ожидается срабатывание добавляемого устройства. При срабатывании происходит процесс добавления, и лишь после этого приходит ответ.
Датчик затопления (create-flood-sensor)
Запрос:
Request URL: [site]/api/wizard/create-flood-sensor
Параметры запроса:
- controller_id (required): int
- token (required): string, 64
- device_name (optional): string, 256
- code_alarm (optional): string, 64 //Название кода оповещения
- code_tamper (optional): string, 64 //Название кода вмешательства
- code_low_battery (optional): string, 64 //Название кода садящейся батареи
Ответ:
Пример ответа:
{ data: { 'response': 'OK' }, error: null }
После отправки параметров ожидается срабатывание добавляемого устройства. При срабатывании происходит процесс добавления, и лишь после этого приходит ответ.
Пульт,4 кнопки (create-console)
Запрос:
Request URL: [site]/api/wizard/create-console
Параметры запроса:
- controller_id (required): int
- token (required): string, 64
- device_name (optional): string, 256
- code_lock (optional): string, 64 //Название кода блокировки
- code_unlock (optional): string, 64 //Название кода разблокировки
- code_s (optional): string, 64 //Название кода s
- code_alarm (optional): string, 64 //Название кода оповещения
Ответ:
Пример ответа:
{ data: { 'response': 'OK' }, error: null }
После отправки параметров ожидается срабатывание добавляемого устройства. При срабатывании происходит процесс добавления, и лишь после этого приходит ответ.
Сирена (create-siren)
Запрос:
Request URL: [site]/api/wizard/create-siren
Параметры запроса:
- controller_id (required): int
- token (required): string, 64
- device_name (optional): string, 256
- code_on (optional): string, 64 //Название кода включения
- code_off (optional): string, 64 //Название кода выключения
- code_blank (optional): string, 64 //Название кода blank
Ответ:
Пример ответа:
{ data: { 'response': 'OK' }, error: null }
Перед отправкой параметров необходимо перевести сирену в режим обучения.
Метеостанция: получение списка обнаруженных метеостанций за последние 10 минут (get-meteos)
Запрос:
Request URL: [site]/api/wizard/get-meteos
Параметры запроса:
- controller_id (required): int
- token (required): string, 64
Ответ:
Пример ответа:
{ "error":null, "data":[ { "id":"93", "controller_id":"79", "date":"1528389351", "type":"7", "family":"0", "rf_code":null, "rf_bit_len":null, "rf_pulse_len":null, "rf_protocol":null, "rf_freq":null, "ir_code":null, "ir_bit_len":null, "ir_address":null, "ir_protocol":null, "meteo_num":"0" } ] }
Метеостанция: добавление (create-meteo)
Запрос:
Request URL: [site][site]/api/wizard/create-meteo
Параметры запроса:
- controller_id (required): int
- token (required): string, 64
- meteo_num (required): int //Получается в списке выше
- device_name (optional): string, 256
Ответ:
Пример ответа:
{ "error":null, "data":{ "response":"OK" } }
Водопроводный кран
Порядок добавления крана:
1) Сгенерировать коды
2) Зажать на кране кнопку, пока кран не мигнёт трижды
3) Отправить один код
4) Нажать на кране кнопку однократно
5) Зажать на кране кнопку, пока не мигнёт 4 раза
6) Отправить второй код из сгенерированных
7) Нажать на кране кнопку однократно
8) Отправить запрос на создание крана.
Генерация кодов
Запрос:
Request URL: [site]/api/wizard/create-codes
Параметры запроса:
- controller_id (required): int
- token (required): string, 64
Ответ:
Пример ответа:
{ "error":null, "data": { "response":{ "id":30, "masks":"[6,4,0,1]", "code_1":"9920950", "code_2":"9920948", "code_3":"9920944", "code_4":"9920945" } } }
Выполнение кода
Запрос:
Request URL: [site]/api/wizard/execute-code
Параметры запроса:
- controller_id (required): int
- token (required): string, 64
- code (required): int // Берется из сгенерированных
Ответ:
Пример ответа:
{ error: null, data: { "response":"OK" } }
Добавление крана
Запрос:
Request URL: [site]/api/wizard/create-crane-by-codes
Параметры запроса:
- controller_id (required): int
- token (required): string, 64
- code_1 (required): int
- code_2 (required): int
- device_name (optional): string, 256
- code_open (optional): string, 64 //Название кода открытия
- code_close (optional): string, 64 //Название кода закрытия
Ответ:
Пример ответа:
{ data:{'response': 'OK'}, error: null }
Добавление розетки
Порядок добавления розетки следующий:
1) Сгенерировать коды
2) Зажать на розетке кнопку, пока она не начнет мигать
3) Отправить один код
4) Зажать на розетке кнопку, пока она не начнет мигать
5) Отправить второй код из сгенерированых
6) Отправить запрос на создание розетки
Генерация кодов (create-codes)
Запрос:
Request URL: [site]/api/wizard/create-codes
Параметры запроса:
- controller_id (required): int
- token (required): string, 64
- socket (required): любое значение.
Ответ:
Пример ответа:
{ "error":null, "data":{ "response":{"id":30,"masks":"[257, 258]","code_1":"8737025","code_2":"8737026"} } }
Выполнение кода (execute-code)
Запрос:
Request URL: [site]/api/wizard/execute-code
Параметры запроса:
- controller_id (required): int
- token (required): string, 64
- code (required): int // Берется из сгенерированных
Ответ:
Пример ответа:
{ error: null, data: {'response' => 'OK'} }
Добавление розетки (create-socket)
Запрос:
Request URL: [site]/api/wizard/create-socket
Параметры запроса:
- controller_id (required): int
- token (required): string, 64
- code_1 (required): int
- code_2 (required): int
- device_name (optional): string, 256
- code_off (optional): string, 64 //Название кода открытия
- code_on (optional): string, 64 //Название кода закрытия
Ответ:
Пример ответа:
{ data: {'response':'OK'}, error: null }
Сценарии
Получение списка сценариев (list)
Запрос:
Request URL: [site]/api/scheduler/list/
Параметры запроса: (string) token
Пример запроса:
{ "token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae" }
Ответ:
Пример ответа:
{ "error":null, "data" "schedulers":[ { "id":83, "external_id":23, "name":"Test 444", "operation":"local", "armed":2, "type":"meteo", "active":0, "action" "action_id":1, "controller_id":109, "device_id":1747, "code_id":1100, "device_external_id":64, "armed":1, "groups":7, "sensor_type":"1", "date":"00:00", "repetition":"1", "logic_operation":"=", "value":"9" }, "target" "target_id":2, "controller_id":109, "device_id":0, "device_external_id":0, "code_id":0, "external_cod_id":0, "armed":0, "groups":168 } }, { "id":84, "external_id":24, ... }] } }
Обновление/добавление сценариев (update)
Запрос осуществляется в 2 этапа: на первом этапе происходит при запросе на обновление Контроллера (см. "Обновление Контроллера"); на втором этапе обновляется информация о каждом действии.
Запрос:
Request URL: [site]/api/scheduler/update/
Параметры запроса:
- (int) controller_id,
- (string) token
Пример запроса:
{ "controller_id": 6 , "token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae", }
Ответ:
Пример ответа:
{ "result": "Ok" // ответ что запрос ушел }
Процесс обновления происходит автоматически. Для получения результата требуется таймаут, после чего делается стандартный запрос на получение данных (Контроллер, действия)
Информация о сценарии (info)
Запрос:
Request URL: [site]/api/scheduler/info/
Параметры запроса:
- (int) scheduler_id,
- (string) token
Пример запроса:
{ "scheduler_id": 122, "token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae" }
Ответ:
Пример ответа (data):
{ "id":107, "external_id":6, "name":"Test 1.1.1", "operation":"local", "armed":1, "type":"device", "active":1, "action":{ "action_id":1, "controller_id":111, "device_id":1824, "code_id":1399, "device_external_id":18, "armed":0, "groups":0, "sensor_type":"0", "date":null, "repetition":"0", "logic_operation":"=", "value":null }, "targets":[ { "id":87, "type_id":3, "controller_id":111, "device_id":0, "code_id":0, "device_external_id":0, "armed":1, "groups":0 }, { "id":88, "type_id":1, "controller_id":113, "device_id":13, "code_id":123, "device_external_id":1234, "armed":0, "groups":0 }, ] }
Обновление сценариев (update)
Обновление состоит из двух запросов: 1) обновление действия, вызывающего событие; 2) обновления целей сработки. При этом запросы можно делать независимо друг от друга.
Обновление/добавление действий и событий сценария (Update-action)
Request URL: [site]/api/scheduler/update-action/
Параметры запроса:
- (int) scheduler_id,
- (string) token,
- (string) name,
- (int) "active"
- (int) "send_sms" // 1 - отправлять / 0 - не отправлять
- (int) "make_call" // 1 - отправлять / 0 - не отправлять
- (int) "armed" // 0 - в любом режиме, 1 - в режиме охраны, 2 - без режима охраны
- (int) "action_id",
- (int) "action_device_id",
- (int) "action_code_id",
- (int) "action_armed",
- (int) "action_groups", // битовая маска группы от 1 до 8
- (string) "action_repetition", // только для расписания: номер дней повторения через запятую от 1 до 7
- (string) "action_event_time", // только для расписания: время повторения
- (int) "action_sensor_type", // только для метео устройств: 1 - напряжение, 2 - температура, 3 - влажность, 4 - Атм. давление, 5 - Освещенность , 0 - не выбрано
- (string) "action_logic_operation", // логическая операция : '=', '!=', '<', '>', '<=', '>=', 'in', 'like'
- (int) "action_value"
Пример запроса:
{ "scheduler_id": 6 , "token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae", "name": "New name", "active": 1, "send_sms": 0, "make_call": 1, "armed": 2, "action_id" : 2, "action_device_id" : 2, "action_code_id" : 4, "action_armed" : 0, "action_groups" : 7, "action_repetition" : "1,3", "action_event_time" : "10:00", "action_sensor_type" : 2, "action_logic_operation" : "=", "action_value" : 35, }
Ответ:
Пример ответа:
{ "result": "Ok" // ответ о том, что запрос отправлен. }
Обновление цели события (Update-target)
Request URL: [site]/api/scheduler/update-target/
Параметры запроса:
- (int) target_id,
- (string) token,
- (int) "target_type_id",
- (int) "target_device_id",
- (int) "target_code_id",
- (int) "target_armed",
- (int) "target_groups", // битовая маска группы от 1 до 8
Пример запроса:
{ "target_id": 6 , "token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae", "target_type_id" : 2, "target_device_id" : 2, "target_code_id" : 4, "target_armed" : 0, "target_groups" : 7 }
Ответ:
Пример ответа:
{ "result": "Ok" // ответ о том, что запрос отправлен. }
Логи пользователя (logs)
Запрос:
Request URL: [site]/api/profile/logs/
Параметры запроса: (string) token, (int) page, (int) limit
Пример запроса:
{ "token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae", "page": 1 // номер страницы лога "limit": 20 // количество логов на странице , по умолчанию 20, максимум 100 }
Ответ:
Пример ответа:
[ { "id":15, "controller":"Test Valera", "action_name":"", "device":"", "cod":"", "action_pack":"", "date_create":"2019-06-20 15:57:26", "status":0 }, { "id":14, "controller":"Test Valera", "action_name":"", "device":"", "cod":"", "action_pack":"", "date_create":"2019-06-20 15:57:18", "status":0 } ]
Коды
Получение информации о коде (info)
Запрос:
Request URL: [site]/api/property/info/
Параметры запроса:
- (int) controller_id,
- (int) device_id,
- (int) code_id,
- (string) token
Пример запроса:
{ "controller_id": 6, "device_id": 109, "code_id": 192, "token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae" }
Ответ:
Пример ответа (data):
{ "id":"1465", "external_cod_id":"59", "device_id":"1866", "name":"alarm", "alias":"xxx", "code":"15779537", "msg_cod":"003001", "send_armed":"INFO", "send_disarmed":"INFO", "protocol":"1", "pulse_len":null, "group_1":"0", "group_2":"0", "group_3":"0", "group_4":"0", "group_5":"0", "group_6":"0", "group_7":"0", "group_8":"0", "active":"1", "send_sms":"0", "voice_call":"0" }
Изменение имени кода (update-code-name)
Запрос: Request URL: [site]/api/device/update-code-name
Параметры запроса:
- token (required): string(64)
- code_id (required): int
- name (optional): string(255)
Ответ:
Пример ответа:
{ data: { 'message': "OK" }, error: null }
Редактирование параметров кода (update)
Запрос:
Request URL: [site]/api/property/update/
Параметры запроса:
- (string) token
- (int) device_id
- (int) code_id
- (string) name // опционально
- (int) active // опционально
- (int) send_sms // опционально
- (int) voice_call // опционально
Пример запроса:
{ "token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae", "device_id" : 111, "code_id" : 111, "send_sms": 1 }
Ответ:
Пример ответа (data):
{ "result": "Ok" }
Получение кодов по типу сигнала (get-codes-by-subtype)
Запрос:
Request URL: [site]/api/device/get-codes-by-subtype
Параметры запроса:
- token (required): string(64)
- device_subtype_id (optional): int, default 0.
Ответ:
Пример ответа:
{ "code" "id":131, "controller_id":109, "device_type_id":0, "device_subtype_id":1, "code":"655370", "protocol":1, "bit_len":24, "pulse_len":283, "freq":2,"address":null, "num":null, "date_create":"2019-03-13 17:35:05", "device_id":null }, "devices":[ { "id":"1684", "external_id":"64", "controller_id":"109", "name":"WS 1", "alias":null, "type_id":"12", "password":null, "codes":[178,179,180], "state":"1", "on_dashboard":"0", "active":"1", "new":"1", "family":"DEVICE_FAMILY_RADIO", "camera_id":null, "camera_host":null, "send_sms":"0", "voice_call":"0" }, { "id":"1738", "external_id":"115", "controller_id":"109", "name":"Pult 123", "alias":null, "type_id":"3", "password":null, "codes":[280,281,282,283], "state":"1", "on_dashboard":"0", "active":"1", "new":"1", "family":"DEVICE_FAMILY_RADIO", "camera_id":null, "camera_host":null, "send_sms":"0", "voice_call":"0" } ] }
Получение списка кодов (get-codes)
Запрос:
Request URL: [site]/api/device/get-codes
Параметры:
- token (required): string 64
- controller_id (required): int
Ответ:
Пример ответа:
{ data: [ { devices: [ { id: 13 external_id: 7, controller_id: 5, name: "Simple device", type_id: 2, password: null, codes: "a:4:{i:0;i:46;i:1;i:47;i:2;i:48;i:3;i:45;}", state: 1, on_dashboard: 0, active: 1, new: 1, family: DEVICE_FAMILY_RADIO, camera_id: null, camera_host: null }, { id: 14 external_id: 8, controller_id: 5, name: "Simple device", type_id: 2, password: null, codes: "a:4:{i:0;i:46;i:1;i:47;i:2;i:48;i:3;i:45;}", state: 1, on_dashboard: 0, active: 1, new: 1, family: DEVICE_FAMILY_RADIO, camera_id: null, camera_host: null }, ], code: { id: 12, controller_id: 5, device_type_id: 2, code: 498654, protocol: 1, bit_len: 32, pulse_len: 86, freq: 77, address: 94, num: 1, date_create: '2018-04-13 18:29:11" } }, { devices: [ { id: 13 external_id: 7, controller_id: 5, name: "Simple device", type_id: 2, password: null, codes: "a:4:{i:0;i:46;i:1;i:47;i:2;i:48;i:3;i:45;}", state: 1, on_dashboard: 0, active: 1, new: 1, family: DEVICE_FAMILY_RADIO, camera_id: null, camera_host: null }, { id: 14 external_id: 8, controller_id: 5, name: "Simple device", type_id: 2, password: null, codes: "a:4:{i:0;i:46;i:1;i:47;i:2;i:48;i:3;i:45;}", state: 1, on_dashboard: 0, active: 1, new: 1, family: DEVICE_FAMILY_RADIO, camera_id: null, camera_host: null }, ], code: { id: 12, controller_id: 5, device_type_id: 2, code: 498654, protocol: 1, bit_len: 32, pulse_len: 86, freq: 77, address: 94, num: 1, date_create: '2018-04-13 18:29:11" } }, }, error: null, }
Добавление кода к устройству (set-code-to-device)
Запрос:
Request URL: [site]/api/device/set-code-to-device
Параметры запроса:
- token (required): string 64
- code_id (required): int
- device_id (required): int
- name (optional): string 256
Ответ:
Пример ответа:
{ data: { id: 5, external_cod_id: 15, device_id: 14, name: "Name" code: 8463517, protocol: 0, pulse_len: 86, active: 1, }, error: null }
Удаление кода (remove-code)
Запрос:
Request URL: [site]/api/device/remove-code
Параметры запроса:
- token (required): string 64
- code_id (required): int
Ответ:
Пример ответа:
{ data: { message: "OK" }, error: null }
События
Нажатие кнопки на устройстве (event)
Запрос:
Request URL: [site]/api/device/event/
Параметры запроса:
- (string) controller_name,
- (int) device_external_id,
- (int) cod_external_id,
- (string) token,
- (int) device_type
Пример запроса:
{ "controller_name": " AS_7F26335CCF4B" , "device_external_id": 19, "cod_external_id": 1, "device_type": 1, "token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae" }
так как MQTT односторонний - ответа быть не может. Может быть возвращён ответ, что запрос отправлен: response:
Ответ:
Пример ответа (data):
{ "result": "Ok" }
Места
Получение списка мест (places-list)
Запрос:
Request URL: [site]/api/places/places-list
Параметры запроса: token (required): string, 64
Ответ:
Пример ответа:
{ "error":null, "data":{ "rooms":[ { "id":1, "root_id":1, "user_id":424, "lvl":0, "name":"Дом", "icon":0, "icon_type":1, "color":"#fff2cc", "readonly":0, "visible":1 }, { "id":2, "root_id":1, "user_id":424, "lvl":1, "name":"Спальня", "icon":0, "icon_type":1, "color":"#b6d7a8", "readonly":0, "visible":1 } ] } }
Создание места (create)
Запрос:
Request URL: [site]/api/places/create
Параметры запроса:
- token (required): string, 64
- root (optional): int, default 1
- lft (optional): int, from 1 to 5 //В сумме с rgt должно быть 5
- rgt (optional): int, from 1 to 5 //В сумме с lft должно быть 5
- lvl (optional): int, default 0
- name (optional): string, 64, default 'Simple name'
- icon (optional): string, default //Допускаемые параметры -- ключи объекта выше
- color (optional): string, default: '#ccc' //Любой цвет в формате HEX, решетка в начале обязательна
- active (optional): int, default 1
- selected (optional): int, default 0
- disabled (optional): int, default 0
- readonly (optional): int, default 0
- visible (optional): int, default 1
- collapsed (optional): int, default 0
- movable_u (optional): int, default 1
- movable_d (optional): int, default 1
- movable_l (optional): int, default 1
- movable_r (optional): int, default 1
- removable (optional): int, default 1
- removable_all (optional): int, default 0
- inverse_text (optional): string, default 'black'
Ответ:
Пример ответа:
{ error:null, data: {'message': 'OK'} }
Редактирование места (edit)
Запрос:
Request URL: [site]/api/places/edit
Параметры запроса:
- token (required): string, 64
- place_id (required): int
- root (optional): int, default 1
- lft (optional): int, from 1 to 5 //В сумме с rgt должно быть 5
- rgt (optional): int, from 1 to 5 //В сумме с lft должно быть 5
- lvl (optional): int, default 0
- name (optional): string, 64, default 'Simple name'
- icon (optional): string, default //Допускаемые параметры -- ключи объекта выше
- color (optional): string, default: '#ccc' //Любой цвет в формате HEX, решетка в начале обязательна
- active (optional): int, default 1
- selected (optional): int, default 0
- disabled (optional): int, default 0
- readonly (optional): int, default 0
- visible (optional): int, default 1
- collapsed (optional): int, default 0
- movable_u (optional): int, default 1
- movable_d (optional): int, default 1
- movable_l (optional): int, default 1
- movable_r (optional): int, default 1
- removable (optional): int, default 1
- removable_all (optional): int, default 0
- inverse_text (optional): string, default 'black'
Ответ:
Пример ответа:
{ error:null, data: {'message': 'OK'} }
Удаление места (delete)
Запрос: Request URL: [site]/api/places/delete
Параметры запроса:
- token (required): string, 64
- place_id (required): int
Ответ:
Пример ответа:
{ error:null, data: {'message': 'OK'} }
Добавление устройства к месту, смена места у устройства (device-in-place)
Запрос:
Request URL: [site]/api/places/device-in-place/
Параметры запроса:
- token (required): string 64
- device_id (required): int
- place_id (required): int
- visible (not required): int
Ответ:
Пример ответа:
{ data: {result: "OK"}, error: null }
Отвязать устройство от месту (device-out-place)
Запрос:
Request URL: [site]/api/places/device-out-place/
Параметры запроса:
- token (required): string 64
- device_id (required): int
- place_id (required): int
Ответ:
Пример ответа:
{ data: { result: "OK" }, error: null }
Получить список связей устройство-место (device-place-list)
Запрос:
Request URL: [site]/api/places/device-place-list/
Параметры запроса:
- token (required): string 64
Ответ:
Пример ответа:
{ "error":null, "data":{ "0":{ "device_id":1336, "device_name":"Camera test", "place_id":8, "place_name":"office" }, ... "10":{ "device_id":1865, "device_name":"Meteo 9", "place_id":10, "place_name":"Box 1" } } }
Активация подписки Ebus
Получение состояния подписки на Контроллере - “in/subscription/get”:
{ "id": 1, // ID подписки (см. ниже) "seq_id": 0 }
Ответ:
{ "seq_id": 0, "remain_time": 100, // оставшееся время в секундах, 4294967295 – неограниченно "success": 0/1 }
Установка подписки на Контроллере - “in/subscription/set”:
{ "seq_id": 0, "id": 1, // ID подписки (см. ниже) "remain_time": 100 // оставшееся время в секундах, 4294967295 - неограниченно }
Ответ:
{ "seq_id": 0, "success": 0/1 }
Идентификаторы подписок: SUBSCRIPTION_EBUS = 1
Статус Контроллера
Контроллер отправляет информацию о своем онлайн/оффлайн статусе в топик “out/status”.
Формат сообщения:
{ "status": 1 // см. ниже }
Поле “status” может принимать следующие значения:
• "0" – оффлайн
• "1" – онлайн
• "2" – онлайн, после включения питания
При получении сообщения со статусом "2", портал должен отправить Контроллеру информацию о пользовательских подписках, как это описано в разделе «Подписки».
Виджеты
Список виджетов пользователя (widget-list)
Запрос:
Request URL: [site]/api/device/widget-list/
Параметры запроса: (string) token
Пример запроса:
{ "token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae" }
Ответ:
Пример ответа (data):
{ "widgets":[ { "controller_id":111, "device_ids":[18,20,21,22], "device_id":"1824", "external_id":18, "device_type":3, "name":"Remote control", "widget_type":3, "state":1 }, { "controller_id":111, "device_ids":[18,20,21,22], "device_id":"1850", "external_id":20, "device_type":4, "name":"Sockets", "widget_type":4, "state":1 } ], "ctrl_widgets":[ { "controller_id":111, "name":"66D4E809EF0A", "hostname":"Test", "armed":0 } ] }
Добавить виджет (widget-add-home)
Запрос:
Request URL: [site]/api/device/widget-add-home/
Параметры запроса:
- (string) token,
- (int) device_id,
- (int) controller_id
Пример запроса:
{ "token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae", "controller_id": 1862 }
Ответ:
Пример ответа (полный):
{ "error":null, "data":{ "result":"Ok" } }
Удалить виджет пользователя (widget-remove-home)
Запрос:
Request URL: [site]/api/device/widget-remove-home/
Параметры запроса:
- (string) token,
- (int) device_id,
- (int) controller_id
Пример запроса:
{ "token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae", "device_id": 1862 }
Ответ:
Пример ответа (полный):
{ "error":null, "data":{ "result":"Ok" } }
Неклассифицируемые методы
Список доступных стран (countries)
Запрос:
Request URL: [site]/api/profile/countries/
Параметры запроса:
- (string) token
- (string) lang // en , ua, ru
Пример запроса:
{ "token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae", "lang" : "en" }
Ответ:
Пример ответа (data):
[ { "id":"1", "code":"AF", "name":"Afghanistan" }, { "id":"2", "code":"AL", "name":"Albania" } ]
Ошибки
параметры ошибки:
пример:
{ "errors":{ "password": [ "Incorrect username." ] } }