Web API: различия между версиями

Материал из wiki.quadrobit.com
Перейти к навигации Перейти к поиску
 
(не показано 40 промежуточных версий 2 участников)
Строка 1: Строка 1:
 +
<languages />
 +
<translate>
 +
 +
<!--T:1-->
 
* API v01 *
 
* 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) ==
 
== Авторизация (login) ==
  
request:
+
<!--T:5-->
 +
Запрос:
  
 +
<!--T:6-->
 
Request URL: [site]/api/login
 
Request URL: [site]/api/login
  
параметры запроса:
+
<!--T:7-->
 +
Параметры запроса:
  
(string) email,
+
<!--T:8-->
 
+
#(string) email,
(string) password
+
#(string) password
  
 +
<!--T:10-->
 
Пример запроса:  
 
Пример запроса:  
 
<pre>
 
<pre>
Строка 26: Строка 57:
 
</pre>
 
</pre>
  
response:
+
<!--T:11-->
параметры ответа: (object)
+
Ответ:
  
Пример ответа:  
+
<!--T:12-->
 +
Пример ответа (data):  
 
<pre>
 
<pre>
 
{
 
{
Строка 45: Строка 77:
 
}
 
}
  
 +
<!--T:13-->
 
</pre>
 
</pre>
  
  
== Регистрация (registration) ==   
+
== Регистрация (registration) == <!--T:14-->    
 +
 
 +
<!--T:15-->
 +
Запрос:
  
request:
 
 
Request URL: [site]/api/registration
 
Request URL: [site]/api/registration
  
параметры запроса:
+
<!--T:16-->
 +
Параметры запроса:
  
(string) email,
+
<!--T:17-->
 
+
#(string) email,
(string) password
+
#(string) password
  
 +
<!--T:19-->
 
Пример запроса:  
 
Пример запроса:  
 
<pre>
 
<pre>
Строка 66: Строка 103:
 
}
 
}
 
</pre>
 
</pre>
response:
+
Ответ:
параметры ответа: (object)
+
 
пример:  
+
Пример ответа (data):  
 
<pre>
 
<pre>
 
{
 
{
Строка 83: Строка 120:
  
  
== Профиль пользователя (profile) ==
+
== Профиль пользователя (profile) == <!--T:20-->
  
request:
+
<!--T:21-->
 +
Запрос:
  
 +
<!--T:22-->
 
Request URL: [site]/api/profile/
 
Request URL: [site]/api/profile/
  
параметры запроса: (string) token
+
<!--T:23-->
 +
Параметры запроса: (string) token
  
 +
<!--T:24-->
 
Пример запроса:  
 
Пример запроса:  
 
<pre>
 
<pre>
Строка 97: Строка 138:
 
}
 
}
 
</pre>
 
</pre>
response:
+
Ответ:
параметры ответа: (object)
+
 
пример:  
+
Пример ответа (data):  
 
<pre>
 
<pre>
 
{
 
{
Строка 119: Строка 160:
 
</pre>
 
</pre>
  
= Контроллеры =
+
= Контроллеры = <!--T:25-->
  
== Список Контроллеров Пользователя (list) ==
+
== Список Контроллеров Пользователя (list) == <!--T:26-->
 +
 
 +
<!--T:27-->
 +
Запрос:
  
request:
 
 
Request URL: [site]/api/ctrl/list/
 
Request URL: [site]/api/ctrl/list/
  
параметры запроса: (string) token
+
<!--T:28-->
 +
Параметры запроса: (string) token
  
 +
<!--T:29-->
 
Пример запроса:
 
Пример запроса:
 
   
 
   
Строка 136: Строка 181:
 
</pre>
 
</pre>
  
response:
+
<!--T:30-->
 
+
Ответ:
параметры ответа: (array)
 
  
Пример ответа:  
+
<!--T:32-->
 +
Пример ответа (data):  
 
<pre>
 
<pre>
 
{
 
{
 
"0":{
 
"0":{
"id":"11",
+
"id": 651,
"name":"AS_A61301A020E4",
+
"name": "AE439648F951",
"armed":"0",   //0 - снят с охраны, 1 - под охраной
+
"ip": "192.168.10.135",
"device_ids":"a:3:{i:0;i:1;i:1;i:2;i:2;i:3;}", //ids устройств на контроллере
+
"fw_id": "1",
"action_ids":"a:0:{}", //ids действий на контроллере
+
"hostname": "quadrobase",
"timezone":"3",
+
"armed": 0,
"token":"747D3844ABD35B08F27D18D15D7178B7AF99A754D805633928D4362D19B4AEC2",
+
"address": "",
"online":"1"
+
"lat": null,
},
+
"lng": null,
"1":{
+
"timezone": 2,
"id":"12",
+
"online": 1,
"name":"AS_A61301A020E5",
+
"last_online": "2019-06-17 19:36:48",
"armed":"1",
+
"type_signal": "wifi",
"device_ids":"a:3:{i:0;i:1;i:1;i:2;i:2;i:3;}",
+
"wifi_param": -67,
"action_ids":"a:0:{}",
+
"gsm_param": 0,
"timezone":"2",
+
"phone": "",
"token":"734D3844ABD35B08F27D18D15D7178B7AF99A754D805633928D4362D19B4AEC2",
+
"pin": 0,
"online":"0"
+
"user_controller_name": "quadrobase",
 +
"on_dashboard": 0
 
}]  
 
}]  
</pre>  
+
</pre>
  
 +
== Информация о Контроллере (info) == <!--T:33-->
  
= Информация о Контроллере (info) =
+
<!--T:34-->
 +
Запрос:
  
request:
 
 
Request URL: [site]/api/ctrl/info/
 
Request URL: [site]/api/ctrl/info/
  
параметры запроса: (int) controller_id , (string) token
+
<!--T:35-->
 +
Параметры запроса:
 +
 
 +
#(int) controller_id,
 +
#(string) token
  
 +
<!--T:36-->
 
Пример запроса:  
 
Пример запроса:  
 
<pre>
 
<pre>
Строка 181: Строка 233:
 
</pre>
 
</pre>
  
response:
+
<!--T:37-->
 +
Ответ:
  
параметры ответа: (object)
+
<!--T:39-->
 
+
Пример ответа (data):  
Пример ответа:  
 
  
 +
<!--T:40-->
 
<pre>
 
<pre>
 
{
 
{
 
"id":"6",
 
"id":"6",
"name":"AS_7F26335CCF4B",
+
"name":"66D4E809EF0A",
"armed":"1",
+
"hostname":"Test Valera 34",
"device_ids":"a:26:{i:0;i:25;i:1;i:26;i:2;i:28;i:3;i:19;i:4;i:40;i:5;i:41;i:6;i:42;i:7;i:43;i:8;i:36;i:9;i:34;i:10;i:29;i:11;i:45;i:12;i:38;i:13;i:33;i:14;i:30;i:15;i:31;i:16;i:49;i:17;i:24;i:18;i:46;i:19;i:47;i:20;i:44;i:21;i:27;i:22;i:22;i:23;i:9;i:24;i:23;i:25;i:7;}",
+
"armed":0,
"action_ids":"a:4:{i:0;i:45;i:1;i:46;i:2;i:49;i:3;i:42;}",
+
"address":"",
"timezone":"3",
+
"lat":50.4156,
"token":"660D91C2B0926A8C981AE7DA4AAA4421A3D86D136262A6F8E98ACF534A7A715B",
+
"lng":30.5336,
"online":"1"
+
"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) =
+
== Постановка/снятие Контроллера на охрану / с охраны  (armed) == <!--T:41-->
  
request:
+
<!--T:42-->
 +
Запрос:
  
 +
<!--T:43-->
 
Request URL: [site]/api/ctrl/armed/
 
Request URL: [site]/api/ctrl/armed/
  
параметры запроса: (int) controller_id , (string) token
+
<!--T:44-->
пример:  
+
Параметры запроса:
 +
 
 +
(int) controller_id,
 +
(string) token
 +
 
 +
Пример запроса:  
  
 +
<!--T:45-->
 
<pre>
 
<pre>
 
{
 
{
Строка 215: Строка 287:
 
}
 
}
 
</pre>
 
</pre>
так как MQTT односторонний - ответа быть не может. Ответ что запрос ушел:
+
 
response:
+
Так как MQTT односторонний - ответа быть не может. Ответ что запрос ушел:
параметры ответа:
+
 
пример:  
+
Ответ:
 +
 +
Пример ответа (data):  
 
<pre>
 
<pre>
 
{
 
{
Строка 226: Строка 300:
  
  
= Добавление Контроллера (add) =
+
== Добавление Контроллера (add) == <!--T:46-->
  
request:
+
<!--T:47-->
 +
Запрос:
  
 +
<!--T:48-->
 
Request URL: [site]/api/ctrl/add
 
Request URL: [site]/api/ctrl/add
  
параметры запроса: (string) token
+
<!--T:49-->
 +
Параметры запроса: (string) token
  
 +
<!--T:50-->
 
Пример:  
 
Пример:  
 
<pre>
 
<pre>
Строка 240: Строка 318:
 
}
 
}
 
</pre>
 
</pre>
response:
+
 
параметры ответа:
+
Ответ:
пример:  
+
 
 +
Пример ответа:  
 
<pre>
 
<pre>
 
{
 
{
Строка 248: Строка 327:
 
}
 
}
 
</pre>
 
</pre>
 +
 
После ввода пин-кода необходимо обновить список Контроллеров (/api/ctrl/list/)
 
После ввода пин-кода необходимо обновить список Контроллеров (/api/ctrl/list/)
  
= Обновление списка устройств и действий на Контроллере (update) =
+
== Обновление списка устройств и действий на Контроллере (update) == <!--T:51-->
  
=== Этап 1 - обновляем список IDS устройств на Контроллере ===
+
=== Этап 1 - обновляем список IDS устройств на Контроллере === <!--T:52-->
request:
+
Запрос:
  
 +
<!--T:53-->
 
Request URL: [site]/api/ctrl/update/
 
Request URL: [site]/api/ctrl/update/
параметры запроса: (int) controller_id , (string) token
+
 
пример:  
+
Параметры запроса:
 +
 
 +
#(int) controller_id,
 +
#(string) token
 +
 
 +
Пример запроса:  
 
<pre>
 
<pre>
 
{
 
{
Строка 264: Строка 350:
 
}
 
}
 
</pre>
 
</pre>
response:
+
 
параметры ответа:
+
Ответ:
пример:  
+
 +
Пример ответа (data):  
 
<pre>
 
<pre>
 
{
 
{
"result": "Ok" // "Ok" = запрос ушел
+
"result": "Ok" // "Ok" = запрос отправлен
 
}
 
}
 
</pre>
 
</pre>
  
=== Этап 2 - обновляем информацию о каждом устройстве ===
+
=== Этап 2 - обновляем информацию о каждом устройстве === <!--T:54-->
 +
 
 +
<!--T:55-->
 +
Запрос:
  
request:
 
 
Request URL: [site]/api/ctrl/update-devices/
 
Request URL: [site]/api/ctrl/update-devices/
  
параметры запроса:
+
<!--T:56-->
 +
Параметры запроса:
  
(int) controller_id,
+
<!--T:57-->
(string) token
+
#(int) controller_id,
 +
#(string) token
  
 +
<!--T:58-->
 
Пример запроса:  
 
Пример запроса:  
 
<pre>
 
<pre>
Строка 291: Строка 383:
 
</pre>
 
</pre>
  
response:
+
<!--T:59-->
 +
Ответ:  
  
параметры ответа:  
+
<!--T:61-->
 +
Пример ответа:  
  
Пример ответа:
 
 
<pre>
 
<pre>
 
{
 
{
"result": "Ok" // ответ что запрос ушел
+
"result": "Ok" // Запрос отправлен
 
}
 
}
 
</pre>
 
</pre>
 +
 
Процесс происходит автоматически. Для получения результата требуется таймаут, после чего делается стандартный запрос на получение данных (контроллер, устройства)
 
Процесс происходит автоматически. Для получения результата требуется таймаут, после чего делается стандартный запрос на получение данных (контроллер, устройства)
  
  
= Удаление Контроллера (delete) =
+
== Удаление Контроллера (delete) == <!--T:62-->
 +
 
 +
Запрос:
  
 +
<!--T:63-->
 
Request URL: [site]/api/ctrl/delete
 
Request URL: [site]/api/ctrl/delete
  
Параметры запроса:  
+
<!--T:65-->
 
 
 
Пример запроса:
 
Пример запроса:
 
   
 
   
Строка 319: Строка 415:
 
</pre>
 
</pre>
  
response:
+
<!--T:66-->
параметры ответа:  
+
Ответ:
пример:
+
 +
Пример ответа:
 +
 
 
<pre>
 
<pre>
 
{
 
{
 
"error":null,
 
"error":null,
"data":{"resuls":"Ok"}
+
"data":{"result":"Ok"}
 
}
 
}
 
</pre>
 
</pre>
  
 +
== Обновление статуса контроллера (update-status) == <!--T:67-->
 +
 +
<!--T:68-->
 +
Запрос:
  
= Список устройств пользователя (list) =
+
<!--T:69-->
 +
Request URL: [site]/api/ctrl/update-status/
  
request:
+
<!--T:70-->
Request URL: [site]/api/device/list
+
Параметры запроса:
  
параметры запроса: (int) controller_id , (string) token
+
#(string) token,
 +
#(int) controller_id
 +
 
 +
<!--T:73-->
 +
Пример запроса:
  
Пример запрса:
 
 
<pre>
 
<pre>
 
{
 
{
"controller_id": 1 ,
+
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae",
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"
+
"controller_id": 122
 
}
 
}
 
</pre>
 
</pre>
  
response:
+
<!--T:74-->
параметры ответа:
+
Ответ:
+
 
Пример ответа:  
+
<!--T:76-->
 +
Пример ответа:
 +
 
 
<pre>
 
<pre>
 
{
 
{
"0":{
+
"error":null,
"id":"122",
+
"data":{
"external_id":"19", //id на контроллере
+
"result":"Ok"
"controller_id":"6",
+
}
"name":"Сирена",
+
}
"type_id":"2",  //тип устройства
+
</pre>
"codes":":{    //коды (кнопки)
+
 
"0":{
+
== Получение актуального статуса Контроллера (get-status) ==  <!--T:77-->
"id":"218",
+
 
"external_cod_id":"32",
+
Запрос:
"device_id":"122",
+
 
"name":"ON",
+
<!--T:78-->
"code":"3675192",
+
Request URL: [site]/api/ctrl/get-status/
"protocol":"1",
+
 
"pulse_len":null,
+
<!--T:79-->
"group_1":"1",
+
Параметры запроса:
"group_2":"0",
+
 
"group_3":"0",
+
#(string) token,
"group_4":"0",
+
#(int) controller_id
"group_5":"0",
+
 
"group_6":"0",
+
<!--T:82-->
"group_7":"0",
+
Пример запроса:
"group_8":"0",
+
 
"active":"1"
+
<pre>
},  
+
{
"1":{ ... }
+
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae",
},
+
"controller_id": 122
"state":"1",
+
}
"on_dashboard":"1", //показывать на главной
+
</pre>
"active":"1" 
 
},
 
"1":{
 
"id":"120",
 
"external_id":"22",
 
"controller_id":"6",
 
"name":"Пульт 4кн бел",
 
"type_id":"3",
 
"codes": ... ,
 
"state":"1",
 
"on_dashboard":"0",
 
"active":"1"
 
}
 
}
 
</pre>  
 
  
 +
<!--T:83-->
 +
Ответ:
  
= Информация об устройстве (info) =
+
<!--T:85-->
 +
Пример ответа:
  
request:
+
<pre>
 +
{
 +
"error":null,
 +
"data":{
 +
"status":1
 +
}
 +
}
 +
</pre>
  
Request URL: [site]/api/device/info/
+
<!--T:86-->
 +
Поле “status” может принимать следующие значения:
 +
• 0 – офлайн
 +
 
 +
<!--T:87-->
 +
• 1 – онлайн
 +
 
 +
<!--T:88-->
 +
• 2 – онлайн, после включения питания
 +
 
 +
== Получение конфигурации Контроллера (config) == <!--T:89-->
 +
 
 +
<!--T:82-->
 +
Запрос:
  
параметры запроса:
+
Request URL: [site]/api/ctrl/config/
  
(int) controller_id,
+
<!--T:82-->
 +
Параметры запроса:
  
(int) device_id,
+
#(string) token,
 +
#(int) controller_id
  
(string) token
+
<!--T:82-->
 +
Пример запроса:
  
Пример запрса:
 
 
<pre>
 
<pre>
 
{
 
{
"controller_id": 1 ,
+
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae",
"device_id": 122,
+
"controller_id" : 111
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"
 
 
}
 
}
 
</pre>
 
</pre>
  
response:
+
<!--T:82-->
 +
Ответ:
 +
 
 +
<!--T:82-->
 +
Пример ответа (data):
  
параметры ответа:
 
 
Пример ответа:
 
 
<pre>
 
<pre>
 
{
 
{
"id":"122",
+
"id":"1",   // id конфигурации
"external_id":"19",
+
"controller_id":"111",   // id контроллера
"controller_id":"6",
+
"language":"ru-RU",
"name":"Сирена",
+
"hostname":"alarm-system",
"type_id":"2",
+
"wifi_mode":1,  // 1 - STA, 2 - AP
"codes":{
+
"wifi_sta_type":1, // 0 - STATIC, 1 - DHCP
"0":{
+
"wifi_sta_ssid":"SSID",
"id":"218",
+
"wifi_sta_pass":"PASSWORD",
"external_cod_id":"32",
+
"wifi_sta_ip":"192.168.0.101",
"device_id":"122",
+
"wifi_sta_mask":"255.255.255.0",
"name":"ON",
+
"wifi_sta_gw":"192.168.0.1",
"code":"3675192",
+
"wifi_sta_dns1":"208.67.222.222",
"protocol":"1",
+
"wifi_sta_dns2":"208.67.222.222",
"pulse_len":null,
+
"wifi_ap_authmode": 3, // 0 - OPEN, 1 - WEP, 2 - WPA_PSK, 3 - WPA2_PSK, 4 - WPA_WPA2_PSK
"group_1":"1",
+
"wifi_ap_hidden":0, // 0/1
"group_2":"0",
+
"wifi_ap_channel":1, // 1...14
"group_3":"0",
+
"wifi_ap_ssid":"SMARTHOME_000000000000",
"group_4":"0",
+
"wifi_ap_pass":"00000000",
"group_5":"0",
+
"wifi_ap_ip":"192.168.4.1",
"group_6":"0",
+
"wifi_ap_mask":"255.255.255.0",
"group_7":"0",
+
"wifi_ap_gw":"192.168.4.1",
"group_8":"0",
+
"httpd_port":80, // 1...65535
"active":"1"
+
"httpd_auth":0, // 0/1
},
+
"httpd_user":"admin",
"1":{
+
"httpd_pass":"admin",
"id":"219",
+
"ntp_enable":0, // 0/1
"external_cod_id":"33",
+
"ntp_host":"time.windows.com",
"device_id":"122",
+
"ntp_tz":3, // -11...13
"name":"OFF",
+
"upnp_enable":1, // 0/1
"code":"3675186
+
"advanced_mode":0, // 0/1
...
+
"app_afb_enable":1, // 0/1
}
+
"app_leds_off":1, // 0/1
},
+
"app_alarm_duration":10, // minutes
"state":"1",
+
"app_arming_delay":0, // seconds
"on_dashboard":"1",
+
"app_portal_link":0, // 0/1
"active":"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>
 +
{
 +
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae",
 +
"controller_id" : 111,
 +
"command": "yyy"   // параметры контроллера смотри метод Получить конфигурацию контроллера(ctrl/config/)
 +
}
 
</pre>
 
</pre>
  
= Нажатие кнопки на устройстве (event) =
+
<!--T:89-->
 +
Ответ:
  
request:
+
<!--T:89-->
 +
Пример ответа (data):
  
Request URL: [site]/api/device/event/
+
<pre>
параметры запроса:
+
{
 +
"result": "Ok"
 +
}
 +
</pre>
  
(string) controller_name,
+
==  Передача локального IP Контроллера (get-ip) == <!--T:89-->
  
(int) device_external_id,
+
Запрос
  
(int) cod_external_id,
+
<!--T:90-->
 +
Request URL: [site]/api/ctrl/get-ip
  
(string) token,
+
<!--T:91-->
 +
Request Params:
  
(int) device_type
+
#token (required): string(64);
 +
#controller_id (required): int;
  
Пример запроса:  
+
Ответ:
 +
<!--T:94-->
  
 +
Пример ответа:
 +
 +
<!--T:95-->
 
<pre>
 
<pre>
 
{
 
{
"controller_name": " AS_7F26335CCF4B" ,
+
data:'192.168.0.15',
"device_external_id": 19,
+
error: null
"cod_external_id": 1,
 
"device_type": 1,
 
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"
 
 
}
 
}
 
</pre>
 
</pre>
  
так как MQTT  односторонний - ответа быть не может. Может быть возвращён ответ, что запрос отправлен:
+
== Установка подписки на Контроллере == <!--T:96-->
response:
+
 
 +
Запрос:
  
параметры ответа:  
+
<!--T:97-->
 +
Request URL: [site]/in/subscription/set”
  
Пример ответа:  
+
Ответ:
 +
 
 +
Пример ответа (data):
  
 
<pre>
 
<pre>
 
{
 
{
"result": "Ok"
+
"seq_id": 0,
 +
"id": 1, // ID подписки (см. ниже)
 +
"remain_time": 100 // оставшееся время в секундах, 4294967295 - неограниченно
 
}
 
}
 
</pre>
 
</pre>
  
 +
==  Просмотр статуса подписки (get-subscribe-status) == <!--T:98-->
  
= Обновление информации об устройстве (update) =
+
Запрос:
  
request:
+
<!--T:99-->
 +
Request URL: [site]/api/ctrl/get-subscribe-status
  
Request URL: [site]/api/device/update/
+
<!--T:100-->
 +
Параметры:
  
параметры запроса:
+
<!--T:101-->
 +
#token (required): string(64)
 +
#controller_id (required): int
  
(int) device_id,
+
<!--T:103-->
 
+
Ответ:
(string) name,
 
 
 
(int) active,
 
  
(string) token,
+
Пример ответа (data):
  
Пример запроса:  
+
<!--T:104-->
 
<pre>
 
<pre>
 
{
 
{
"device_id": 107,   // local device id
+
data:{
"name": "New name", // new name
+
id: 1,
"active": 1,
+
controller_id: 40,
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"
+
user_id: 424,
 +
remain_time: 100,
 +
request_time: 1355314332,
 +
response_time: 1355315332,
 +
success: 0
 +
},
 +
error: ''
 
}
 
}
 
</pre>
 
</pre>
response:
 
  
параметры ответа:
+
== Активация/продление/покупка подписки (set-subscribe) == <!--T:105-->
   
 
Пример ответа:
 
<pre>
 
{
 
"resuls" : "Ok"
 
}
 
</pre>
 
  
= Удаление устройства (delete) =
+
Запрос:
  
request:
+
<!--T:106-->
 +
Request URL: [site]/api/ctrl/set-subscribe
  
Request URL: [site]/api/device/delete/
+
<!--T:107-->
 +
Параметры:
  
параметры запроса:
+
<!--T:108-->
 +
#token (required): string(64)
 +
#controller_id (required): int
  
(int) device_id,
+
<!--T:110-->
 
+
Ответ:
(string) token
 
  
Пример запроса:
 
 
<pre>
 
<pre>
 
{
 
{
"device_id": 107,   // local device id
+
data:{
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"
+
id: 1,
}
+
controller_id: 40,
 +
user_id: 424,
 +
remain_time: 100,
 +
request_time: 1355314332,
 +
response_time: 1355315332,
 +
success: 0
 +
},
 +
error: ''
 +
}
 
</pre>
 
</pre>
  
response:
+
==  Метод получения списка телефонов (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>
 
{
 
{
"resuls" : "Ok"
+
'error': null,
 
+
data: [
 +
{'id': 5, 'phone': '+380123456789'},
 +
{'id': 6, 'phone': '+380123334455'},
 +
{'id': 7, 'phone': '+380112223344'}
 +
]
 
}
 
}
 
</pre>
 
</pre>
  
  
Код:
+
==  Редактирование телефона (edit-phone) == <!--T:119-->
  
 +
Запрос:
  
= Список действий (list) =
+
<!--T:120-->
 +
Request URL: [site]/api/ctrl/edit-phone
  
 +
<!--T:121-->
 +
Параметры:
  
request:
+
<!--T:122-->
Request URL: [site]/api/scheduler/list/
+
#token (required): string, 64
 +
#phone_id (required): int
 +
#is_recipient (optional): int
 +
#is_authorized (optional): int
 +
#phone (optional): string
  
параметры запроса: (string) token
+
<!--T:127-->
 +
Ответ:  
  
Пример запроса:
+
Пример ответа:
 
 
<pre>
 
<pre>
 
{
 
{
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"
+
"error":null,
 +
"data":{
 +
"id":2,
 +
"controller_id":81,
 +
"phone":"+380503334455",
 +
"is_recipient":"1",
 +
"is_authorized":0
 +
}
 
}
 
}
 
</pre>
 
</pre>
  
response:
 
  
параметры ответа:  
+
==  Удаление телефона (delete-phone) == <!--T:128-->
  
Пример ответа:  
+
Запрос:
<pre>
 
{
 
"0":{
 
"id":9,
 
"external_id":42,
 
"name":"test_form_web",
 
"operation":"local",
 
"armed":0,
 
"type":"meteo",
 
"action_id":1,
 
"a_controller_id":6,
 
"a_device_id":112,
 
"a_code_id":0,
 
"a_device_external_id":38,
 
"a_armed":0,
 
"a_conf1":0,
 
"a_conf2":0,
 
"a_conf3":0,
 
"a_conf4":0,
 
"a_conf5":0,
 
"a_conf6":0,
 
"a_conf7":0,
 
"a_conf8":0,
 
"target_id":1,
 
"t_controller_id":6,
 
"t_device_id":119,
 
"t_code_id":203,
 
"t_device_external_id":7,
 
"t_armed":0,
 
"t_conf1":0,
 
"t_conf2":0,
 
"t_conf3":0,
 
"t_conf4":0,
 
"t_conf5":0,
 
"t_conf6":0,
 
"t_conf7":0,
 
"t_conf8":0,
 
"date":null,
 
"repetition":"0",
 
"sensor_type":"1",
 
"logic_operation":"=",
 
"value":"3",
 
"active":1
 
},
 
"1":{
 
"id":10,
 
"external_id":45
 
...
 
}
 
}
 
  
</pre>
+
<!--T:129-->
 +
Request URL: [site]/api/ctrl/delete-phone
  
 +
<!--T:130-->
 +
Параметры:
  
= Обновление действий (update) =
+
<!--T:131-->
 +
#token (required): string, 64
 +
#phone_id (required): int
  
Запрос осуществляется в 2 этапа: на первом этапе происходит при запросе на обновление Контроллера (см. "Обновление Контроллера");
+
<!--T:133-->
на втором этапе обновляется информация о каждом действии.
+
Ответ:
  
request:
+
Пример ответа:
Request URL: [site]/api/scheduler/update/
 
 
 
параметры запроса:
 
 
 
(int) controller_id,
 
 
 
(string) token
 
  
Пример запроса:
 
 
<pre>
 
<pre>
 
{
 
{
"controller_id": 6 ,
+
"error":null,
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae",
+
"data":{"response":"OK"}
 
}
 
}
 
</pre>
 
</pre>
  
response:
+
== Добавление телефона (add-phone) == <!--T:134-->
  
параметры ответа:  
+
Запрос:
  
Пример ответа:  
+
<!--T:135-->
<pre>
+
Request URL: [site]/api/ctrl/add-phone
{
 
"result": "Ok" // ответ что запрос ушел
 
}
 
</pre>
 
Процесс обновления происходит автоматически. Для получения результата требуется таймаут, после чего делается стандартный запрос на получение данных (Контроллер, действия)
 
  
 +
<!--T:136-->
 +
Params:
  
= Информация о действии (info) =
+
<!--T:137-->
 +
#token (required): string, 64
 +
#controller_id (required): int
 +
#phone (required): string
 +
#is_recipient (optional): int
 +
#is_authorized (optional): int
  
request:
+
<!--T:142-->
Request URL: [site]/api/scheduler/info/
+
Ответ:  
  
параметры запроса:
+
Пример ответа:
 
 
(int) scheduler_id,
 
 
 
(string) token
 
  
Пример ответа:  
+
<!--T:143-->
 
<pre>
 
<pre>
 
{
 
{
"scheduler_id": 122,
+
"error":null,
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"
+
"data":{
 +
"id":2,
 +
"controller_id":81,
 +
"phone":"+380503334455",
 +
"is_recipient":"1",
 +
"is_authorized":0
 +
}
 
}
 
}
 
</pre>
 
</pre>
response:
 
  
параметры ответа:  
+
== Информация о версии прошивки контроллера (fw-version-current) == <!--T:145-->
 +
 
 +
Запрос:
 +
 
 +
Request URL: [site]/api/ctrl/fw-version-current/
 +
 
 +
Параметры запроса:
 +
 
 +
#(int) controller_id,
 +
#(string) token
 +
 
 +
Пример запроса:
  
Пример ответа:
 
 
<pre>
 
<pre>
 
{
 
{
"id":9,
+
"controller_id": 1 ,
"external_id":42,
+
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"
"name":"test_form_web",
 
"operation":"local",
 
"armed":0,
 
"type":"meteo",
 
"action_id":1,
 
"a_controller_id":6,
 
"a_device_id":112,
 
"a_code_id":0,
 
"a_device_external_id":38,
 
"a_armed":0,
 
"a_conf1":0,
 
"a_conf2":0,
 
"a_conf3":0,
 
"a_conf4":0,
 
"a_conf5":0,
 
"a_conf6":0,
 
"a_conf7":0,
 
"a_conf8":0,
 
"target_id":1,
 
"t_controller_id":6,
 
"t_device_id":119,
 
"t_code_id":203,
 
"t_device_external_id":7,
 
"t_armed":0,
 
"t_conf1":0,
 
"t_conf2":0,
 
"t_conf3":0,
 
"t_conf4":0,
 
"t_conf5":0,
 
"t_conf6":0,
 
"t_conf7":0,
 
"t_conf8":0,
 
"date":null,
 
"repetition":"0",
 
"sensor_type":"1",
 
"logic_operation":"=",
 
"value":"3",
 
"active":1
 
 
}
 
}
</pre>  
+
</pre>
 +
 
 +
Ответ:
  
 +
Пример ответа (data):
  
=== (create) ===
+
<pre>
request:
 
Request URL: [site]/api/
 
параметры запроса:
 
пример:
 
<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>
  
response:
 
параметры ответа:
 
пример:
 
<pre>
 
{
 
  
}
+
== Информация о последней версии прошивки контроллера (get-new-fw-version) == <!--T:145-->
</pre>  
+
 
 +
Запрос:
 +
 
 +
Request URL: [site]/api/ctrl/get-new-fw-version/
 +
 
 +
Параметры запроса:
 +
 
 +
#(int) controller_id,
 +
#(string) token
 +
 
 +
<pre>
 +
Пример запроса:
  
=== (update) ===
 
request:
 
Request URL: [site]/api/
 
параметры запроса:
 
пример:
 
<pre>
 
 
{
 
{
+
"controller_id": 1 ,
 +
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"
 
}
 
}
</pre>  
+
</pre>
  
response:
+
Ответ:
параметры ответа:
 
пример:
 
<pre>
 
{
 
  
}
+
Пример ответа (data):
</pre>
 
  
=== (delete)===
 
request:
 
Request URL: [site]/api/login
 
параметры запроса:
 
пример:
 
 
<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>
  
response:
+
= Устройства = <!--T:144-->
параметры ответа:
 
пример:  
 
  
<pre>
+
== Получение списка устройств пользователя (list) == <!--T:145-->
{
 
  
}
+
<!--T:146-->
</pre>  
+
Запрос:
  
= Логи пользователя (logs) =
+
<!--T:147-->
request:
+
Request URL: [site]/api/device/list
  
Request URL: [site]/api/profile/logs/
+
<!--T:148-->
 +
Параметры запроса:
  
параметры запроса: (string) token
+
#(int) controller_id,
 +
#(string) token
  
 +
<!--T:149-->
 
Пример запроса:  
 
Пример запроса:  
 
<pre>
 
<pre>
 
{
 
{
 +
"controller_id": 1 ,
 
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"
 
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"
 
}
 
}
 
</pre>
 
</pre>
response:
 
параметры ответа: (object)
 
пример:
 
{
 
 
}
 
________________________________________
 
  
 
+
<!--T:150-->
 
+
Ответ:
= Получение метеоданных (last) =
+
 
+
Пример ответа (data):  
request:
 
Request URL: [site]/api/device/meteo-last/
 
 
 
параметры запроса:
 
 
 
(string) token,
 
 
 
(int) device_id
 
 
 
Пример запроса:  
 
 
<pre>
 
<pre>
 
{
 
{
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae",
+
"0":{
"device_id": 130
+
"id":"122",
}
+
"external_id":"19", //id на контроллере
</pre>
+
"controller_id":"6",
response:
+
"name":"Сирена",
 
+
"type_id":"2",  //тип устройства
параметры ответа: (object)
+
"codes":":{    //коды (кнопки)
 
+
"0":{
Пример ответа:  
+
"id":"218",
 
+
"external_cod_id":"32",
<pre>
+
"device_id":"122",
{
+
"name":"ON",
"id":"4046",
+
"code":"3675192",
"controller_name":"AS_7FD6785CCF5D",
+
"protocol":"1",
"internal_id":"55",
+
"pulse_len":null,
"device_id":"130",
+
"group_1":"1",
"name":"7",
+
"group_2":"0",
"temp":"240",
+
"group_3":"0",
"hum":"245",
+
"group_4":"0",
"illum":"0",
+
"group_5":"0",
"pres":"1239",
+
"group_6":"0",
"volt":"32",
+
"group_7":"0",
"date_time":"2016-03-02 21:09:40",
+
"group_8":"0",
"new":"0"
+
"active":"1"
}
+
},
</pre>
+
"1":{ ... }
 
+
},
= Получение метеоданных за период (period) =
+
"state":"1",
request:
+
"on_dashboard":"1", //показывать на главной
 
+
"active":"1"
Request URL: [site]/api/device/meteo-period/
+
},
 
+
"1":{
параметры запроса:
+
"id":"120",
 +
"external_id":"22",
 +
"controller_id":"6",
 +
"name":"Пульт 4кн бел",
 +
"type_id":"3",
 +
"codes": ... ,
 +
"state":"1",
 +
"on_dashboard":"0",
 +
"active":"1"
 +
}
 +
 +
</pre>  
  
(string) token,
 
  
(int) device_id,
+
== Информация об устройстве (info) == <!--T:151-->
 +
 
 +
<!--T:152-->
 +
Запрос:
 +
 
 +
<!--T:153-->
 +
Request URL: [site]/api/device/info/
 +
 
 +
<!--T:154-->
 +
Параметры запроса:
  
(int) period
+
<!--T:155-->
 +
#(int) controller_id,
 +
#(int) device_id,
 +
#(string) token
  
 +
<!--T:158-->
 
Пример запроса:  
 
Пример запроса:  
 
<pre>
 
<pre>
 
{
 
{
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae",
+
"controller_id": 1 ,
"device_id": 130,
+
"device_id": 122,
"period": 1 // количество дней
+
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"
 
}
 
}
 
</pre>
 
</pre>
  
response:
+
<!--T:159-->
 
+
Ответ:
параметры ответа: (array to objects)
+
 
+
Пример ответа (data):  
Пример ответа:  
 
 
<pre>
 
<pre>
[
+
{
{
+
"id":"122",
"id":"4065",
+
"external_id":"19",
"controller_name":"AS_7FD6785CCF5D",
+
"controller_id":"6",
"internal_id":"55",
+
"name":"Сирена",
"device_id":"130",
+
"type_id":"2",
"name":"7",
+
"codes"
"temp":"240",
+
"0"
"hum":"523",
+
"id":"218",
"illum":"0",
+
"external_cod_id":"32",
"pres":"1239",
+
"device_id":"122",
"volt":"32",
+
"name":"ON",
"date_time":"2017-07-30 21:11:07",
+
"code":"3675192",
"new":"0"
+
"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",
"id":"4067",
+
"on_dashboard":"1",
"controller_name":"AS_7FD6785CCF5D
+
"active":"1",
...
+
"alias":"xxx",
},
+
"send_sms ":0,
]
+
"voice_call":0,
 +
place"
 +
"name":null,
 +
"color":null
 +
}
 +
}
 +
 
 
</pre>
 
</pre>
  
= Получение данных электропитания (last) =
+
== Обновление информации об устройстве (update) == <!--T:161-->
+
 
request:
+
<!--T:162-->
Request URL: [site]/api/device/electro-last/
+
Запрос:
  
параметры запроса:
+
<!--T:163-->
 +
Request URL: [site]/api/device/update/
  
(string) token,
+
<!--T:164-->
 +
Параметры запроса:
  
(int) device_id
+
<!--T:165-->
 +
#(int) device_id,
 +
#(string) name,
 +
#(int) active,
 +
#(string) token,
  
Пример запроса:  
+
<!--T:169-->
 +
Пример запроса (data):
 +
 
<pre>
 
<pre>
 
{
 
{
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae",
+
"device_id": 107,  // local device id
"device_id": 130
+
"name": "New name", // new name
 +
"active": 1,
 +
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"
 
}
 
}
 
</pre>
 
</pre>
  
response:
+
Ответ:
 
+
параметры ответа: (object)
+
Пример ответа (data):  
 
 
Пример ответа:  
 
  
 
<pre>
 
<pre>
 
{
 
{
"id":"318",
+
"result" : "Ok"
"controller_id":"11",
+
}
"external_id":"2",
+
</pre>
"device_id":"125",
+
 
"name":"23",
+
== Удаление устройства (delete) == <!--T:171-->
"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"
 
}
 
</pre>  
 
  
= Получение данных электропитания за период (period) =
+
<!--T:172-->
+
Запрос:
request:
 
  
Request URL: [site]/api/device/electro-period/
+
<!--T:173-->
 +
Request URL: [site]/api/device/delete/
  
параметры запроса:
+
<!--T:174-->
 +
Параметры запроса:
  
(string) token,
+
<!--T:175-->
 +
#(int) device_id,
 +
#(string) token
  
(int) device_id,
+
<!--T:177-->
 
+
Пример запроса:
(int) period
 
  
Пример запроса:
 
 
<pre>
 
<pre>
 
{
 
{
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae",
+
"device_id": 107,   // local device id
"device_id": 130,
+
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"
"period": 1 // количество дней
 
 
}
 
}
 
</pre>
 
</pre>
response:
 
  
параметры ответа: (array to objects)
+
<!--T:178-->
 +
Ответ:
 +
 
 +
<!--T:180-->
 +
Пример ответа (data):
  
Пример ответа:
 
 
 
<pre>
 
<pre>
[
+
{
{
+
"result" : "Ok"
"id":"318",
+
}
"controller_id":"11",
+
</pre>
"external_id":"2",
+
 
"device_id":"125",
+
== Получение метеоданных (last) == <!--T:182-->
"name":"23",
+
 
"token":"747D3844ABD35B08F27D18D15D7178B7AF99A754D805633928D4362D19B4AEC2",
+
<!--T:183-->
"last_seen":"2017-07-21 04:20:27",
+
Запрос:
"available":"1",
+
 
"voltage":"24",
+
Request URL: [site]/api/device/meteo-last/
"have_voltage":"1",
+
 
"current":"2147483647",
+
<!--T:184-->
"have_current":"1",
+
Параметры запроса:
"supp_voltage":"33",
+
 
"date_create":"2017-07-21 01:20:33",
+
<!--T:185-->
"new":"0"
+
#(string) token,
},
+
#(int) device_id
{
+
 
"id":"318",
+
<!--T:187-->
"controller_id":"11",
+
Пример запроса:
...
 
},
 
]
 
</pre>
 
  
= ?? Получение данных о сторонних устройствах (other-last) =
 
 
Метод возвращает информацию о последнем обнаруженном стороннем устройстве.
 
 
request:
 
 
Request URL: [site]/api/device/other-last/
 
 
Параметры запроса:
 
 
(string) token,
 
 
(int) device_id
 
 
Пример запроса:
 
 
<pre>
 
<pre>
 
{
 
{
 
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae",
 
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae",
"device_id": 118
+
"device_id": 130
 
}
 
}
 
</pre>
 
</pre>
response:
 
  
параметры ответа: (object)
+
Ответ:
  
Пример ответа:  
+
<!--T:189-->
 +
Пример ответа (data):
 +
 
 +
<!--T:190-->
 
<pre>
 
<pre>
 
{
 
{
"id":"1301",
+
"id":"4046",
"controller_id":"6",
+
"controller_name":"AS_7FD6785CCF5D",
"device_id":"118",
+
"internal_id":"55",
"name":"Розетка",
+
"device_id":"130",
"code":"81",
+
"name":"7",
"pulse_len":null,
+
"temp":"240",
"bit_len":null,
+
"hum":"245",
"protocol":null,
+
"illum":"0",
"groups":null,
+
"pres":"1239",
"type":null,
+
"volt":"32",
"date_time":"2017-08-21 04:55:18",
+
"date_time":"2016-03-02 21:09:40",
"active":null,
+
"new":"0"
"new":"1"
 
 
}
 
}
 
</pre>
 
</pre>
  
 +
== Получение метеоданных за период (period) == <!--T:191-->
  
=?? (period) =
+
Запрос:
request:
 
  
Request URL: [site]/api/device/other-period/
+
<!--T:192-->
 +
Request URL: [site]/api/device/meteo-period/
  
параметры запроса:
+
<!--T:193-->
 
+
Параметры запроса:
(string) token,
 
  
 +
<!--T:194-->
 +
#(string) token,
 
(int) device_id,
 
(int) device_id,
 +
#(int) period
  
(int) period
+
<!--T:197-->
 
+
Пример запроса:
Пример запроса:  
+
 +
<pre>
 
{
 
{
 
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae",
 
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae",
"device_id": 118,
+
"device_id": 130,
 
"period": 1 // количество дней  
 
"period": 1 // количество дней  
 
}
 
}
response:
+
</pre>
 +
 
 +
<!--T:198-->
 +
Ответ:
 +
 
 +
<!--T:199-->
 +
параметры ответа (array to objects):
  
параметры ответа: (array to objects)
+
<!--T:200-->
 +
Пример ответа (data):
  
Пример ответа:
 
 
<pre>
 
<pre>
{
+
[
"id":"1301",
+
{
"controller_id":"6",
+
"id":"4065",
"device_id":"118",
+
"controller_name":"AS_7FD6785CCF5D",
"name":"Розетка",
+
"internal_id":"55",
"code":"81",
+
"device_id":"130",
"pulse_len":null,
+
"name":"7",
"bit_len":null,
+
"temp":"240",
"protocol":null,
+
"hum":"523",
"groups":null,
+
"illum":"0",
"type":null,
+
"pres":"1239",
"date_time":"2017-08-21 04:55:18",
+
"volt":"32",
"active":null,
+
"date_time":"2017-07-30 21:11:07",
"new":"1"
+
"new":"0"
 
},
 
},
 
{
 
{
 
"id":"4067",
 
"id":"4067",
"controller_id":"6",
+
"controller_name":"AS_7FD6785CCF5D
 
...
 
...
}
+
},
 +
]
 
</pre>
 
</pre>
________________________________________
 
  
=== Ошибки: ===
+
== Получение данных электропитания (last) == <!--T:201-->
 +
 +
Запрос:
 +
 
 +
Request URL: [site]/api/device/electro-last/
 +
 
 +
<!--T:202-->
 +
Параметры запроса:
 +
 
 +
<!--T:203-->
 +
#(string) token,
 +
#(int) device_id
  
параметры ошибки:
+
<!--T:205-->
 +
Пример запроса:
 
   
 
   
пример:
 
 
<pre>
 
{
 
"errors":{
 
"password": [
 
"Incorrect username."
 
]
 
}
 
}
 
</pre>
 
 
 
= Обновление статуса контроллера (update-status) =
 
 
request:
 
 
Request URL: [site]/api/ ctrl/update-status/
 
 
Параметры запроса:
 
 
(string) token,
 
 
(int) controller_id
 
 
Пример запроса:
 
 
<pre>
 
<pre>
 
{
 
{
 
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae",
 
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae",
"controller_id": 122
+
"device_id": 130
 
}
 
}
 
</pre>
 
</pre>
  
response:
+
<!--T:206-->
 +
Ответ:
  
параметры ответа:
+
<!--T:208-->
 +
Пример ответа (data):  
  
Пример ответа:
+
<!--T:209-->
 
<pre>
 
<pre>
 
{
 
{
"error":null,
+
"id":"318",
"data":{
+
"controller_id":"11",
"resuls":"Ok"
+
"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"
 
}
 
}
</pre>
+
</pre>  
  
= Получение актуального статуса Контроллера (get-status) =  
+
== Получение данных электропитания за период (period) == <!--T:210-->
request:
+
 +
Запрос:
  
Request URL: [site]/api/ ctrl/get-status/
+
<!--T:211-->
 +
Request URL: [site]/api/device/electro-period/
  
параметры запроса:
+
<!--T:212-->
 +
Параметры запроса:
  
(string) token,
+
<!--T:213-->
 +
#(string) token,
 +
#(int) device_id,
 +
#(int) period
  
(int) controller_id
+
<!--T:216-->
 +
Пример запроса:
  
Пример запроса:
 
 
<pre>
 
<pre>
 
{
 
{
 
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae",
 
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae",
"controller_id": 122
+
"device_id": 130,
 +
"period": 1 // количество дней
 
}
 
}
 
</pre>
 
</pre>
  
response:
+
Ответ:
  
параметры ответа:
+
<!--T:217-->
 +
Параметры ответа: (array to objects)
  
Пример ответа:
+
<!--T:218-->
 +
Пример ответа (data):
 +
 
<pre>
 
<pre>
{
+
[
"error":null,
+
{
"data":{
+
"id":"318",
"status":1
+
"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",
 +
...
 +
},
 +
]
 
</pre>
 
</pre>
  
Поле “status” может принимать следующие значения:
+
== Получение данных о сторонних устройствах (other-last) == <!--T:219-->
• 0 – офлайн
+
 
• 1 – онлайн
+
<!--T:220-->
• 2 – онлайн, после включения питания
+
Метод возвращает информацию о последнем обнаруженном стороннем устройстве.
 +
 +
Запрос:
  
= Добавление устройств через wizard =
+
<!--T:221-->
 +
Request URL: [site]/api/device/other-last/
  
 +
<!--T:222-->
 +
Параметры запроса:
  
== Датчик открытия двери (create-door-open-sensor) ==
+
<!--T:223-->
 +
#(string) token,
 +
#(int) device_id
  
URL: [site]/api/wizard/create-door-open-sensor
+
<!--T:225-->
 
+
Пример запроса:
Params:
+
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 //Название кода садящейся батареи
 
 
 
RESPONSE:
 
 
<pre>
 
<pre>
 
{
 
{
data:{
+
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae",
'response': 'OK'
+
"device_id": 118
},
 
error: null
 
 
}
 
}
 
</pre>
 
</pre>
  
После отправки параметров ожидается срабатывание добавляемого устройства. При срабатывании происходит процесс добавления, и лишь после этого приходит ответ.
+
Ответ:
  
 +
<!--T:227-->
 +
Пример ответа (data):
 +
<pre>
 +
{
 +
"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"
 +
}
 +
</pre>
  
==  Датчик затопления (create-flood-sensor) ==
 
 
Request URL: [site]/api/wizard/create-flood-sensor
 
 
Params:
 
  
controller_id (required): int
+
== Получение данных о сторонних устройствах за период (other-period) == <!--T:228-->
  
token (required): string, 64
+
Запрос:
  
device_name (optional): string, 256
+
<!--T:229-->
code_alarm (optional): string, 64 //Название кода оповещения
+
Request URL: [site]/api/device/other-period/
  
code_tamper (optional): string, 64 //Название кода вмешательства
+
<!--T:230-->
 +
Параметры запроса:
 +
 
 +
<!--T:231-->
 +
#(string) token,
 +
#(int) device_id,
 +
#(int) period
  
code_low_battery (optional): string, 64 //Название кода садящейся батареи
+
<!--T:234-->
 +
Пример запроса:
  
RESPONSE:
+
<pre>  
<pre>
 
 
{
 
{
data: {
+
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae",
'response': 'OK'
+
"device_id": 118,
},
+
"period": 1 // количество дней
error: null
 
 
}
 
}
 
</pre>
 
</pre>
---------------------------------------
 
После отправки параметров ожидается срабатывание добавляемого устройства. При срабатывании происходит процесс добавления, и лишь после этого приходит ответ.
 
  
 +
Ответ:
  
== Пульт,4 кнопки (create-console) ==
+
<!--T:236-->
 +
Пример ответа (data):
 +
 +
<pre>
 +
{
 +
"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",
 +
...
 +
}
 +
</pre>
  
Request URL: [site]/api/wizard/create-console
+
= Wizard добавления устройств  = <!--T:237-->
  
Params:
 
  
controller_id (required): int
+
== Датчик открытия двери (create-door-open-sensor) == <!--T:238-->
  
token (required): string, 64
+
Запрос:
  
device_name (optional): string, 256
+
<!--T:239-->
 +
URL:  [site]/api/wizard/create-door-open-sensor
  
code_lock (optional): string, 64 //Название кода блокировки
+
<!--T:240-->
 +
Параметры запроса:
  
code_unlock (optional): string, 64 //Название кода разблокировки
+
#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 //Название кода садящейся батареи
  
code_s (optional): string, 64 //Название кода s
+
<!--T:241-->
 +
Ответ:  
  
code_alarm (optional): string, 64 //Название кода оповещения
+
Пример ответа:
 
+
RESPONSE:
 
 
<pre>
 
<pre>
 
{
 
{
data: {
+
data:{
 
'response': 'OK'
 
'response': 'OK'
},
+
},
 
error: null
 
error: null
 
}
 
}
 
</pre>
 
</pre>
---------------------------------------
+
 
 +
<!--T:242-->
 
После отправки параметров ожидается срабатывание добавляемого устройства. При срабатывании происходит процесс добавления, и лишь после этого приходит ответ.
 
После отправки параметров ожидается срабатывание добавляемого устройства. При срабатывании происходит процесс добавления, и лишь после этого приходит ответ.
  
 +
==  Датчик затопления (create-flood-sensor) == <!--T:243-->
  
== Сирена (create-siren) ==
+
Запрос:
  
Request URL: [site]/api/wizard/create-siren
+
<!--T:244-->
 +
Request URL: [site]/api/wizard/create-flood-sensor
  
Params:
+
<!--T:245-->
 +
Параметры запроса:
  
controller_id (required): int
+
<!--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 //Название кода садящейся батареи
  
token (required): string, 64
+
<!--T:251-->
 +
Ответ:
  
device_name (optional): string, 256
+
Пример ответа:
 
+
code_on (optional): string, 64 //Название кода включения
 
 
 
code_off (optional): string, 64 //Название кода выключения
 
 
 
code_blank (optional): string, 64 //Название кода blank
 
 
 
RESPONSE:
 
 
<pre>
 
<pre>
 
{
 
{
Строка 1336: Строка 1573:
 
}
 
}
 
</pre>
 
</pre>
---------------------------------------
 
Перед отправкой параметров необходимо перевести сирену в режим обучения.
 
  
 +
После отправки параметров ожидается срабатывание добавляемого устройства. При срабатывании происходит процесс добавления, и лишь после этого приходит ответ.
  
== Метеостанция: получение списка обнаруженных метеостанций за последние 10 минут (get-meteos) ==
 
Request URL: [site]/api/wizard/get-meteos
 
  
Params:
+
== Пульт,4 кнопки (create-console) == <!--T:252-->
  
controller_id (required): int
+
Запрос:
  
token (required): string, 64
+
<!--T:253-->
 +
Request URL: [site]/api/wizard/create-console
  
RESPONSE:
+
<!--T:254-->
<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: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 //Название кода оповещения
  
Request URL: [site][site]/api/wizard/create-meteo
+
<!--T:262-->
 +
Ответ:
  
Params:
+
Пример ответа:
 
 
controller_id (required): int
 
 
 
token (required): string, 64
 
 
 
meteo_num (required): int //Получается в списке выше
 
 
 
device_name (optional): string, 256
 
  
RESPONSE:
 
 
<pre>
 
<pre>
 
{
 
{
"error":null,
+
data: {
"data":{
+
'response': 'OK'
"response":"OK"
+
},
}
+
error: null
 
}
 
}
 
</pre>
 
</pre>
  
 +
После отправки параметров ожидается срабатывание добавляемого устройства. При срабатывании происходит процесс добавления, и лишь после этого приходит ответ.
  
  
== Водопроводный кран ==
+
== Сирена (create-siren) == <!--T:263-->
  
Порядок добавления крана:
+
Запрос:
1) Сгенерировать коды
 
2) Зажать на кране кнопку, пока кран не мигнёт трижды
 
3) Отправить один код
 
4) Нажать на кране кнопку однократно
 
5) Зажать на кране кнопку, пока не мигнёт 4 раза
 
6) Отправить второй код из сгенерированных
 
7) Нажать на кране кнопку однократно
 
8) Отправить запрос на создание крана.
 
  
 +
<!--T:264-->
 +
Request URL: [site]/api/wizard/create-siren
  
=== Генерация кодов ===
+
<!--T:265-->
 +
Параметры запроса:
  
Request URL: [site]/api/wizard/create-codes
+
<!--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
  
Params:
+
<!--T:272-->
 +
Ответ:
  
controller_id (required): int
+
Пример ответа:
 
+
token (required): string, 64
 
 
 
Response:
 
 
<pre>
 
<pre>
 
{
 
{
"error":null,
+
data: {
"data":{"response":{"id":30,"masks":"[6,4,0,1]","code_1":"9920950","code_2":"9920948","code_3":"9920944","code_4":"9920945"}
+
'response': 'OK'
}
+
},
 +
error: null
 
}
 
}
 
</pre>
 
</pre>
 +
 +
Перед отправкой параметров необходимо перевести сирену в режим обучения.
  
  
=== Выполнение кода ===
+
== Метеостанция: получение списка обнаруженных метеостанций за последние 10 минут (get-meteos) == <!--T:273-->
  
Request URL: [site]/api/wizard/execute-code
+
Запрос:
 +
 
 +
Request URL: [site]/api/wizard/get-meteos
  
Params:
+
<!--T:274-->
 +
Параметры запроса:
  
controller_id (required): int
+
<!--T:275-->
 +
#controller_id (required): int
 +
#token (required): string, 64
  
token (required): string, 64
+
<!--T:277-->
 +
Ответ:
  
code (required): int // Берется из сгенерированных
+
Пример ответа:
  
Response:
 
 
<pre>
 
<pre>
 
{
 
{
error: null,
+
"error":null,
data: {
+
"data":[
"response":"OK"
+
{
}
+
"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>
 
</pre>
  
=== Добавление крана ===
+
== Метеостанция: добавление (create-meteo) == <!--T:278-->
  
Request URL: [site]/api/wizard/create-crane-by-codes
+
Запрос:
  
Params:
+
<!--T:279-->
 +
Request URL: [site][site]/api/wizard/create-meteo
  
controller_id (required): int
+
<!--T:280-->
 +
Параметры запроса:
  
token (required): string, 64
+
<!--T:281-->
 +
#controller_id (required): int
 +
#token (required): string, 64
 +
#meteo_num (required): int //Получается в списке выше
 +
#device_name (optional): string, 256
  
code_1 (required): int
+
<!--T:285-->
 +
Ответ:
  
code_2 (required): int
+
Пример ответа:
 
+
device_name (optional): string, 256
 
 
 
code_open (optional): string, 64 //Название кода открытия
 
 
 
code_close (optional): string, 64 //Название кода закрытия
 
 
 
RESPONSE:
 
 
<pre>
 
<pre>
 
{
 
{
data:{'response': 'OK'},
+
"error":null,
error: null
+
"data":{
 +
"response":"OK"
 +
}
 
}
 
}
 
</pre>
 
</pre>
  
== Добавление розетки ==
+
== Водопроводный кран == <!--T:286-->
  
порядок добаления розетки следующий:
+
<!--T:287-->
 +
Порядок добавления крана:
  
 
1) Сгенерировать коды
 
1) Сгенерировать коды
  
2) Зажать на розетке кнопку, пока она не начнет мигать
+
<!--T:288-->
 +
2) Зажать на кране кнопку, пока кран не мигнёт трижды
  
 +
<!--T:289-->
 
3) Отправить один код
 
3) Отправить один код
  
4) Зажать на розетке кнопку, пока она не начнет мигать
+
<!--T:290-->
 +
4) Нажать на кране кнопку однократно
  
5) Отправить второй код из сгенерированых
+
<!--T:291-->
 +
5) Зажать на кране кнопку, пока не мигнёт 4 раза
  
6) Отправить запрос на создание розетки
+
<!--T:292-->
 +
6) Отправить второй код из сгенерированных
  
 +
<!--T:293-->
 +
7) Нажать на кране кнопку однократно
  
=== Генерация кодов (create-codes) ===
+
<!--T:294-->
 +
8) Отправить запрос на создание крана.
  
Request URL: [site]/api/wizard/create-codes
 
  
Params:
+
=== Генерация кодов === <!--T:295-->
  
controller_id (required): int
+
Запрос:
  
token (required): string, 64
+
<!--T:296-->
 +
Request URL: [site]/api/wizard/create-codes
  
socket (required): любое значение.
+
<!--T:297-->
 +
Параметры запроса:
 +
 
 +
<!--T:298-->
 +
#controller_id (required): int
 +
#token (required): string, 64
 +
 
 +
<!--T:300-->
 +
Ответ:
 +
 
 +
Пример ответа:
  
Response:
 
 
<pre>
 
<pre>
 
{
 
{
 
"error":null,
 
"error":null,
"data":{
+
"data":
"response":{"id":30,"masks":"[257, 258]","code_1":"8737025","code_2":"8737026"}
+
{
 +
"response":{
 +
"id":30,
 +
"masks":"[6,4,0,1]",
 +
"code_1":"9920950",
 +
"code_2":"9920948",
 +
"code_3":"9920944",
 +
"code_4":"9920945"
 +
}
 
}
 
}
 
}
 
}
Строка 1506: Строка 1787:
  
  
=== Выполнение кода (execute-code) ===
+
=== Выполнение кода === <!--T:301-->
  
 +
Запрос:
 +
 +
<!--T:302-->
 
Request URL: [site]/api/wizard/execute-code
 
Request URL: [site]/api/wizard/execute-code
  
Params:
+
<!--T:303-->
 +
Параметры запроса:
  
controller_id (required): int
+
<!--T:304-->
 +
#controller_id (required): int
 +
#token (required): string, 64
 +
#code (required): int // Берется из сгенерированных
  
token (required): string, 64
+
<!--T:307-->
 +
Ответ:
  
code (required): int // Берется из сгенерированных
+
Пример ответа:
  
Response
 
 
<pre>
 
<pre>
 
{
 
{
 
error: null,
 
error: null,
data: {'response' => 'OK'}
+
data: {
 +
"response":"OK"
 +
}
 
}
 
}
 
</pre>
 
</pre>
  
 +
=== Добавление крана === <!--T:308-->
  
=== Добавление розетки (create-socket) ===
+
Запрос:
  
Request URL: [site]/api/wizard/create-socket
+
<!--T:309-->
 +
Request URL: [site]/api/wizard/create-crane-by-codes
  
Params:
+
<!--T:310-->
 +
Параметры запроса:
  
controller_id (required): int
+
<!--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 //Название кода закрытия
  
token (required): string, 64
+
<!--T:318-->
 +
Ответ:  
  
code_1 (required): int
+
Пример ответа:
 
 
code_2 (required): int
 
 
 
device_name (optional): string, 256
 
 
 
code_off (optional): string, 64 //Название кода открытия
 
  
code_on (optional): string, 64 //Название кода закрытия
 
 
RESPONSE:
 
 
<pre>
 
<pre>
 
{
 
{
data: {'response':'OK'},
+
data:{'response': 'OK'},
 
error: null
 
error: null
 
}
 
}
 
</pre>
 
</pre>
  
= Коды =
+
== Добавление розетки == <!--T:319-->
  
== Получение информации о коде (info) ==
+
<!--T:320-->
 +
Порядок добавления розетки следующий:
  
request:
+
<!--T:321-->
 +
1) Сгенерировать коды
  
Request URL: [site]/api/property/info/
+
<!--T:322-->
 +
2) Зажать на розетке кнопку, пока она не начнет мигать
 +
 
 +
<!--T:323-->
 +
3) Отправить один код
 +
 
 +
<!--T:324-->
 +
4) Зажать на розетке кнопку, пока она не начнет мигать
 +
 
 +
<!--T:325-->
 +
5) Отправить второй код из сгенерированых
 +
 
 +
<!--T:326-->
 +
6) Отправить запрос на создание розетки
  
параметры запроса:
 
(int) controller_id,
 
  
(int) device_id,
+
=== Генерация кодов (create-codes) === <!--T:327-->
  
(int) code_id,
+
Запрос:
  
(string) token
+
<!--T:328-->
 +
Request URL: [site]/api/wizard/create-codes
  
Пример запроса:  
+
<!--T:329-->
<pre>
+
Параметры запроса:
{
+
 
"controller_id": 6,
+
<!--T:330-->
"device_id": 109,
+
#controller_id (required): int
"code_id": 192,
+
#token (required): string, 64
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"
+
#socket (required): любое значение.
  
}
+
<!--T:333-->
</pre>
+
Ответ:
  
response:
+
Пример ответа:
параметры ответа:  
 
  
Пример ответа:
 
 
<pre>
 
<pre>
 
{
 
{
"id":"192",
+
"error":null,
"external_cod_id":"67",
+
"data":{
"device_id":"109",
+
"response":{"id":30,"masks":"[257, 258]","code_1":"8737025","code_2":"8737026"}
"name":"4 OFF",
+
}
"code":"12209156",
 
"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"
 
 
}
 
}
 
</pre>
 
</pre>
  
 +
=== Выполнение кода  (execute-code) === <!--T:334-->
  
 +
Запрос:
  
 +
<!--T:335-->
 +
Request URL: [site]/api/wizard/execute-code
  
== Изменение имени кода (update-code-name) ==
+
<!--T:336-->
 +
Параметры запроса:
  
Request URL: [site]/api/device/update-code-name
+
<!--T:337-->
 +
#controller_id (required): int
 +
#token (required): string, 64
 +
#code (required): int // Берется из сгенерированных
  
Request Params:
+
<!--T:340-->
 +
Ответ:
  
token (required): string(64)
+
Пример ответа:
 
+
code_id (required): int
 
 
 
name (optional): string(255)
 
 
 
SUCCESS RESPONSE:
 
 
<pre>
 
<pre>
 
{
 
{
data: {
+
error: null,
'message': "OK"
+
data: {'response' => 'OK'}
},
 
error: null
 
 
}
 
}
 
</pre>
 
</pre>
  
==  Получение кодов по типу сигнала (get-codes-by-subtype) ==
 
  
Request URL: [site]/api/device/get-codes-by-subtype
+
=== Добавление розетки (create-socket) === <!--T:341-->
  
Request Params:
+
Запрос:
 +
 
 +
<!--T:342-->
 +
Request URL: [site]/api/wizard/create-socket
  
token (required): string(64)
+
<!--T:343-->
 +
Параметры запроса:
  
device_subtype_id (optional): int, default 0.
+
<!--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 //Название кода закрытия
  
==  Получение списка кодов (get-codes) ==
+
<!--T:351-->
 +
Ответ:
  
Request URL: [site]/api/device/get-codes
+
Пример ответа:
 +
 +
<pre>
 +
{
 +
data: {'response':'OK'},
 +
error: null
 +
}
 +
</pre>
 +
 
 +
= Сценарии = <!--T:352-->
 +
 
 +
== Получение списка сценариев (list) == <!--T:353-->
 +
 
 +
<!--T:354-->
 +
Запрос:
  
PARAMS:
+
Request URL: [site]/api/scheduler/list/
token (required): string 64
 
  
controller_id (required): int
+
<!--T:355-->
 +
Параметры запроса: (string) token
  
SUCCESS RESPONSE:
+
<!--T:356-->
 +
Пример запроса:
 +
 
<pre>
 
<pre>
 
{
 
{
data: [
+
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"
{
+
}
devices: [
+
</pre>
{
+
 
id: 13
+
<!--T:357-->
external_id: 7,
+
Ответ:
controller_id: 5,
+
 
name: "Simple device",
+
<!--T:359-->
type_id: 2,
+
Пример ответа:
password: null,
+
codes: "a:4:{i:0;i:46;i:1;i:47;i:2;i:48;i:3;i:45;}",
+
<pre>
state: 1,
+
{
on_dashboard: 0,
+
"error":null,
active: 1,
+
"data"
new: 1,
+
"schedulers":[
family: DEVICE_FAMILY_RADIO,
+
{
camera_id: null,
+
"id":83,
camera_host: null
+
"external_id":23,
},
+
"name":"Test 444",
{
+
"operation":"local",
id: 14
+
"armed":2,
external_id: 8,
+
"type":"meteo",
controller_id: 5,
+
"active":0,
name: "Simple device",
+
"action"
type_id: 2,
+
"action_id":1,
password: null,
+
"controller_id":109,
codes: "a:4:{i:0;i:46;i:1;i:47;i:2;i:48;i:3;i:45;}",
+
"device_id":1747,
state: 1,
+
"code_id":1100,
on_dashboard: 0,
+
"device_external_id":64,
active: 1,
+
"armed":1,
new: 1,
+
"groups":7,
family: DEVICE_FAMILY_RADIO,
+
"sensor_type":"1",
camera_id: null,
+
"date":"00:00",
camera_host: null
+
"repetition":"1",
},
+
"logic_operation":"=",
],
+
"value":"9"
code: {
+
},
id: 12,
+
"target"
controller_id: 5,
+
"target_id":2,
device_type_id: 2,
+
"controller_id":109,
code: 498654,
+
"device_id":0,
protocol: 1,
+
"device_external_id":0,
bit_len: 32,
+
"code_id":0,
pulse_len: 86,
+
"external_cod_id":0,
freq: 77,
+
"armed":0,
address: 94,
+
"groups":168
num: 1,
+
}
date_create: '2018-04-13 18:29:11"
+
},
 +
{
 +
"id":84,
 +
"external_id":24,
 +
...
 +
}]
 +
}
 +
}
 +
 
 +
<!--T:360-->
 +
</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>
 +
{
 +
"controller_id": 6 ,
 +
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae",
 +
}
 +
</pre>
  
}
+
<!--T:368-->
},
+
Ответ:
  
{
+
<!--T:370-->
devices: [
+
Пример ответа:
{
+
id: 13
+
<pre>
external_id: 7,
+
{
controller_id: 5,
+
"result": "Ok" // ответ что запрос ушел
name: "Simple device",
+
}
type_id: 2,
+
</pre>
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,
+
== Информация о сценарии (info) == <!--T:371-->
active: 1,
+
 
new: 1,
+
<!--T:372-->
family: DEVICE_FAMILY_RADIO,
+
Запрос:
camera_id: null,
+
 
camera_host: null
+
Request URL: [site]/api/scheduler/info/
},
+
 
{
+
<!--T:373-->
id: 14
+
Параметры запроса:
external_id: 8,
+
 
controller_id: 5,
+
<!--T:374-->
name: "Simple device",
+
#(int) scheduler_id,
type_id: 2,
+
#(string) token
password: null,
+
 
codes: "a:4:{i:0;i:46;i:1;i:47;i:2;i:48;i:3;i:45;}",
+
<!--T:376-->
state: 1,
+
Пример запроса:
on_dashboard: 0,
+
active: 1,
+
<pre>
new: 1,
+
{
family: DEVICE_FAMILY_RADIO,
+
"scheduler_id": 122,
camera_id: null,
+
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"
camera_host: null
+
}
},
+
</pre>
],
+
 
code: {
+
Ответ:
id: 12,
+
 
controller_id: 5,
+
<!--T:378-->
device_type_id: 2,
+
Пример ответа (data):
code: 498654,
+
protocol: 1,
+
<pre>
bit_len: 32,
+
{
pulse_len: 86,
+
"id":107,
freq: 77,
+
"external_id":6,
address: 94,
+
"name":"Test 1.1.1",
num: 1,
+
"operation":"local",
date_create: '2018-04-13 18:29:11"
+
"armed":1,
 
+
"type":"device",
}
+
"active":1,
},  
+
"action":{
},
+
"action_id":1,
error: null,
+
"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>
  
== Добавление кода к устройству (set-code-to-device) ==
 
  
Request URL: [site]/api/device/set-code-to-device
 
  
PARAMS:
+
== Обновление сценариев (update) == <!--T:371-->
 +
 
 +
Обновление состоит из двух запросов: 1) обновление действия, вызывающего событие; 2) обновления целей сработки.
 +
При этом запросы можно делать независимо друг от друга.
  
token (required): string 64
+
=== Обновление/добавление действий и событий сценария (Update-action) ===
  
code_id (required): int
+
Request URL: [site]/api/scheduler/update-action/
  
device_id (required): int
+
Параметры запроса:
  
name (optional): string 256
+
#(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"
  
SUCCESS RESPONSE:
+
Пример запроса:
 
<pre>
 
<pre>
 
{
 
{
data: {
+
"scheduler_id": 6 ,
id: 5,
+
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae",
external_cod_id: 15,
+
"name": "New name",
device_id: 14,
+
"active": 1,
name: "Name"
+
"send_sms": 0,  
code: 8463517,
+
"make_call": 1,
protocol: 0,
+
"armed": 2,  
pulse_len: 86,  
+
"action_id" : 2,
active: 1,
+
"action_device_id" : 2,
},
+
"action_code_id" : 4,
error: null
+
"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>
 +
Ответ:
  
== Удаление кода (remove-code) ==
+
Пример ответа:
 
 
Request URL: [site]/api/device/remove-code
 
PARAMS:
 
 
 
token (required): string 64
 
 
 
code_id (required): int
 
 
 
SUCCESS RESPONSE:
 
 
<pre>
 
<pre>
 
{
 
{
data: {
+
"result": "Ok" // ответ о том, что запрос отправлен.
message: "OK"
 
},
 
error: null
 
 
}
 
}
 
</pre>
 
</pre>
  
= Места =
+
=== Обновление цели события (Update-target) ===
  
== Получение списка мест (places-list) ==
 
  
Request URL: [site]/api/places/places-list
+
Request URL: [site]/api/scheduler/update-target/
  
Request params:
+
Параметры запроса:
  
token (required): string, 64
+
#(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
  
Response:  
+
Пример запроса:
 
<pre>
 
<pre>
 
{
 
{
"error":null,
+
"target_id": 6 ,
"data":{
+
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae",  
"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}]
+
"target_type_id" : 2,
}
+
"target_device_id" : 2,
 +
"target_code_id" : 4,
 +
"target_armed" : 0,
 +
"target_groups" : 7
 
}
 
}
 
</pre>
 
</pre>
  
 +
Ответ:
  
== Создание места (create) ==
+
Пример ответа:
  
 +
<pre>
 +
{
 +
"result": "Ok" // ответ о том, что запрос отправлен.
 +
}
 +
</pre>
  
Request URL: [site]/api/places/create
 
  
Request params:
+
= Логи пользователя (logs) = <!--T:379-->
  
token (required): string, 64
+
Запрос:
  
root (optional): int, default 1
+
<!--T:380-->
 +
Request URL: [site]/api/profile/logs/
  
lft (optional): int, from 1 to 5 //В сумме с rgt должно быть 5
+
<!--T:381-->
 +
Параметры запроса: (string) token, (int) page, (int) limit
  
rgt (optional): int, from 1 to 5 //В сумме с lft должно быть 5
+
<!--T:382-->
 +
Пример запроса:
 +
 +
<pre>
 +
{
 +
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae",
 +
"page": 1 // номер страницы лога
 +
"limit": 20 // количество логов на странице , по умолчанию 20, максимум 100
 +
}
 +
</pre>
  
lvl (optional): int, default 0
+
Ответ:
  
name (optional): string, 64, default 'Simple name'
+
Пример ответа:  
  
icon (optional): string, default '' //Допускаемые параметры -- ключи объекта выше
+
<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>
  
color (optional): string, default: '#ccc' //Любой цвет в формате HEX, решетка в начале обязательна
+
= Коды = <!--T:383-->
  
active (optional): int, default 1
+
== Получение информации о коде (info) == <!--T:384-->
  
selected (optional): int, default 0
+
<!--T:385-->
 +
Запрос:
  
disabled (optional): int, default 0
+
<!--T:386-->
 +
Request URL: [site]/api/property/info/
  
readonly (optional): int, default 0
+
<!--T:387-->
 +
Параметры запроса:
 +
#(int) controller_id,
 +
#(int) device_id,
 +
#(int) code_id,
 +
#(string) token
  
visible (optional): int, default 1
+
<!--T:391-->
 +
Пример запроса:  
  
collapsed (optional): int, default 0
+
<pre>
 +
{
 +
"controller_id": 6,
 +
"device_id": 109,
 +
"code_id": 192,
 +
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"
 +
}
 +
</pre>
  
movable_u (optional): int, default 1
+
<!--T:393-->
 +
Ответ:
  
movable_d (optional): int, default 1
+
<!--T:394-->
 +
Пример ответа (data):  
  
movable_l (optional): int, default 1
+
<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>
  
movable_r (optional): int, default 1
+
== Изменение имени кода (update-code-name) == <!--T:395-->
  
removable (optional): int, default 1
+
Запрос:
 +
<!--T:396-->
 +
Request URL: [site]/api/device/update-code-name
  
removable_all (optional): int, default 0
+
<!--T:397-->
 +
Параметры запроса:
  
inverse_text (optional): string, default 'black'
+
<!--T:398-->
 +
#token (required): string(64)
 +
#code_id (required): int
 +
#name (optional): string(255)
  
 +
<!--T:401-->
 +
Ответ:
  
Response:  
+
Пример ответа:
<pre>
+
 
 +
<pre>
 
{
 
{
error:null,
+
data: {
data: {'message': 'OK'}
+
'message': "OK"
 +
},
 +
error: null
 
}
 
}
 
</pre>
 
</pre>
  
 +
== Редактирование параметров кода (update) ==
  
==  Редактирование места (edit) ==
+
<!--T:401-->
 +
Запрос:
  
Request URL: [site]/api/places/edit
+
<!--T:401-->
 +
Request URL: [site]/api/property/update/
  
Request params:
+
<!--T:401-->
 +
Параметры запроса:
  
token (required): string, 64
+
#(string) token  
 +
#(int) device_id
 +
#(int) code_id
 +
#(string) name // опционально
 +
#(int) active // опционально
 +
#(int) send_sms // опционально
 +
#(int) voice_call // опционально
  
place_id (required): int
+
<!--T:401-->
 +
Пример запроса:
  
root (optional): int, default 1
+
<pre>
 +
{
 +
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae",
 +
"device_id" : 111,
 +
"code_id" : 111,
 +
"send_sms": 1
 +
}
 +
</pre>
  
lft (optional): int, from 1 to 5 //В сумме с rgt должно быть 5
+
<!--T:402-->
 +
Ответ:
  
rgt (optional): int, from 1 to 5 //В сумме с lft должно быть 5
+
<!--T:402-->
 +
Пример ответа (data):
  
lvl (optional): int, default 0
+
<pre>
 +
{
 +
"result": "Ok"
 +
}
 +
</pre>
  
name (optional): string, 64, default 'Simple name'
+
==  Получение кодов по типу сигнала (get-codes-by-subtype) == <!--T:402-->
  
icon (optional): string, default '' //Допускаемые параметры -- ключи объекта выше
+
Запрос:
  
color (optional): string, default: '#ccc' //Любой цвет в формате HEX, решетка в начале обязательна
+
<!--T:403-->
 +
Request URL: [site]/api/device/get-codes-by-subtype
  
active (optional): int, default 1
+
<!--T:404-->
 +
Параметры запроса:
  
selected (optional): int, default 0
+
<!--T:405-->
 +
#token (required): string(64)
 +
#device_subtype_id (optional): int, default 0.
  
disabled (optional): int, default 0
+
Ответ:
  
readonly (optional): int, default 0
+
Пример ответа:
  
visible (optional): int, default 1
+
<pre>
 
 
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'
 
 
 
 
 
Response:
 
<pre>
 
 
{
 
{
error:null,
+
"code"
data: {'message': 'OK'}
+
"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-->
 +
 
 +
Запрос:
  
== Удаление места (delete) ==
+
<!--T:408-->
 +
Request URL: [site]/api/device/get-codes
  
Request URL: [site]/api/places/delete
+
<!--T:409-->
 +
Параметры:
  
Request params:
+
#token (required): string 64
 +
#controller_id (required): int
  
token (required): string, 64
+
Ответ:
  
place_id (required): int
+
<!--T:411-->
 +
Пример ответа:
  
Response:
 
 
<pre>
 
<pre>
 
{
 
{
error:null,
+
data: [
data: {'message': 'OK'}
+
{
}
+
devices: [
</pre>
+
{
 
+
id: 13
 
+
external_id: 7,
 
+
controller_id: 5,
 
+
name: "Simple device",
== Удаление устройства (remove-device) ==
+
type_id: 2,
 
+
password: null,
Request URL: [site]/api/device/remove-device
+
codes: "a:4:{i:0;i:46;i:1;i:47;i:2;i:48;i:3;i:45;}",
 
+
state: 1,
PARAMS:
+
on_dashboard: 0,
 
+
active: 1,
token (required): string (64)
+
new: 1,
 
+
family: DEVICE_FAMILY_RADIO,
device_id (required): int
+
camera_id: null,
 
+
camera_host: null
SUCCESS RESPONSE:  
+
},
 
+
{
<pre>
+
id: 14
{
+
external_id: 8,
data: {message: 'OK'},
+
controller_id: 5,
error: null
+
name: "Simple device",
}
+
type_id: 2,
</pre>
+
password: null,
 
+
codes: "a:4:{i:0;i:46;i:1;i:47;i:2;i:48;i:3;i:45;}",
 
+
state: 1,
=== Удаление устройства (remove-device) ===
+
on_dashboard: 0,
 
+
active: 1,
Request URL: [site]/api/device/remove-device
+
new: 1,
PARAMS:
+
family: DEVICE_FAMILY_RADIO,
 
+
camera_id: null,
token (required): string 64
+
camera_host: null
 
+
},
device_id (required): int
+
],
 
+
code: {
SUCCESS RESPONSE:
+
id: 12,
<pre>
+
controller_id: 5,
{
+
device_type_id: 2,
data: {
+
code: 498654,
message: "OK"
+
protocol: 1,
},
+
bit_len: 32,
error: null
+
pulse_len: 86,
 +
freq: 77,
 +
address: 94,
 +
num: 1,
 +
date_create: '2018-04-13 18:29:11"
 +
 
 +
<!--T:412-->
 
}
 
}
</pre>
+
},  
 
 
 
 
==  передача локального IP Контроллера (get-ip) ==
 
 
 
Request URL: [site]/api/ctrl/get-ip
 
 
 
Request Params:
 
 
 
token (required): string(64);
 
 
 
controller_id (required): int;
 
 
 
SUCCESS RESPONSE:
 
 
 
<pre>
 
{
 
data:'192.168.0.15',
 
error: null
 
}
 
</pre>
 
 
 
 
 
==  Активация подписки Ebus  ==
 
  
 +
<!--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"
  
Получение состояния подписки на Контроллере - “in/subscription/get”:
+
<!--T:414-->
 
+
}
<pre>
+
},
{
+
},
"id": 1, // ID подписки (см. ниже)
+
error: null,
"seq_id": 0
 
 
}
 
}
 
</pre>
 
</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>
+
Пример ответа:
{
 
"seq_id": 0,
 
"remain_time": 100, // оставшееся время в секундах, 4294967295 – неограниченно
 
"success": 0/1
 
}
 
</pre>
 
 
 
Установка подписки на Контроллере - “in/subscription/set”:
 
  
 
<pre>
 
<pre>
 
{
 
{
"seq_id": 0,
+
data: {
"id": 1, // ID подписки (см. ниже)
+
id: 5,
"remain_time": 100 // оставшееся время в секундах, 4294967295 - неограниченно
+
external_cod_id: 15,
 +
device_id: 14,
 +
name: "Name"
 +
code: 8463517,
 +
protocol: 0,
 +
pulse_len: 86,
 +
active: 1,
 +
},
 +
error: null
 
}
 
}
 
</pre>
 
</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>
 
<pre>
 
{
 
{
"seq_id": 0,
+
data: {
"success": 0/1
+
message: "OK"
 +
},
 +
error: null
 
}
 
}
 
</pre>
 
</pre>
  
Идентификаторы подписок:
+
= События = <!--T:428-->
SUBSCRIPTION_EBUS = 1
 
  
Статус Контроллера
+
== Нажатие кнопки на устройстве (event) == <!--T:429-->
  
Контроллер отправляет информацию о своем онлайн/оффлайн статусе в топик “out/status”.
+
<!--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>
 
<pre>
 
{
 
{
"status": 1 // см. ниже
+
"controller_name": " AS_7F26335CCF4B" ,
 +
"device_external_id": 19,
 +
"cod_external_id": 1,
 +
"device_type": 1,
 +
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"
 
}
 
}
 
</pre>
 
</pre>
  
Поле “status” может принимать следующие значения:
+
<!--T:439-->
 +
так как MQTT  односторонний - ответа быть не может. Может быть возвращён ответ, что запрос отправлен:
 +
response:
  
• "0" – оффлайн
+
Ответ:
  
• "1" – онлайн
+
<!--T:441-->
 +
Пример ответа (data):
  
"2" – онлайн, после включения питания
+
<!--T:442-->
 +
<pre>
 +
{
 +
"result": "Ok"
 +
}
 +
</pre>
  
При получении сообщения со статусом "2", портал должен отправить Контроллеру информацию о пользовательских подписках, как это описано в разделе «Подписки».
+
= Места = <!--T:443-->
  
 +
== Получение списка мест (places-list) == <!--T:444-->
  
 +
Запрос:
  
== ?? Установка подписки на Контроллере - “in/subscription/set”: ==
+
<!--T:445-->
<pre>
+
Request URL: [site]/api/places/places-list
 +
 
 +
<!--T:446-->
 +
Параметры запроса: token (required): string, 64
 +
 
 +
<!--T:448-->
 +
Ответ:
 +
 
 +
Пример ответа:
 +
 
 +
<pre>
 
{
 
{
"seq_id": 0,
+
"error":null,
"id": 1, // ID подписки (см. ниже)
+
"data":{
"remain_time": 100 // оставшееся время в секундах, 4294967295 - неограниченно
+
"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>
+
</pre>
 +
 
  
== Просмотр статуса подписки (get-subscribe-status) ==
+
== Создание места (create) == <!--T:449-->
  
Request URL: [site]/api/ctrl/get-subscribe-status
+
Запрос:
  
params:
+
<!--T:450-->
 +
Request URL: [site]/api/places/create
  
token (required): string(64)
+
<!--T:451-->
 +
Параметры запроса:
  
controller_id (required): int
+
<!--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'
  
response:
+
<!--T:473-->
 +
Ответ:  
  
{data:{id: 1, controller_id: 40, user_id: 424, remain_time: 100, request_time: 1355314332, response_time: 1355315332, success: 0}, error: ''}
+
Пример ответа:
  
 +
<pre>
 +
{
 +
error:null,
 +
data: {'message': 'OK'}
 +
}
 +
</pre>
  
==  Активация/продление/покупка подписки (set-subscribe) ==
 
  
 +
==  Редактирование места (edit) == <!--T:474-->
  
Request URL: [site]/api/ctrl/set-subscribe
+
Запрос:
  
params:
+
<!--T:475-->
 +
Request URL: [site]/api/places/edit
  
token (required): string(64)
+
<!--T:476-->
 +
Параметры запроса:
  
controller_id (required): int
+
<!--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-->
 +
Ответ:
 +
 
 +
Пример ответа:
  
response:
 
 
<pre>
 
<pre>
 
{
 
{
data:{
+
error:null,
id: 1,
+
data: {'message': 'OK'}
controller_id: 40,
 
user_id: 424,
 
remain_time: 100,
 
request_time: 1355314332,
 
response_time: 1355315332,
 
success: 0
 
},
 
error: ''
 
 
}
 
}
 
</pre>
 
</pre>
  
 +
== Удаление места (delete) == <!--T:501-->
  
==  ? Метод получения списка телефонов (get-phones) ==
+
Запрос:
 +
<!--T:502-->
 +
Request URL: [site]/api/places/delete
  
Request URL: [site]/api/ctrl/get-phones
+
<!--T:503-->
 +
Параметры запроса:
  
Params:
+
<!--T:504-->
 +
#token (required): string, 64
 +
#place_id (required): int
  
token (required): string, 64
+
<!--T:506-->
 +
Ответ:
  
controller_id (required): int
+
Пример ответа:
 
 
type (optional): string,
 
range ['recipient', 'authorized', 'all'], default 'all'
 
 
 
Response:
 
  
 
<pre>
 
<pre>
 
{
 
{
'error': null,
+
error:null,
data: [
+
data: {'message': 'OK'}
{'id': 5, 'phone': '+380123456789'},
+
}
{'id': 6, 'phone': '+380123334455'},
+
</pre>
{'id': 7, 'phone': '+380112223344'}
+
 
]
+
 
 +
== Добавление устройства к месту, смена места у устройства (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>
+
</pre>
 
+
 
 
+
 
== Редактирование телефона (edit-phone) ==
+
== Отвязать устройство от месту (device-out-place) == <!--T:509-->
 
+
 
Request URL: [site]/api/ctrl/edit-phone
+
Запрос:
 
+
 
Params:
+
Request URL: [site]/api/places/device-out-place/
 
+
 
token (required): string, 64
+
Параметры запроса:
 
+
 
phone_id (required): int
+
#token (required): string 64
 
+
#device_id (required): int
is_recipient (optional): int
+
#place_id (required): int
 
+
 
is_authorized (optional): int
+
Ответ:
 
+
 
phone (optional): string
+
Пример ответа:
 
+
 
Response:  
+
<pre>
<pre>
+
{
{
+
data: {
"error":null,
+
result: "OK"
"data":{
+
},
"id":2,
+
error: null
"controller_id":81,
+
}
"phone":"+380503334455",
+
</pre>
"is_recipient":"1",
+
 
"is_authorized":0
+
 
 +
== Получить список связей устройство-место (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."
 +
]
 
}
 
}
 
}
 
}
Строка 2209: Строка 3307:
  
  
==  Удаление телефона (delete-phone) ==
 
 
Request URL: [site]/api/ctrl/delete-phone
 
 
Params:
 
 
token (required): string, 64
 
 
phone_id (required): int
 
 
Response:
 
<pre>
 
{
 
"error":null,
 
"data":{"response":"OK"}
 
}
 
</pre>
 
 
== Добавление телефона (add-phone) ==
 
 
Request URL: [site]/api/ctrl/add-phone
 
 
Params:
 
  
token (required): string, 64
 
  
controller_id (required): int
+
</translate>
 
 
phone (required): string
 
 
 
is_recipient (optional): int
 
 
 
is_authorized (optional): int
 
 
 
Response:
 
 
 
<pre>
 
{
 
"error":null,
 
"data":{
 
"id":2,
 
"controller_id":81,
 
"phone":"+380503334455",
 
"is_recipient":"1",
 
"is_authorized":0
 
}
 
}
 
</pre>
 
</pre>
 

Текущая версия на 16:12, 30 июля 2019

Другие языки:
English • ‎русский • ‎українська • ‎中文(中国大陆)‎
  • API v01 *

API ( json )

URL https://quadrobit.com/

Содержание

Общие сведения

Обмен данными между Пользователем и серверной частью системы Quadrobit Smart Home осуществляется путём отправки пакетов (запросов и ответов). Пакет отправляется по HTTP методом POST на указанный адрес Request URL.

Запрос может содержать JSON-структуру, включающую один или несколько параметров. После успешной авторизации Пользователя запрос всегда должен содержать параметр token.

В ответ на полученный запрос Сервер возвращает Пользователю следующую JSON-структуру:

{
	error: null,
	data: { ... }	
}

Параметр error содержит информацию о результате выполнения запроса. error: null - запрос выполнен успешно.

Структура и содержание параметра data определяется типом запроса.


Учётная запись

Авторизация (login)

Запрос:

Request URL: [site]/api/login

Параметры запроса:

  1. (string) email,
  2. (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

Параметры запроса:

  1. (string) email,
  2. (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/

Параметры запроса:

  1. (int) controller_id,
  2. (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/

Параметры запроса:

  1. (int) controller_id,
  2. (string) token

Пример запроса:

{
	"controller_id": 6 ,
	"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"
}

Ответ:

Пример ответа (data):

{
	"result": "Ok" // "Ok" = запрос отправлен
}

Этап 2 - обновляем информацию о каждом устройстве

Запрос:

Request URL: [site]/api/ctrl/update-devices/

Параметры запроса:

  1. (int) controller_id,
  2. (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/

Параметры запроса:

  1. (string) token,
  2. (int) controller_id

Пример запроса:

{
	"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae",
	"controller_id": 122
}

Ответ:

Пример ответа:

{
	"error":null,
	"data":{
		"result":"Ok"
		}
}

Получение актуального статуса Контроллера (get-status)

Запрос:

Request URL: [site]/api/ctrl/get-status/

Параметры запроса:

  1. (string) token,
  2. (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/

Параметры запроса:

  1. (string) token,
  2. (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/

Параметры запроса:

  1. (string) token,
  2. (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:

  1. token (required): string(64);
  2. 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

Параметры:

  1. token (required): string(64)
  2. 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

Параметры:

  1. token (required): string(64)
  2. 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

Параметры:

  1. token (required): string, 64
  2. controller_id (required): int
  3. type (optional): string,
  4. 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

Параметры:

  1. token (required): string, 64
  2. phone_id (required): int
  3. is_recipient (optional): int
  4. is_authorized (optional): int
  5. 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

Параметры:

  1. token (required): string, 64
  2. phone_id (required): int

Ответ:

Пример ответа:

{
	"error":null,
	"data":{"response":"OK"}
}

Добавление телефона (add-phone)

Запрос:

Request URL: [site]/api/ctrl/add-phone

Params:

  1. token (required): string, 64
  2. controller_id (required): int
  3. phone (required): string
  4. is_recipient (optional): int
  5. 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/

Параметры запроса:

  1. (int) controller_id,
  2. (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/

Параметры запроса:

  1. (int) controller_id,
  2. (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

Параметры запроса:

  1. (int) controller_id,
  2. (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/

Параметры запроса:

  1. (int) controller_id,
  2. (int) device_id,
  3. (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/

Параметры запроса:

  1. (int) device_id,
  2. (string) name,
  3. (int) active,
  4. (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/

Параметры запроса:

  1. (int) device_id,
  2. (string) token

Пример запроса:

{
	"device_id": 107,   // local device id
	"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"
}

Ответ:

Пример ответа (data):

{
	"result" : "Ok"
}

Получение метеоданных (last)

Запрос:

Request URL: [site]/api/device/meteo-last/

Параметры запроса:

  1. (string) token,
  2. (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/

Параметры запроса:

  1. (string) token,

(int) device_id,

  1. (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/

Параметры запроса:

  1. (string) token,
  2. (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/

Параметры запроса:

  1. (string) token,
  2. (int) device_id,
  3. (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/

Параметры запроса:

  1. (string) token,
  2. (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/

Параметры запроса:

  1. (string) token,
  2. (int) device_id,
  3. (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

Параметры запроса:

  1. controller_id (required): int
  2. token (required): string, 64
  3. device_name (optional): string, 256
  4. code_ready (optional): string, 64 //Название кода готовности
  5. code_alarm (optional): string, 64 //Название кода оповещания
  6. code_low_battery (optional): string, 64 //Название кода садящейся батареи

Ответ:

Пример ответа:

{
	data:{
		'response': 'OK'
		},
	error: null
}

После отправки параметров ожидается срабатывание добавляемого устройства. При срабатывании происходит процесс добавления, и лишь после этого приходит ответ.

Датчик затопления (create-flood-sensor)

Запрос:

Request URL: [site]/api/wizard/create-flood-sensor

Параметры запроса:

  1. controller_id (required): int
  2. token (required): string, 64
  3. device_name (optional): string, 256
  4. code_alarm (optional): string, 64 //Название кода оповещения
  5. code_tamper (optional): string, 64 //Название кода вмешательства
  6. code_low_battery (optional): string, 64 //Название кода садящейся батареи

Ответ:

Пример ответа:

{
	data: {
		'response': 'OK'
		},
	error: null
}

После отправки параметров ожидается срабатывание добавляемого устройства. При срабатывании происходит процесс добавления, и лишь после этого приходит ответ.


Пульт,4 кнопки (create-console)

Запрос:

Request URL: [site]/api/wizard/create-console

Параметры запроса:

  1. controller_id (required): int
  2. token (required): string, 64
  3. device_name (optional): string, 256
  4. code_lock (optional): string, 64 //Название кода блокировки
  5. code_unlock (optional): string, 64 //Название кода разблокировки
  6. code_s (optional): string, 64 //Название кода s
  7. code_alarm (optional): string, 64 //Название кода оповещения

Ответ:

Пример ответа:

{
	data: {
		'response': 'OK'
	},
	error: null
}

После отправки параметров ожидается срабатывание добавляемого устройства. При срабатывании происходит процесс добавления, и лишь после этого приходит ответ.


Сирена (create-siren)

Запрос:

Request URL: [site]/api/wizard/create-siren

Параметры запроса:

  1. controller_id (required): int
  2. token (required): string, 64
  3. device_name (optional): string, 256
  4. code_on (optional): string, 64 //Название кода включения
  5. code_off (optional): string, 64 //Название кода выключения
  6. code_blank (optional): string, 64 //Название кода blank

Ответ:

Пример ответа:

{
	data: {
		'response': 'OK'
		},
	error: null
}

Перед отправкой параметров необходимо перевести сирену в режим обучения.


Метеостанция: получение списка обнаруженных метеостанций за последние 10 минут (get-meteos)

Запрос:

Request URL: [site]/api/wizard/get-meteos

Параметры запроса:

  1. controller_id (required): int
  2. 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

Параметры запроса:

  1. controller_id (required): int
  2. token (required): string, 64
  3. meteo_num (required): int //Получается в списке выше
  4. 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

Параметры запроса:

  1. controller_id (required): int
  2. 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

Параметры запроса:

  1. controller_id (required): int
  2. token (required): string, 64
  3. code (required): int // Берется из сгенерированных

Ответ:

Пример ответа:

{
	error: null,
	data: {
		"response":"OK"
		}
}

Добавление крана

Запрос:

Request URL: [site]/api/wizard/create-crane-by-codes

Параметры запроса:

  1. controller_id (required): int
  2. token (required): string, 64
  3. code_1 (required): int
  4. code_2 (required): int
  5. device_name (optional): string, 256
  6. code_open (optional): string, 64 //Название кода открытия
  7. 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

Параметры запроса:

  1. controller_id (required): int
  2. token (required): string, 64
  3. 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

Параметры запроса:

  1. controller_id (required): int
  2. token (required): string, 64
  3. code (required): int // Берется из сгенерированных

Ответ:

Пример ответа:

{
	error: null,
	data: {'response' => 'OK'}
}


Добавление розетки (create-socket)

Запрос:

Request URL: [site]/api/wizard/create-socket

Параметры запроса:

  1. controller_id (required): int
  2. token (required): string, 64
  3. code_1 (required): int
  4. code_2 (required): int
  5. device_name (optional): string, 256
  6. code_off (optional): string, 64 //Название кода открытия
  7. 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/

Параметры запроса:

  1. (int) controller_id,
  2. (string) token

Пример запроса:

{
	"controller_id": 6 ,
	"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae",
}

Ответ:

Пример ответа:

{
	"result": "Ok" // ответ что запрос ушел
}

Процесс обновления происходит автоматически. Для получения результата требуется таймаут, после чего делается стандартный запрос на получение данных (Контроллер, действия)

Информация о сценарии (info)

Запрос:

Request URL: [site]/api/scheduler/info/

Параметры запроса:

  1. (int) scheduler_id,
  2. (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/

Параметры запроса:

  1. (int) scheduler_id,
  2. (string) token,
  3. (string) name,
  4. (int) "active"
  5. (int) "send_sms" // 1 - отправлять / 0 - не отправлять
  6. (int) "make_call" // 1 - отправлять / 0 - не отправлять
  7. (int) "armed" // 0 - в любом режиме, 1 - в режиме охраны, 2 - без режима охраны
  8. (int) "action_id",
  9. (int) "action_device_id",
  10. (int) "action_code_id",
  11. (int) "action_armed",
  12. (int) "action_groups", // битовая маска группы от 1 до 8
  13. (string) "action_repetition", // только для расписания: номер дней повторения через запятую от 1 до 7
  14. (string) "action_event_time", // только для расписания: время повторения
  15. (int) "action_sensor_type", // только для метео устройств: 1 - напряжение, 2 - температура, 3 - влажность, 4 - Атм. давление, 5 - Освещенность , 0 - не выбрано
  16. (string) "action_logic_operation", // логическая операция : '=', '!=', '<', '>', '<=', '>=', 'in', 'like'
  17. (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/

Параметры запроса:

  1. (int) target_id,
  2. (string) token,
  3. (int) "target_type_id",
  4. (int) "target_device_id",
  5. (int) "target_code_id",
  6. (int) "target_armed",
  7. (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/

Параметры запроса:

  1. (int) controller_id,
  2. (int) device_id,
  3. (int) code_id,
  4. (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

Параметры запроса:

  1. token (required): string(64)
  2. code_id (required): int
  3. name (optional): string(255)

Ответ:

Пример ответа:

{
	data: {
		'message': "OK"
		},
	error: null
}

Редактирование параметров кода (update)

Запрос:

Request URL: [site]/api/property/update/

Параметры запроса:

  1. (string) token
  2. (int) device_id
  3. (int) code_id
  4. (string) name // опционально
  5. (int) active // опционально
  6. (int) send_sms // опционально
  7. (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

Параметры запроса:

  1. token (required): string(64)
  2. 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

Параметры:

  1. token (required): string 64
  2. 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

Параметры запроса:

  1. token (required): string 64
  2. code_id (required): int
  3. device_id (required): int
  4. 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

Параметры запроса:

  1. token (required): string 64
  2. code_id (required): int

Ответ:

Пример ответа:

{
	data:	{
		message: "OK"
	},
	error: null
}

События

Нажатие кнопки на устройстве (event)

Запрос:

Request URL: [site]/api/device/event/

Параметры запроса:

  1. (string) controller_name,
  2. (int) device_external_id,
  3. (int) cod_external_id,
  4. (string) token,
  5. (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

Параметры запроса:

  1. token (required): string, 64
  2. root (optional): int, default 1
  3. lft (optional): int, from 1 to 5 //В сумме с rgt должно быть 5
  4. rgt (optional): int, from 1 to 5 //В сумме с lft должно быть 5
  5. lvl (optional): int, default 0
  6. name (optional): string, 64, default 'Simple name'
  7. icon (optional): string, default //Допускаемые параметры -- ключи объекта выше
  8. color (optional): string, default: '#ccc' //Любой цвет в формате HEX, решетка в начале обязательна
  9. active (optional): int, default 1
  10. selected (optional): int, default 0
  11. disabled (optional): int, default 0
  12. readonly (optional): int, default 0
  13. visible (optional): int, default 1
  14. collapsed (optional): int, default 0
  15. movable_u (optional): int, default 1
  16. movable_d (optional): int, default 1
  17. movable_l (optional): int, default 1
  18. movable_r (optional): int, default 1
  19. removable (optional): int, default 1
  20. removable_all (optional): int, default 0
  21. inverse_text (optional): string, default 'black'

Ответ:

Пример ответа:

{
	error:null,
	data: {'message': 'OK'}
}


Редактирование места (edit)

Запрос:

Request URL: [site]/api/places/edit

Параметры запроса:

  1. token (required): string, 64
  2. place_id (required): int
  3. root (optional): int, default 1
  4. lft (optional): int, from 1 to 5 //В сумме с rgt должно быть 5
  5. rgt (optional): int, from 1 to 5 //В сумме с lft должно быть 5
  6. lvl (optional): int, default 0
  7. name (optional): string, 64, default 'Simple name'
  8. icon (optional): string, default //Допускаемые параметры -- ключи объекта выше
  9. color (optional): string, default: '#ccc' //Любой цвет в формате HEX, решетка в начале обязательна
  10. active (optional): int, default 1
  11. selected (optional): int, default 0
  12. disabled (optional): int, default 0
  13. readonly (optional): int, default 0
  14. visible (optional): int, default 1
  15. collapsed (optional): int, default 0
  16. movable_u (optional): int, default 1
  17. movable_d (optional): int, default 1
  18. movable_l (optional): int, default 1
  19. movable_r (optional): int, default 1
  20. removable (optional): int, default 1
  21. removable_all (optional): int, default 0
  22. inverse_text (optional): string, default 'black'

Ответ:

Пример ответа:

{
	error:null,
	data: {'message': 'OK'}
}

Удаление места (delete)

Запрос: Request URL: [site]/api/places/delete

Параметры запроса:

  1. token (required): string, 64
  2. place_id (required): int

Ответ:

Пример ответа:

{
	error:null,
	data: {'message': 'OK'}
}


Добавление устройства к месту, смена места у устройства (device-in-place)

Запрос:

Request URL: [site]/api/places/device-in-place/

Параметры запроса:

  1. token (required): string 64
  2. device_id (required): int
  3. place_id (required): int
  4. visible (not required): int

Ответ:

Пример ответа:

{
	data:	{result: "OK"},
	error: null
}


Отвязать устройство от месту (device-out-place)

Запрос:

Request URL: [site]/api/places/device-out-place/

Параметры запроса:

  1. token (required): string 64
  2. device_id (required): int
  3. place_id (required): int

Ответ:

Пример ответа:

{
	data:	{
		result: "OK"
	},
	error: null
}


Получить список связей устройство-место (device-place-list)

Запрос:

Request URL: [site]/api/places/device-place-list/

Параметры запроса:

  1. 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/

Параметры запроса:

  1. (string) token,
  2. (int) device_id,
  3. (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/

Параметры запроса:

  1. (string) token,
  2. (int) device_id,
  3. (int) controller_id

Пример запроса:

{
	"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae",
	"device_id": 1862
}

Ответ:

Пример ответа (полный):

{
	"error":null,
	"data":{
		"result":"Ok"
	}
}


Неклассифицируемые методы

Список доступных стран (countries)

Запрос:

Request URL: [site]/api/profile/countries/

Параметры запроса:

  1. (string) token
  2. (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."
		]
	}
}