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

Материал из wiki.quadrobit.com
Перейти к навигации Перейти к поиску
 
(не показано 16 промежуточных версий этого же участника)
Строка 243: Строка 243:
 
{
 
{
 
"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>
Строка 412: Строка 423:
 
{
 
{
 
"error":null,
 
"error":null,
"data":{"resuls":"Ok"}
+
"data":{"result":"Ok"}
 
}
 
}
 
</pre>
 
</pre>
Строка 450: Строка 461:
 
"error":null,
 
"error":null,
 
"data":{
 
"data":{
"resuls":"Ok"
+
"result":"Ok"
 
}
 
}
 
}
 
}
Строка 503: Строка 514:
 
• 2 – онлайн, после включения питания
 
• 2 – онлайн, после включения питания
  
== Передача локального IP Контроллера (get-ip) == <!--T:89-->
+
== Получение конфигурации Контроллера (config) == <!--T:89-->
  
Запрос
+
<!--T:82-->
 +
Запрос:
  
<!--T:90-->
+
Request URL: [site]/api/ctrl/config/
Request URL: [site]/api/ctrl/get-ip
 
  
<!--T:91-->
+
<!--T:82-->
Request Params:
+
Параметры запроса:
  
#token (required): string(64);
+
#(string) token,
#controller_id (required): int;
+
#(int) controller_id
  
Ответ:
+
<!--T:82-->
<!--T:94-->
+
Пример запроса:
  
Пример ответа:
 
 
<!--T:95-->
 
 
<pre>
 
<pre>
 
{
 
{
data:'192.168.0.15',
+
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae",
error: null
+
"controller_id" : 111
 
}
 
}
 
</pre>
 
</pre>
  
== Установка подписки на Контроллере == <!--T:96-->
+
<!--T:82-->
 
 
Запрос:
 
 
 
<!--T:97-->
 
Request URL: [site]/in/subscription/set”
 
 
 
 
Ответ:
 
Ответ:
  
 +
<!--T:82-->
 
Пример ответа (data):
 
Пример ответа (data):
  
 
<pre>
 
<pre>
 
{
 
{
"seq_id": 0,
+
"id":"1",  // id конфигурации
"id": 1, // ID подписки (см. ниже)
+
"controller_id":"111",  // id контроллера
"remain_time": 100 // оставшееся время в секундах, 4294967295 - неограниченно
+
"language":"ru-RU",
 +
"hostname":"alarm-system",
 +
"wifi_mode":1,  // 1 - STA, 2 - AP
 +
"wifi_sta_type":1, // 0 - STATIC, 1 - DHCP
 +
"wifi_sta_ssid":"SSID",
 +
"wifi_sta_pass":"PASSWORD",
 +
"wifi_sta_ip":"192.168.0.101",
 +
"wifi_sta_mask":"255.255.255.0",
 +
"wifi_sta_gw":"192.168.0.1",
 +
"wifi_sta_dns1":"208.67.222.222",
 +
"wifi_sta_dns2":"208.67.222.222",
 +
"wifi_ap_authmode": 3, // 0 - OPEN, 1 - WEP, 2 - WPA_PSK, 3 - WPA2_PSK, 4 - WPA_WPA2_PSK
 +
"wifi_ap_hidden":0, // 0/1
 +
"wifi_ap_channel":1, // 1...14
 +
"wifi_ap_ssid":"SMARTHOME_000000000000",
 +
"wifi_ap_pass":"00000000",
 +
"wifi_ap_ip":"192.168.4.1",
 +
"wifi_ap_mask":"255.255.255.0",
 +
"wifi_ap_gw":"192.168.4.1",
 +
"httpd_port":80, // 1...65535
 +
"httpd_auth":0, // 0/1
 +
"httpd_user":"admin",
 +
"httpd_pass":"admin",
 +
"ntp_enable":0, // 0/1
 +
"ntp_host":"time.windows.com",
 +
"ntp_tz":3, // -11...13
 +
"upnp_enable":1, // 0/1
 +
"advanced_mode":0, // 0/1
 +
"app_afb_enable":1, // 0/1
 +
"app_leds_off":1, // 0/1
 +
"app_alarm_duration":10, // minutes
 +
"app_arming_delay":0, // seconds
 +
"app_portal_link":0, // 0/1
 +
"app_rf_freq":2, // 1 - 315Mhz, 2 - 433Mhz
 +
"app_rf_power":3, // 0 - 1DBM, 1 - 2DBM, 2 - 5DBM, 3 - 8DBM, 4 - 11DBM, 5 - 14DBM, 6 - 17DBM, 7 - 20DBM
 +
"app_button_action":1, // 0 - NONE, 1 - ARMING, 2 - RUN_ACTION, 3 - SEND_CODE
 +
"app_button_rec_id":0, // ID
 +
"gsm_pin":"1234",
 +
"gsm_allowed_phones":"", // список через запятую
 +
"gsm_sendto_phones":"", // список через запятую
 +
"gsm_callto_phones":"", // один номер
 +
"gsm_smsin_enable":"0", // 0/1
 +
"gsm_smsout_enable":"0", // 0/1
 +
"gsm_call_enable":"0", // 0/1
 +
"gprs_enable":"1", // 0/1
 +
"gprs_apn":"", "internet.mts.ru",
 +
"gprs_user":"mts",
 +
"gprs_pass":"mts",
 +
"gsm_enable":"0", // 0/1
 +
"ebus_enable":0, // 0/1
 +
"command":"xxx",
 +
"response":"0"
 
}
 
}
 
</pre>
 
</pre>
  
==  Просмотр статуса подписки (get-subscribe-status) == <!--T:98-->
 
  
 +
== Изменение конфигурации контроллера(config-set) == <!--T:89-->
 +
 +
<!--T:89-->
 
Запрос:
 
Запрос:
  
<!--T:99-->
+
Request URL: [site]/api/ctrl/config-set/
Request URL: [site]/api/ctrl/get-subscribe-status
+
 
 +
<!--T:89-->
 +
Параметры запроса:
 +
 
 +
#(string) token,
 +
#(int) controller_id
  
<!--T:100-->
+
<!--T:89-->
Параметры:
+
Пример запроса:
  
<!--T:101-->
+
<pre>
#token (required): string(64)
+
{
#controller_id (required): int
+
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae",
 +
"controller_id" : 111,
 +
"command": "yyy"    // параметры контроллера смотри метод Получить конфигурацию контроллера(ctrl/config/)
 +
}
 +
</pre>
  
<!--T:103-->
+
<!--T:89-->
 
Ответ:
 
Ответ:
  
 +
<!--T:89-->
 
Пример ответа (data):
 
Пример ответа (data):
  
<!--T:104-->
 
 
<pre>
 
<pre>
 
{
 
{
data:{
+
"result": "Ok"
id: 1,
 
controller_id: 40,
 
user_id: 424,
 
remain_time: 100,
 
request_time: 1355314332,
 
response_time: 1355315332,
 
success: 0
 
},
 
error: ''
 
 
}
 
}
 
</pre>
 
</pre>
  
==  Активация/продление/покупка подписки (set-subscribe) == <!--T:105-->
+
==  Передача локального IP Контроллера (get-ip) == <!--T:89-->
  
Запрос:
+
Запрос
  
<!--T:106-->
+
<!--T:90-->
Request URL: [site]/api/ctrl/set-subscribe
+
Request URL: [site]/api/ctrl/get-ip
  
<!--T:107-->
+
<!--T:91-->
Параметры:
+
Request Params:
  
<!--T:108-->
+
#token (required): string(64);
#token (required): string(64)
+
#controller_id (required): int;
#controller_id (required): int
 
  
<!--T:110-->
 
 
Ответ:
 
Ответ:
 +
<!--T:94-->
 +
 +
Пример ответа:
  
 +
<!--T:95-->
 
<pre>
 
<pre>
 
{
 
{
data:{
+
data:'192.168.0.15',
id: 1,
+
error: null
controller_id: 40,
 
user_id: 424,
 
remain_time: 100,
 
request_time: 1355314332,
 
response_time: 1355315332,
 
success: 0
 
},
 
error: ''
 
 
}
 
}
 
</pre>
 
</pre>
  
== Метод получения списка телефонов (get-phones) == <!--T:111-->
+
== Установка подписки на Контроллере == <!--T:96-->
  
 
Запрос:
 
Запрос:
  
<!--T:112-->
+
<!--T:97-->
Request URL: [site]/api/ctrl/get-phones
+
Request URL: [site]/in/subscription/set”
 
 
<!--T:113-->
 
Параметры:
 
 
 
<!--T:114-->
 
#token (required): string, 64
 
#controller_id (required): int
 
#type (optional): string,
 
#range ['recipient', 'authorized', 'all'], (default: 'all')
 
  
<!--T:117-->
 
 
Ответ:
 
Ответ:
  
Пример ответа:
+
Пример ответа (data):
  
<!--T:118-->
 
 
<pre>
 
<pre>
 
{
 
{
'error': null,
+
"seq_id": 0,
data: [
+
"id": 1, // ID подписки (см. ниже)
{'id': 5, 'phone': '+380123456789'},
+
"remain_time": 100 // оставшееся время в секундах, 4294967295 - неограниченно
{'id': 6, 'phone': '+380123334455'},
 
{'id': 7, 'phone': '+380112223344'}
 
]
 
 
}
 
}
 
</pre>
 
</pre>
  
 
+
==  Просмотр статуса подписки (get-subscribe-status) == <!--T:98-->
==  Редактирование телефона (edit-phone) == <!--T:119-->
 
  
 
Запрос:
 
Запрос:
  
<!--T:120-->
+
<!--T:99-->
Request URL: [site]/api/ctrl/edit-phone
+
Request URL: [site]/api/ctrl/get-subscribe-status
  
<!--T:121-->
+
<!--T:100-->
 
Параметры:
 
Параметры:
  
<!--T:122-->
+
<!--T:101-->
#token (required): string, 64
+
#token (required): string(64)
#phone_id (required): int
+
#controller_id (required): int
#is_recipient (optional): int
+
 
#is_authorized (optional): int
+
<!--T:103-->
#phone (optional): string
+
Ответ:
  
<!--T:127-->
+
Пример ответа (data):
Ответ:  
 
  
Пример ответа:
+
<!--T:104-->
 
<pre>
 
<pre>
 
{
 
{
"error":null,
+
data:{
"data":{
+
id: 1,
"id":2,
+
controller_id: 40,
"controller_id":81,
+
user_id: 424,
"phone":"+380503334455",
+
remain_time: 100,
"is_recipient":"1",
+
request_time: 1355314332,
"is_authorized":0
+
response_time: 1355315332,
}
+
success: 0
 +
},
 +
error: ''
 
}
 
}
 
</pre>
 
</pre>
  
 
+
==  Активация/продление/покупка подписки (set-subscribe) == <!--T:105-->
==  Удаление телефона (delete-phone) == <!--T:128-->
 
  
 
Запрос:
 
Запрос:
  
<!--T:129-->
+
<!--T:106-->
Request URL: [site]/api/ctrl/delete-phone
+
Request URL: [site]/api/ctrl/set-subscribe
  
<!--T:130-->
+
<!--T:107-->
 
Параметры:
 
Параметры:
  
<!--T:131-->
+
<!--T:108-->
#token (required): string, 64
+
#token (required): string(64)
#phone_id (required): int
+
#controller_id (required): int
  
<!--T:133-->
+
<!--T:110-->
 
Ответ:
 
Ответ:
 
Пример ответа:
 
  
 
<pre>
 
<pre>
 
{
 
{
"error":null,
+
data:{
"data":{"response":"OK"}
+
id: 1,
 +
controller_id: 40,
 +
user_id: 424,
 +
remain_time: 100,
 +
request_time: 1355314332,
 +
response_time: 1355315332,
 +
success: 0
 +
},
 +
error: ''
 
}
 
}
 
</pre>
 
</pre>
  
== Добавление телефона (add-phone) == <!--T:134-->
+
== Метод получения списка телефонов (get-phones) == <!--T:111-->
  
 
Запрос:
 
Запрос:
  
<!--T:135-->
+
<!--T:112-->
Request URL: [site]/api/ctrl/add-phone
+
Request URL: [site]/api/ctrl/get-phones
  
<!--T:136-->
+
<!--T:113-->
Params:
+
Параметры:
  
<!--T:137-->
+
<!--T:114-->
 
#token (required): string, 64
 
#token (required): string, 64
 
#controller_id (required): int
 
#controller_id (required): int
#phone (required): string
+
#type (optional): string,
#is_recipient (optional): int
+
#range ['recipient', 'authorized', 'all'], (default: 'all')
#is_authorized (optional): int
 
  
<!--T:142-->
+
<!--T:117-->
Ответ:  
+
Ответ:
  
 
Пример ответа:
 
Пример ответа:
  
<!--T:143-->
+
<!--T:118-->
 
<pre>
 
<pre>
 
{
 
{
"error":null,
+
'error': null,
"data":{
+
data: [
"id":2,
+
{'id': 5, 'phone': '+380123456789'},
"controller_id":81,
+
{'id': 6, 'phone': '+380123334455'},
"phone":"+380503334455",
+
{'id': 7, 'phone': '+380112223344'}
"is_recipient":"1",
+
]
"is_authorized":0
 
}
 
 
}
 
}
 
</pre>
 
</pre>
  
== Информация о версии прошивки контроллера (fw-version-current) == <!--T:145-->
+
 
 +
== Редактирование телефона (edit-phone) == <!--T:119-->
  
 
Запрос:
 
Запрос:
  
Request URL: [site]/api/ctrl/fw-version-current/
+
<!--T:120-->
 +
Request URL: [site]/api/ctrl/edit-phone
  
Параметры запроса:
+
<!--T:121-->
 +
Параметры:
  
#(int) controller_id,
+
<!--T:122-->
#(string) token
+
#token (required): string, 64
 +
#phone_id (required): int
 +
#is_recipient (optional): int
 +
#is_authorized (optional): int
 +
#phone (optional): string
  
Пример запроса:
+
<!--T:127-->
 +
Ответ:  
  
 +
Пример ответа:
 
<pre>
 
<pre>
 
{
 
{
"controller_id": 1 ,
+
"error":null,
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"
+
"data":{
 +
"id":2,
 +
"controller_id":81,
 +
"phone":"+380503334455",
 +
"is_recipient":"1",
 +
"is_authorized":0
 +
}
 
}
 
}
 
</pre>
 
</pre>
  
Ответ:
 
  
Пример ответа (data):
+
==  Удаление телефона (delete-phone) == <!--T:128-->
 +
 
 +
Запрос:
  
<pre>
+
<!--T:129-->
{
+
Request URL: [site]/api/ctrl/delete-phone
"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>
 
  
 +
<!--T:130-->
 +
Параметры:
  
== Информация о последней версии прошивки контроллера (get-new-fw-version) == <!--T:145-->
+
<!--T:131-->
 +
#token (required): string, 64
 +
#phone_id (required): int
  
Запрос:
+
<!--T:133-->
 +
Ответ:
  
Request URL: [site]/api/ctrl/get-new-fw-version/
+
Пример ответа:
 
 
Параметры запроса:
 
 
 
#(int) controller_id,
 
#(string) token
 
  
 
<pre>
 
<pre>
Пример запроса:
 
 
 
{
 
{
"controller_id": 1 ,
+
"error":null,
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"
+
"data":{"response":"OK"}
 
}
 
}
 
</pre>
 
</pre>
  
Ответ:
+
== Добавление телефона (add-phone) == <!--T:134-->
  
Пример ответа (data):
+
Запрос:
  
 +
<!--T:135-->
 +
Request URL: [site]/api/ctrl/add-phone
 +
 +
<!--T:136-->
 +
Params:
 +
 +
<!--T:137-->
 +
#token (required): string, 64
 +
#controller_id (required): int
 +
#phone (required): string
 +
#is_recipient (optional): int
 +
#is_authorized (optional): int
 +
 +
<!--T:142-->
 +
Ответ:
 +
 +
Пример ответа:
 +
 +
<!--T:143-->
 
<pre>
 
<pre>
 
{
 
{
"version_id":38,
+
"error":null,
"version_name":"0.14",
+
"data":{
"tag":"0.14 \/ Oct 5 2018 16:49:04",
+
"id":2,
"url":"\/controllers_fw\/tls-smarthome-hw-9_0.14.bin",
+
"controller_id":81,
"date":"16.10.2018"
+
"phone":"+380503334455",
 +
"is_recipient":"1",
 +
"is_authorized":0
 +
}
 
}
 
}
 
</pre>
 
</pre>
  
= Устройства = <!--T:144-->
+
== Информация о версии прошивки контроллера (fw-version-current) == <!--T:145-->
  
== Получение списка устройств пользователя (list) == <!--T:145-->
+
Запрос:
  
<!--T:146-->
+
Request URL: [site]/api/ctrl/fw-version-current/
Запрос:
 
  
<!--T:147-->
 
Request URL: [site]/api/device/list
 
 
<!--T:148-->
 
 
Параметры запроса:
 
Параметры запроса:
  
Строка 832: Строка 893:
 
#(string) token
 
#(string) token
  
<!--T:149-->
+
Пример запроса:
Пример запроса:  
+
 
 
<pre>
 
<pre>
 
{
 
{
Строка 841: Строка 902:
 
</pre>
 
</pre>
  
<!--T:150-->
 
 
Ответ:
 
Ответ:
+
 
Пример ответа (data):  
+
Пример ответа (data):
 +
 
 
<pre>
 
<pre>
 
{
 
{
"0":{
+
"version_id":1,
"id":"122",
+
"version_name":"0.01",
"external_id":"19", //id на контроллере
+
"tag":"OLD",
"controller_id":"6",
+
"url":"\/controllers_fw\/NULL.bin",
"name":"Сирена",
+
"date":"16.10.2018",
"type_id":"2",  //тип устройства
+
"new_version_id":38  // если "new_version_id" != "version_id" значит имеется новая версия.
"codes":":{    //коды (кнопки)
+
}
"0":{
+
</pre>
"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"
 
}
 
}
 
</pre>  
 
  
 +
== Информация о последней версии прошивки контроллера (get-new-fw-version) == <!--T:145-->
  
== Информация об устройстве (info) == <!--T:151-->
 
 
<!--T:152-->
 
 
Запрос:
 
Запрос:
  
<!--T:153-->
+
Request URL: [site]/api/ctrl/get-new-fw-version/
Request URL: [site]/api/device/info/
 
  
<!--T:154-->
 
 
Параметры запроса:
 
Параметры запроса:
  
<!--T:155-->
 
 
#(int) controller_id,
 
#(int) controller_id,
#(int) device_id,
 
 
#(string) token
 
#(string) token
  
<!--T:158-->
 
Пример запроса:
 
 
<pre>
 
<pre>
 +
Пример запроса:
 +
 
{
 
{
 
"controller_id": 1 ,
 
"controller_id": 1 ,
"device_id": 122,
 
 
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"
 
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"
 
}
 
}
 
</pre>
 
</pre>
  
<!--T:159-->
 
 
Ответ:
 
Ответ:
+
 
Пример ответа (data):  
+
Пример ответа (data):
 +
 
 
<pre>
 
<pre>
 
{
 
{
"id":"122",
+
"version_id":38,
"external_id":"19",
+
"version_name":"0.14",
"controller_id":"6",
+
"tag":"0.14 \/ Oct 5 2018 16:49:04",
"name":"Сирена",
+
"url":"\/controllers_fw\/tls-smarthome-hw-9_0.14.bin",
"type_id":"2",
+
"date":"16.10.2018"
"codes":{
+
}
"0":{
+
</pre>
"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"
 
}
 
</pre>
 
  
 +
= Устройства = <!--T:144-->
  
== Обновление информации об устройстве (update) == <!--T:161-->
+
== Получение списка устройств пользователя (list) == <!--T:145-->
  
<!--T:162-->
+
<!--T:146-->
 
Запрос:
 
Запрос:
  
<!--T:163-->
+
<!--T:147-->
Request URL: [site]/api/device/update/
+
Request URL: [site]/api/device/list
  
<!--T:164-->
+
<!--T:148-->
 
Параметры запроса:
 
Параметры запроса:
  
<!--T:165-->
+
#(int) controller_id,
#(int) device_id,
+
#(string) token
#(string) name,
 
#(int) active,
 
#(string) token,
 
  
<!--T:169-->
+
<!--T:149-->
Пример запроса (data):
+
Пример запроса:  
 
 
<pre>
 
<pre>
 
{
 
{
"device_id": 107,  // local device id
+
"controller_id": 1 ,
"name": "New name", // new name
 
"active": 1,
 
 
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"
 
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"
 
}
 
}
 
</pre>
 
</pre>
  
 +
<!--T:150-->
 
Ответ:
 
Ответ:
 
   
 
   
 
Пример ответа (data):  
 
Пример ответа (data):  
 
 
<pre>
 
<pre>
 
{
 
{
"resuls" : "Ok"
+
"0":{
}
+
"id":"122",
</pre>
+
"external_id":"19", //id на контроллере
 
+
"controller_id":"6",
== Удаление устройства (delete) == <!--T:171-->
+
"name":"Сирена",
 
+
"type_id":"2",  //тип устройства
<!--T:172-->
+
"codes":":{    //коды (кнопки)
Запрос:
+
"0":{
 
+
"id":"218",
<!--T:173-->
+
"external_cod_id":"32",
Request URL: [site]/api/device/delete/
+
"device_id":"122",
 
+
"name":"ON",
<!--T:174-->
+
"code":"3675192",
Параметры запроса:
+
"protocol":"1",
 
+
"pulse_len":null,
<!--T:175-->
+
"group_1":"1",
#(int) device_id,
+
"group_2":"0",
#(string) token
+
"group_3":"0",
 
+
"group_4":"0",
<!--T:177-->
+
"group_5":"0",
Пример запроса:  
+
"group_6":"0",
 
+
"group_7":"0",
<pre>
+
"group_8":"0",
{
+
"active":"1"
"device_id": 107,   // local device id
+
},
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"
+
"1":{ ... }
}
+
},
</pre>
+
"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"
 +
}
 +
}
 +
</pre>  
  
<!--T:178-->
 
Ответ:
 
  
<!--T:180-->
+
== Информация об устройстве (info) == <!--T:151-->
Пример ответа (data):
 
  
<pre>
+
<!--T:152-->
{
+
Запрос:
"resuls" : "Ok"
 
}
 
</pre>
 
  
== Получение метеоданных (last) == <!--T:182-->
+
<!--T:153-->
 +
Request URL: [site]/api/device/info/
  
<!--T:183-->
+
<!--T:154-->
Запрос:
 
 
 
Request URL: [site]/api/device/meteo-last/
 
 
 
<!--T:184-->
 
 
Параметры запроса:
 
Параметры запроса:
  
<!--T:185-->
+
<!--T:155-->
#(string) token,
+
#(int) controller_id,
#(int) device_id
+
#(int) device_id,
 +
#(string) token
  
<!--T:187-->
+
<!--T:158-->
 
Пример запроса:  
 
Пример запроса:  
 
 
<pre>
 
<pre>
 
{
 
{
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae",
+
"controller_id": 1 ,
"device_id": 130
+
"device_id": 122,
 +
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"
 
}
 
}
 
</pre>
 
</pre>
  
 +
<!--T:159-->
 
Ответ:
 
Ответ:
 
+
<!--T:189-->
 
 
Пример ответа (data):  
 
Пример ответа (data):  
 
<!--T:190-->
 
 
<pre>
 
<pre>
 
{
 
{
"id":"4046",
+
"id":"122",
"controller_name":"AS_7FD6785CCF5D",
+
"external_id":"19",
"internal_id":"55",
+
"controller_id":"6",
"device_id":"130",
+
"name":"Сирена",
"name":"7",
+
"type_id":"2",
"temp":"240",
+
"codes"
"hum":"245",
+
"0"
"illum":"0",
+
"id":"218",
"pres":"1239",
+
"external_cod_id":"32",
"volt":"32",
+
"device_id":"122",
"date_time":"2016-03-02 21:09:40",
+
"name":"ON",
"new":"0"
+
"code":"3675192",
 +
"protocol":"1",
 +
"pulse_len":null,
 +
"group_1":"1",
 +
"group_2":"0",
 +
"group_3":"0",
 +
"group_4":"0",
 +
"group_5":"0",
 +
"group_6":"0",
 +
"group_7":"0",
 +
"group_8":"0",
 +
"active":"1",
 +
},
 +
"1"
 +
"id":"219",
 +
"external_cod_id":"33",
 +
"device_id":"122",
 +
"name":"OFF",
 +
"code":"3675186
 +
...
 +
}
 +
},
 +
"state":"1",
 +
"on_dashboard":"1",
 +
"active":"1",
 +
"alias":"xxx",
 +
"send_sms ":0,
 +
"voice_call":0,
 +
place"
 +
"name":null,
 +
"color":null
 +
}
 
}
 
}
 +
 
</pre>
 
</pre>
  
== Получение метеоданных за период (period) == <!--T:191-->
+
== Обновление информации об устройстве (update) == <!--T:161-->
  
 +
<!--T:162-->
 
Запрос:
 
Запрос:
  
<!--T:192-->
+
<!--T:163-->
Request URL: [site]/api/device/meteo-period/
+
Request URL: [site]/api/device/update/
  
<!--T:193-->
+
<!--T:164-->
 
Параметры запроса:
 
Параметры запроса:
  
<!--T:194-->
+
<!--T:165-->
 +
#(int) device_id,
 +
#(string) name,
 +
#(int) active,
 
#(string) token,
 
#(string) token,
(int) device_id,
 
#(int) period
 
  
<!--T:197-->
+
<!--T:169-->
Пример запроса:
+
Пример запроса (data):
 
   
 
   
 
<pre>
 
<pre>
 
{
 
{
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae",
+
"device_id": 107,  // local device id
"device_id": 130,
+
"name": "New name", // new name
"period": 1 // количество дней
+
"active": 1,
 +
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"
 
}
 
}
 
</pre>
 
</pre>
  
<!--T:198-->
 
 
Ответ:
 
Ответ:
 +
 +
Пример ответа (data):
  
<!--T:199-->
+
<pre>
параметры ответа (array to objects):
+
{
 +
"result" : "Ok"
 +
}
 +
</pre>
 +
 
 +
== Удаление устройства (delete) == <!--T:171-->
  
<!--T:200-->
+
<!--T:172-->
Пример ответа (data):  
+
Запрос:
  
<pre>
+
<!--T:173-->
[
+
Request URL: [site]/api/device/delete/
{
 
"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
 
...
 
},
 
]
 
</pre>
 
  
== Получение данных электропитания (last) == <!--T:201-->
+
<!--T:174-->
+
Параметры запроса:
Запрос:
 
  
Request URL: [site]/api/device/electro-last/
+
<!--T:175-->
 +
#(int) device_id,
 +
#(string) token
  
<!--T:202-->
+
<!--T:177-->
Параметры запроса:
+
Пример запроса:  
  
<!--T:203-->
 
#(string) token,
 
#(int) device_id
 
 
<!--T:205-->
 
Пример запроса:
 
 
 
<pre>
 
<pre>
 
{
 
{
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae",
+
"device_id": 107,   // local device id
"device_id": 130
+
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"
 
}
 
}
 
</pre>
 
</pre>
  
<!--T:206-->
+
<!--T:178-->
 
Ответ:
 
Ответ:
  
<!--T:208-->
+
<!--T:180-->
 
Пример ответа (data):  
 
Пример ответа (data):  
  
<!--T:209-->
 
 
<pre>
 
<pre>
 
{
 
{
"id":"318",
+
"result" : "Ok"
"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"
 
 
}
 
}
</pre>  
+
</pre>
 +
 
 +
== Получение метеоданных (last) == <!--T:182-->
  
== Получение данных электропитания за период (period) == <!--T:210-->
+
<!--T:183-->
 
 
Запрос:
 
Запрос:
  
<!--T:211-->
+
Request URL: [site]/api/device/meteo-last/
Request URL: [site]/api/device/electro-period/
 
  
<!--T:212-->
+
<!--T:184-->
 
Параметры запроса:
 
Параметры запроса:
  
<!--T:213-->
+
<!--T:185-->
 
#(string) token,
 
#(string) token,
#(int) device_id,
+
#(int) device_id
#(int) period
 
  
<!--T:216-->
+
<!--T:187-->
 
Пример запроса:  
 
Пример запроса:  
  
Строка 1218: Строка 1204:
 
{
 
{
 
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae",
 
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae",
"device_id": 130,
+
"device_id": 130
"period": 1 // количество дней
 
 
}
 
}
 
</pre>
 
</pre>
Строка 1225: Строка 1210:
 
Ответ:
 
Ответ:
  
<!--T:217-->
+
<!--T:189-->
Параметры ответа: (array to objects)
+
Пример ответа (data):
  
<!--T:218-->
+
<!--T:190-->
Пример ответа (data):
 
 
 
<pre>
 
<pre>
[
+
{
{
+
"id":"4046",
"id":"318",
+
"controller_name":"AS_7FD6785CCF5D",
"controller_id":"11",
+
"internal_id":"55",
"external_id":"2",
+
"device_id":"130",
"device_id":"125",
+
"name":"7",
"name":"23",
+
"temp":"240",
"token":"747D3844ABD35B08F27D18D15D7178B7AF99A754D805633928D4362D19B4AEC2",
+
"hum":"245",
"last_seen":"2017-07-21 04:20:27",
+
"illum":"0",
"available":"1",
+
"pres":"1239",
"voltage":"24",
+
"volt":"32",
"have_voltage":"1",
+
"date_time":"2016-03-02 21:09:40",
"current":"2147483647",
+
"new":"0"
"have_current":"1",
+
}
"supp_voltage":"33",
 
"date_create":"2017-07-21 01:20:33",
 
"new":"0"
 
},
 
{
 
"id":"318",
 
"controller_id":"11",
 
...
 
},
 
]
 
 
</pre>
 
</pre>
  
== Получение данных о сторонних устройствах (other-last) == <!--T:219-->
+
== Получение метеоданных за период (period) == <!--T:191-->
  
<!--T:220-->
 
Метод возвращает информацию о последнем обнаруженном стороннем устройстве.
 
 
 
Запрос:
 
Запрос:
  
<!--T:221-->
+
<!--T:192-->
Request URL: [site]/api/device/other-last/
+
Request URL: [site]/api/device/meteo-period/
  
<!--T:222-->
+
<!--T:193-->
 
Параметры запроса:
 
Параметры запроса:
  
<!--T:223-->
+
<!--T:194-->
 
#(string) token,
 
#(string) token,
#(int) device_id
+
(int) device_id,
 +
#(int) period
  
<!--T:225-->
+
<!--T:197-->
 
Пример запроса:
 
Пример запроса:
 
   
 
   
Строка 1281: Строка 1252:
 
{
 
{
 
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae",
 
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae",
"device_id": 118
+
"device_id": 130,
 +
"period": 1 // количество дней
 
}
 
}
 
</pre>
 
</pre>
  
 +
<!--T:198-->
 
Ответ:
 
Ответ:
  
<!--T:227-->
+
<!--T:199-->
 +
параметры ответа (array to objects):
 +
 
 +
<!--T:200-->
 
Пример ответа (data):  
 
Пример ответа (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",
 +
"controller_name":"AS_7FD6785CCF5D
 +
...
 +
},
 +
]
 
</pre>
 
</pre>
  
 
+
== Получение данных электропитания (last) == <!--T:201-->
== Получение данных о сторонних устройствах за период (other-period) == <!--T:228-->
+
 
 
 
Запрос:
 
Запрос:
  
<!--T:229-->
+
Request URL: [site]/api/device/electro-last/
Request URL: [site]/api/device/other-period/
 
  
<!--T:230-->
+
<!--T:202-->
 
Параметры запроса:
 
Параметры запроса:
  
<!--T:231-->
+
<!--T:203-->
 
#(string) token,
 
#(string) token,
#(int) device_id,
+
#(int) device_id
#(int) period
 
  
<!--T:234-->
+
<!--T:205-->
 
Пример запроса:
 
Пример запроса:
 
+
<pre>  
+
<pre>
 
{
 
{
 
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae",
 
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae",
"device_id": 118,
+
"device_id": 130
"period": 1 // количество дней
 
 
}
 
}
 
</pre>
 
</pre>
  
 +
<!--T:206-->
 
Ответ:
 
Ответ:
  
<!--T:236-->
+
<!--T:208-->
Пример ответа (data):
+
Пример ответа (data):  
+
 
 +
<!--T:209-->
 
<pre>
 
<pre>
 
{
 
{
"id":"1301",
+
"id":"318",
"controller_id":"6",
+
"controller_id":"11",
"device_id":"118",
+
"external_id":"2",
"name":"Розетка",
+
"device_id":"125",
"code":"81",
+
"name":"23",
"pulse_len":null,
+
"token":"747D3844ABD35B08F27D18D15D7178B7AF99A754D805633928D4362D19B4AEC2",
"bit_len":null,
+
"last_seen":"2017-07-21 04:20:27",
"protocol":null,
+
"available":"1",
"groups":null,
+
"voltage":"24",
"type":null,
+
"have_voltage":"1",
"date_time":"2017-08-21 04:55:18",
+
"current":"2147483647",
"active":null,
+
"have_current":"1",
"new":"1"
+
"supp_voltage":"33",
},
+
"date_create":"2017-07-21 01:20:33",
{
+
"new":"0"
"id":"4067",
 
"controller_id":"6",
 
...
 
 
}
 
}
</pre>
+
</pre>  
 
 
= Wizard добавления устройств  = <!--T:237-->
 
 
 
 
 
== Датчик открытия двери (create-door-open-sensor) == <!--T:238-->
 
  
 +
== Получение данных электропитания за период (period) == <!--T:210-->
 +
 
Запрос:
 
Запрос:
  
<!--T:239-->
+
<!--T:211-->
URL: [site]/api/wizard/create-door-open-sensor
+
Request URL: [site]/api/device/electro-period/
  
<!--T:240-->
+
<!--T:212-->
 
Параметры запроса:
 
Параметры запроса:
  
#controller_id (required): int
+
<!--T:213-->
#token (required): string, 64
+
#(string) token,
#device_name (optional): string, 256
+
#(int) device_id,
#code_ready (optional): string, 64 //Название кода готовности
+
#(int) period
#code_alarm (optional): string, 64 //Название кода оповещания
 
#code_low_battery (optional): string, 64 //Название кода садящейся батареи
 
  
<!--T:241-->
+
<!--T:216-->
Ответ:  
+
Пример запроса:  
  
Пример ответа:
 
 
 
<pre>
 
<pre>
 
{
 
{
data:{
+
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae",
'response': 'OK'
+
"device_id": 130,
},
+
"period": 1 // количество дней
error: null
 
 
}
 
}
 
</pre>
 
</pre>
  
<!--T:242-->
+
Ответ:
После отправки параметров ожидается срабатывание добавляемого устройства. При срабатывании происходит процесс добавления, и лишь после этого приходит ответ.
 
  
==  Датчик затопления (create-flood-sensor) == <!--T:243-->
+
<!--T:217-->
 +
Параметры ответа: (array to objects)
  
Запрос:
+
<!--T:218-->
 
+
Пример ответа (data):
<!--T:244-->
+
Request URL: [site]/api/wizard/create-flood-sensor
+
<pre>
 
+
[
<!--T:245-->
+
{
Параметры запроса:
+
"id":"318",
 
+
"controller_id":"11",
<!--T:246-->
+
"external_id":"2",
#controller_id (required): int
+
"device_id":"125",
#token (required): string, 64
+
"name":"23",
#device_name (optional): string, 256
+
"token":"747D3844ABD35B08F27D18D15D7178B7AF99A754D805633928D4362D19B4AEC2",
#code_alarm (optional): string, 64 //Название кода оповещения
+
"last_seen":"2017-07-21 04:20:27",
#code_tamper (optional): string, 64 //Название кода вмешательства
+
"available":"1",
#code_low_battery (optional): string, 64 //Название кода садящейся батареи
+
"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>
  
<!--T:251-->
+
== Получение данных о сторонних устройствах (other-last) == <!--T:219-->
Ответ:
 
  
Пример ответа:
+
<!--T:220-->
 +
Метод возвращает информацию о последнем обнаруженном стороннем устройстве.
 +
 +
Запрос:
 +
 
 +
<!--T:221-->
 +
Request URL: [site]/api/device/other-last/
 +
 
 +
<!--T:222-->
 +
Параметры запроса:
 +
 
 +
<!--T:223-->
 +
#(string) token,
 +
#(int) device_id
 +
 
 +
<!--T:225-->
 +
Пример запроса:
 
   
 
   
 
<pre>
 
<pre>
 
{
 
{
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>
  
  
== Пульт,4 кнопки (create-console) == <!--T:252-->
+
== Получение данных о сторонних устройствах за период (other-period) == <!--T:228-->
 
 
Запрос:
 
 
 
<!--T:253-->
 
Request URL: [site]/api/wizard/create-console
 
 
 
<!--T:254-->
 
Параметры запроса:
 
  
<!--T:255-->
+
Запрос:
#controller_id (required): int
 
#token (required): string, 64
 
#device_name (optional): string, 256
 
#code_lock (optional): string, 64 //Название кода блокировки
 
#code_unlock (optional): string, 64 //Название кода разблокировки
 
#code_s (optional): string, 64 //Название кода s
 
#code_alarm (optional): string, 64 //Название кода оповещения
 
  
<!--T:262-->
+
<!--T:229-->
Ответ:  
+
Request URL: [site]/api/device/other-period/
  
Пример ответа:
+
<!--T:230-->
 +
Параметры запроса:
  
<pre>
+
<!--T:231-->
{
+
#(string) token,
data: {
+
#(int) device_id,
'response': 'OK'
+
#(int) period
},
+
 
error: null
+
<!--T:234-->
 +
Пример запроса:
 +
 
 +
<pre>  
 +
{
 +
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae",
 +
"device_id": 118,
 +
"period": 1 // количество дней
 
}
 
}
 
</pre>
 
</pre>
  
После отправки параметров ожидается срабатывание добавляемого устройства. При срабатывании происходит процесс добавления, и лишь после этого приходит ответ.
+
Ответ:
  
 
+
<!--T:236-->
== Сирена (create-siren) == <!--T:263-->
+
Пример ответа (data):
 
+
Запрос:
+
<pre>
 
+
{
<!--T:264-->
+
"id":"1301",
Request URL: [site]/api/wizard/create-siren
+
"controller_id":"6",
 
+
"device_id":"118",
<!--T:265-->
+
"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>
 +
 
 +
= Wizard добавления устройств  = <!--T:237-->
 +
 
 +
 
 +
== Датчик открытия двери (create-door-open-sensor) == <!--T:238-->
 +
 
 +
Запрос:
 +
 
 +
<!--T:239-->
 +
URL: [site]/api/wizard/create-door-open-sensor
 +
 
 +
<!--T:240-->
 
Параметры запроса:
 
Параметры запроса:
  
<!--T:266-->
 
 
#controller_id (required): int
 
#controller_id (required): int
 
#token (required): string, 64
 
#token (required): string, 64
 
#device_name (optional): string, 256
 
#device_name (optional): string, 256
#code_on (optional): string, 64 //Название кода включения
+
#code_ready (optional): string, 64 //Название кода готовности
#code_off (optional): string, 64 //Название кода выключения
+
#code_alarm (optional): string, 64 //Название кода оповещания
#code_blank (optional): string, 64 //Название кода blank
+
#code_low_battery (optional): string, 64 //Название кода садящейся батареи
  
<!--T:272-->
+
<!--T:241-->
Ответ:
+
Ответ:  
  
 
Пример ответа:
 
Пример ответа:
Строка 1495: Строка 1532:
 
<pre>
 
<pre>
 
{
 
{
data: {
+
data:{
 
'response': 'OK'
 
'response': 'OK'
 
},
 
},
Строка 1502: Строка 1539:
 
</pre>
 
</pre>
  
Перед отправкой параметров необходимо перевести сирену в режим обучения.
+
<!--T:242-->
 +
После отправки параметров ожидается срабатывание добавляемого устройства. При срабатывании происходит процесс добавления, и лишь после этого приходит ответ.
  
 
+
== Датчик затопления (create-flood-sensor) == <!--T:243-->
== Метеостанция: получение списка обнаруженных метеостанций за последние 10 минут (get-meteos) == <!--T:273-->
 
  
 
Запрос:
 
Запрос:
  
Request URL: [site]/api/wizard/get-meteos
+
<!--T:244-->
 +
Request URL: [site]/api/wizard/create-flood-sensor
  
<!--T:274-->
+
<!--T:245-->
 
Параметры запроса:
 
Параметры запроса:
  
<!--T:275-->
+
<!--T:246-->
 
#controller_id (required): int
 
#controller_id (required): int
 
#token (required): string, 64
 
#token (required): string, 64
 +
#device_name (optional): string, 256
 +
#code_alarm (optional): string, 64 //Название кода оповещения
 +
#code_tamper (optional): string, 64 //Название кода вмешательства
 +
#code_low_battery (optional): string, 64 //Название кода садящейся батареи
  
<!--T:277-->
+
<!--T:251-->
 
Ответ:
 
Ответ:
  
 
Пример ответа:
 
Пример ответа:
 
+
 
<pre>
 
<pre>
 
{
 
{
"error":null,
+
data: {
"data":[
+
'response': 'OK'
{
+
},
"id":"93",
+
error: null
"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-->
+
После отправки параметров ожидается срабатывание добавляемого устройства. При срабатывании происходит процесс добавления, и лишь после этого приходит ответ.
 +
 
 +
 
 +
== Пульт,4 кнопки (create-console) == <!--T:252-->
  
 
Запрос:
 
Запрос:
  
<!--T:279-->
+
<!--T:253-->
Request URL: [site][site]/api/wizard/create-meteo
+
Request URL: [site]/api/wizard/create-console
  
<!--T:280-->
+
<!--T:254-->
 
Параметры запроса:
 
Параметры запроса:
  
<!--T:281-->
+
<!--T:255-->
 
#controller_id (required): int
 
#controller_id (required): int
 
#token (required): string, 64
 
#token (required): string, 64
#meteo_num (required): int //Получается в списке выше
 
 
#device_name (optional): string, 256
 
#device_name (optional): string, 256
 
+
#code_lock (optional): string, 64 //Название кода блокировки
<!--T:285-->
+
#code_unlock (optional): string, 64 //Название кода разблокировки
Ответ:
+
#code_s (optional): string, 64 //Название кода s
 +
#code_alarm (optional): string, 64 //Название кода оповещения
 +
 
 +
<!--T:262-->
 +
Ответ:  
  
 
Пример ответа:
 
Пример ответа:
+
 
 
<pre>
 
<pre>
 
{
 
{
"error":null,
+
data: {
"data":{
+
'response': 'OK'
"response":"OK"
+
},
}
+
error: null
 
}
 
}
 
</pre>
 
</pre>
  
== Водопроводный кран == <!--T:286-->
+
После отправки параметров ожидается срабатывание добавляемого устройства. При срабатывании происходит процесс добавления, и лишь после этого приходит ответ.
  
<!--T:287-->
 
Порядок добавления крана:
 
  
1) Сгенерировать коды
+
== Сирена (create-siren) == <!--T:263-->
  
<!--T:288-->
+
Запрос:
2) Зажать на кране кнопку, пока кран не мигнёт трижды
 
  
<!--T:289-->
+
<!--T:264-->
3) Отправить один код
+
Request URL: [site]/api/wizard/create-siren
  
<!--T:290-->
+
<!--T:265-->
4) Нажать на кране кнопку однократно
+
Параметры запроса:
  
<!--T:291-->
+
<!--T:266-->
5) Зажать на кране кнопку, пока не мигнёт 4 раза
+
#controller_id (required): int
 +
#token (required): string, 64
 +
#device_name (optional): string, 256
 +
#code_on (optional): string, 64 //Название кода включения
 +
#code_off (optional): string, 64 //Название кода выключения
 +
#code_blank (optional): string, 64 //Название кода blank
  
<!--T:292-->
+
<!--T:272-->
6) Отправить второй код из сгенерированных
+
Ответ:
  
<!--T:293-->
+
Пример ответа:
7) Нажать на кране кнопку однократно
+
 +
<pre>
 +
{
 +
data: {
 +
'response': 'OK'
 +
},
 +
error: null
 +
}
 +
</pre>
  
<!--T:294-->
+
Перед отправкой параметров необходимо перевести сирену в режим обучения.
8) Отправить запрос на создание крана.
 
  
  
=== Генерация кодов === <!--T:295-->
+
== Метеостанция: получение списка обнаруженных метеостанций за последние 10 минут (get-meteos) == <!--T:273-->
  
 
Запрос:
 
Запрос:
  
<!--T:296-->
+
Request URL: [site]/api/wizard/get-meteos
Request URL: [site]/api/wizard/create-codes
 
  
<!--T:297-->
+
<!--T:274-->
 
Параметры запроса:
 
Параметры запроса:
  
<!--T:298-->
+
<!--T:275-->
 
#controller_id (required): int
 
#controller_id (required): int
 
#token (required): string, 64
 
#token (required): string, 64
  
<!--T:300-->
+
<!--T:277-->
 
Ответ:
 
Ответ:
  
Строка 1629: Строка 1669:
 
{
 
{
 
"error":null,
 
"error":null,
"data":
+
"data":[
{
+
{
"response":{
+
"id":"93",
"id":30,
+
"controller_id":"79",
"masks":"[6,4,0,1]",
+
"date":"1528389351",
"code_1":"9920950",
+
"type":"7",
"code_2":"9920948",
+
"family":"0",
"code_3":"9920944",
+
"rf_code":null,
"code_4":"9920945"
+
"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-->
  
=== Выполнение кода === <!--T:301-->
+
Запрос:
  
Запрос:
+
<!--T:279-->
 +
Request URL: [site][site]/api/wizard/create-meteo
  
<!--T:302-->
+
<!--T:280-->
Request URL: [site]/api/wizard/execute-code
 
 
 
<!--T:303-->
 
 
Параметры запроса:
 
Параметры запроса:
  
<!--T:304-->
+
<!--T:281-->
 
#controller_id (required): int
 
#controller_id (required): int
 
#token (required): string, 64
 
#token (required): string, 64
#code (required): int // Берется из сгенерированных
+
#meteo_num (required): int //Получается в списке выше
 +
#device_name (optional): string, 256
  
<!--T:307-->
+
<!--T:285-->
 
Ответ:
 
Ответ:
  
 
Пример ответа:
 
Пример ответа:
 
+
 
<pre>
 
<pre>
 
{
 
{
error: null,
+
"error":null,
data: {
+
"data":{
 
"response":"OK"
 
"response":"OK"
 
}
 
}
Строка 1673: Строка 1721:
 
</pre>
 
</pre>
  
=== Добавление крана === <!--T:308-->
+
== Водопроводный кран == <!--T:286-->
  
Запрос:
+
<!--T:287-->
 +
Порядок добавления крана:
  
<!--T:309-->
+
1) Сгенерировать коды
Request URL: [site]/api/wizard/create-crane-by-codes
 
  
<!--T:310-->
+
<!--T:288-->
Параметры запроса:
+
2) Зажать на кране кнопку, пока кран не мигнёт трижды
  
<!--T:311-->
+
<!--T:289-->
#controller_id (required): int
+
3) Отправить один код
#token (required): string, 64
 
#code_1 (required): int
 
#code_2 (required): int
 
#device_name (optional): string, 256
 
#code_open (optional): string, 64 //Название кода открытия
 
#code_close (optional): string, 64 //Название кода закрытия
 
  
<!--T:318-->
+
<!--T:290-->
Ответ:
+
4) Нажать на кране кнопку однократно
  
Пример ответа:
+
<!--T:291-->
 +
5) Зажать на кране кнопку, пока не мигнёт 4 раза
  
<pre>
+
<!--T:292-->
{
+
6) Отправить второй код из сгенерированных
data:{'response': 'OK'},
 
error: null
 
}
 
</pre>
 
  
== Добавление розетки == <!--T:319-->
+
<!--T:293-->
 +
7) Нажать на кране кнопку однократно
  
<!--T:320-->
+
<!--T:294-->
Порядок добавления розетки следующий:
+
8) Отправить запрос на создание крана.
  
<!--T:321-->
 
1) Сгенерировать коды
 
  
<!--T:322-->
+
=== Генерация кодов === <!--T:295-->
2) Зажать на розетке кнопку, пока она не начнет мигать
 
 
 
<!--T:323-->
 
3) Отправить один код
 
 
 
<!--T:324-->
 
4) Зажать на розетке кнопку, пока она не начнет мигать
 
 
 
<!--T:325-->
 
5) Отправить второй код из сгенерированых
 
 
 
<!--T:326-->
 
6) Отправить запрос на создание розетки
 
 
 
 
 
=== Генерация кодов (create-codes) === <!--T:327-->
 
  
 
Запрос:
 
Запрос:
  
<!--T:328-->
+
<!--T:296-->
 
Request URL: [site]/api/wizard/create-codes
 
Request URL: [site]/api/wizard/create-codes
  
<!--T:329-->
+
<!--T:297-->
 
Параметры запроса:
 
Параметры запроса:
  
<!--T:330-->
+
<!--T:298-->
 
#controller_id (required): int
 
#controller_id (required): int
 
#token (required): string, 64
 
#token (required): string, 64
#socket (required): любое значение.
 
  
<!--T:333-->
+
<!--T:300-->
 
Ответ:
 
Ответ:
  
Строка 1751: Строка 1772:
 
{
 
{
 
"error":null,
 
"error":null,
"data":{
+
"data":
"response":{"id":30,"masks":"[257, 258]","code_1":"8737025","code_2":"8737026"}
+
{
}
+
"response":{
}
+
"id":30,
</pre>
+
"masks":"[6,4,0,1]",
 +
"code_1":"9920950",
 +
"code_2":"9920948",
 +
"code_3":"9920944",
 +
"code_4":"9920945"
 +
}
 +
}
 +
}
 +
</pre>
 +
 
  
=== Выполнение кода (execute-code) === <!--T:334-->
+
=== Выполнение кода === <!--T:301-->
  
 
Запрос:
 
Запрос:
  
<!--T:335-->
+
<!--T:302-->
 
Request URL: [site]/api/wizard/execute-code
 
Request URL: [site]/api/wizard/execute-code
  
<!--T:336-->
+
<!--T:303-->
 
Параметры запроса:
 
Параметры запроса:
  
<!--T:337-->
+
<!--T:304-->
 
#controller_id (required): int
 
#controller_id (required): int
 
#token (required): string, 64
 
#token (required): string, 64
 
#code (required): int // Берется из сгенерированных
 
#code (required): int // Берется из сгенерированных
  
<!--T:340-->
+
<!--T:307-->
 
Ответ:
 
Ответ:
  
 
Пример ответа:
 
Пример ответа:
+
 
 
<pre>
 
<pre>
 
{
 
{
 
error: null,
 
error: null,
data: {'response' => 'OK'}
+
data: {
 +
"response":"OK"
 +
}
 
}
 
}
 
</pre>
 
</pre>
  
 
+
=== Добавление крана === <!--T:308-->
=== Добавление розетки (create-socket) === <!--T:341-->
 
  
 
Запрос:
 
Запрос:
  
<!--T:342-->
+
<!--T:309-->
Request URL: [site]/api/wizard/create-socket
+
Request URL: [site]/api/wizard/create-crane-by-codes
  
<!--T:343-->
+
<!--T:310-->
 
Параметры запроса:
 
Параметры запроса:
  
<!--T:344-->
+
<!--T:311-->
 
#controller_id (required): int
 
#controller_id (required): int
 
#token (required): string, 64
 
#token (required): string, 64
Строка 1801: Строка 1832:
 
#code_2 (required): int
 
#code_2 (required): int
 
#device_name (optional): string, 256
 
#device_name (optional): string, 256
#code_off (optional): string, 64 //Название кода открытия
+
#code_open (optional): string, 64 //Название кода открытия
#code_on (optional): string, 64 //Название кода закрытия
+
#code_close (optional): string, 64 //Название кода закрытия
  
<!--T:351-->
+
<!--T:318-->
Ответ:
+
Ответ:  
  
 
Пример ответа:
 
Пример ответа:
+
 
 
<pre>
 
<pre>
 
{
 
{
data: {'response':'OK'},
+
data:{'response': 'OK'},
 
error: null
 
error: null
 
}
 
}
 
</pre>
 
</pre>
  
= Сценарии = <!--T:352-->
+
== Добавление розетки == <!--T:319-->
 +
 
 +
<!--T:320-->
 +
Порядок добавления розетки следующий:
  
== Получение списка сценариев (list) == <!--T:353-->
+
<!--T:321-->
 +
1) Сгенерировать коды
  
<!--T:354-->
+
<!--T:322-->
Запрос:
+
2) Зажать на розетке кнопку, пока она не начнет мигать
  
Request URL: [site]/api/scheduler/list/
+
<!--T:323-->
 +
3) Отправить один код
  
<!--T:355-->
+
<!--T:324-->
Параметры запроса: (string) token
+
4) Зажать на розетке кнопку, пока она не начнет мигать
 +
 
 +
<!--T:325-->
 +
5) Отправить второй код из сгенерированых
 +
 
 +
<!--T:326-->
 +
6) Отправить запрос на создание розетки
 +
 
 +
 
 +
=== Генерация кодов (create-codes) === <!--T:327-->
 +
 
 +
Запрос:
 +
 
 +
<!--T:328-->
 +
Request URL: [site]/api/wizard/create-codes
 +
 
 +
<!--T:329-->
 +
Параметры запроса:
 +
 
 +
<!--T:330-->
 +
#controller_id (required): int
 +
#token (required): string, 64
 +
#socket (required): любое значение.
 +
 
 +
<!--T:333-->
 +
Ответ:
 +
 
 +
Пример ответа:
  
<!--T:356-->
 
Пример запроса:
 
 
 
<pre>
 
<pre>
 
{
 
{
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"
+
"error":null,
 +
"data":{
 +
"response":{"id":30,"masks":"[257, 258]","code_1":"8737025","code_2":"8737026"}
 +
}
 
}
 
}
 
</pre>
 
</pre>
  
<!--T:357-->
+
=== Выполнение кода  (execute-code) === <!--T:334-->
Ответ:  
+
 
 +
Запрос:
 +
 
 +
<!--T:335-->
 +
Request URL: [site]/api/wizard/execute-code
 +
 
 +
<!--T:336-->
 +
Параметры запроса:
 +
 
 +
<!--T:337-->
 +
#controller_id (required): int
 +
#token (required): string, 64
 +
#code (required): int // Берется из сгенерированных
 +
 
 +
<!--T:340-->
 +
Ответ:
  
<!--T:359-->
 
 
Пример ответа:
 
Пример ответа:
 
   
 
   
 
<pre>
 
<pre>
 
{
 
{
"error":null,
+
error: null,
"data"
+
data: {'response' => 'OK'}
"schedulers":[
+
}
{
+
</pre>
"id":83,
+
 
"external_id":23,
+
 
"name":"Test 444",
+
=== Добавление розетки (create-socket) === <!--T:341-->
"operation":"local",
+
 
"armed":2,
+
Запрос:
"type":"meteo",
 
"active":0,
 
"action"
 
"action_id":1,
 
"controller_id":109,
 
"device_id":1747,
 
"code_id":1100,
 
"device_external_id":64,
 
"armed":1,
 
"groups":7,
 
"sensor_type":"1",
 
"date":"00:00",
 
"repetition":"1",
 
"logic_operation":"=",
 
"value":"9"
 
},
 
"target"
 
"target_id":2,
 
"controller_id":109,
 
"device_id":0,
 
"device_external_id":0,
 
"code_id":0,
 
"external_cod_id":0,
 
"armed":0,
 
"groups":168
 
}
 
},
 
{
 
"id":84,
 
"external_id":24,
 
...
 
}]
 
}
 
}
 
  
<!--T:360-->
+
<!--T:342-->
</pre>
+
Request URL: [site]/api/wizard/create-socket
  
== Обновление сценариев (update) == <!--T:361-->
+
<!--T:343-->
 +
Параметры запроса:
  
<!--T:362-->
+
<!--T:344-->
Запрос осуществляется в 2 этапа: на первом этапе происходит при запросе на обновление Контроллера (см. "Обновление Контроллера");
+
#controller_id (required): int
на втором этапе обновляется информация о каждом действии.
+
#token (required): string, 64
 +
#code_1 (required): int
 +
#code_2 (required): int
 +
#device_name (optional): string, 256
 +
#code_off (optional): string, 64 //Название кода открытия
 +
#code_on (optional): string, 64 //Название кода закрытия
  
<!--T:363-->
+
<!--T:351-->
Запрос:
+
Ответ:
  
Request URL: [site]/api/scheduler/update/
+
Пример ответа:
 
 
<!--T:364-->
 
Параметры запроса:
 
 
 
<!--T:365-->
 
#(int) controller_id,
 
#(string) token
 
 
 
Пример запроса:
 
 
   
 
   
 
<pre>
 
<pre>
 
{
 
{
"controller_id": 6 ,
+
data: {'response':'OK'},
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae",
+
error: null
 
}
 
}
 
</pre>
 
</pre>
  
<!--T:368-->
+
= Сценарии = <!--T:352-->
Ответ:
 
  
<!--T:370-->
+
== Получение списка сценариев (list) == <!--T:353-->
Пример ответа:
 
 
<pre>
 
{
 
"result": "Ok" // ответ что запрос ушел
 
}
 
</pre>
 
  
Процесс обновления происходит автоматически. Для получения результата требуется таймаут, после чего делается стандартный запрос на получение данных (Контроллер, действия)
+
<!--T:354-->
 
 
 
 
== Информация о сценарии (info) == <!--T:371-->
 
 
 
<!--T:372-->
 
 
Запрос:
 
Запрос:
  
Request URL: [site]/api/scheduler/info/
+
Request URL: [site]/api/scheduler/list/
  
<!--T:373-->
+
<!--T:355-->
Параметры запроса:
+
Параметры запроса: (string) token
  
<!--T:374-->
+
<!--T:356-->
#(int) scheduler_id,
 
#(string) token
 
 
 
<!--T:376-->
 
 
Пример запроса:
 
Пример запроса:
 
   
 
   
 
<pre>
 
<pre>
 
{
 
{
"scheduler_id": 122,
 
 
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"
 
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"
 
}
 
}
 
</pre>
 
</pre>
  
Ответ:
+
<!--T:357-->
 +
Ответ:  
  
<!--T:378-->
+
<!--T:359-->
Пример ответа (data):
+
Пример ответа:
 
   
 
   
 
<pre>
 
<pre>
 
{
 
{
"id":107,
+
"error":null,
"external_id":6,
+
"data"
"name":"Test 1.1.1",
+
"schedulers":[
"operation":"local",
+
{
"armed":1,
+
"id":83,
"type":"device",
+
"external_id":23,
"active":1,
+
"name":"Test 444",
"action":{
+
"operation":"local",
"action_id":1,
+
"armed":2,
"controller_id":111,
+
"type":"meteo",
"device_id":1824,
+
"active":0,
"code_id":1399,
+
"action"
"device_external_id":18,
+
"action_id":1,
"armed":0,
+
"controller_id":109,
"groups":0,
+
"device_id":1747,
"sensor_type":"0",
+
"code_id":1100,
"date":null,
+
"device_external_id":64,
"repetition":"0",
+
"armed":1,
"logic_operation":"=",
+
"groups":7,
"value":null
+
"sensor_type":"1",
},
+
"date":"00:00",
"targets":[
+
"repetition":"1",
{
+
"logic_operation":"=",
"id":87,
+
"value":"9"
"type_id":3,
+
},
"controller_id":111,
+
"target"
"device_id":0,
+
"target_id":2,
"code_id":0,
+
"controller_id":109,
"device_external_id":0,
+
"device_id":0,
"armed":1,
+
"device_external_id":0,
"groups":0
+
"code_id":0,
 +
"external_cod_id":0,
 +
"armed":0,
 +
"groups":168
 +
}
 
},
 
},
 
{
 
{
"id":88,
+
"id":84,
"type_id":1,
+
"external_id":24,
"controller_id":113,
+
...
"device_id":13,
+
}]
"code_id":123,
+
}
"device_external_id":1234,
 
"armed":0,
 
"groups":0
 
},
 
]
 
 
}
 
}
 +
 +
<!--T:360-->
 
</pre>
 
</pre>
  
 +
== Обновление/добавление сценариев (update) == <!--T:361-->
  
 +
<!--T:362-->
 +
Запрос осуществляется в 2 этапа: на первом этапе происходит при запросе на обновление Контроллера (см. "Обновление Контроллера");
 +
на втором этапе обновляется информация о каждом действии.
  
== Обновление сценариев (update) == <!--T:371-->
+
<!--T:363-->
 +
Запрос:
  
Обновление состоит из двух запросов: 1) обновление действия, вызывающего событие; 2) обновления целей сработки.
+
Request URL: [site]/api/scheduler/update/
При этом запросы можно делать независимо друг от друга.
 
  
=== Обновление действия события (Update-action) ===
+
<!--T:364-->
 +
Параметры запроса:
  
Request URL: [site]/api/scheduler/update-action/
+
<!--T:365-->
 
+
#(int) controller_id,
Параметры запроса:
+
#(string) token
 
 
#(int) scheduler_id,
 
#(string) token,
 
#(string) name,
 
#(int) "active"
 
#(int) "send_sms"  // 1 - отправлять / 0 - не отправлять
 
#(int) "make_call"  // 1 - отправлять / 0 - не отправлять
 
#(int) "armed"  // 0 - в любом режиме, 1 - в режиме охраны, 2 - без режима охраны
 
#(int) "action_id",
 
#(int) "action_device_id",
 
#(int) "action_code_id",
 
#(int) "action_armed",
 
#(int) "action_groups",  // битовая маска группы от 1 до 8
 
#(string) "action_repetition",  // только для расписания: номер дней повторения через запятую от 1 до 7
 
#(string) "action_event_time",    // только для расписания: время повторения
 
#(int) "action_sensor_type",  // только для метео устройств: 1 - напряжение, 2 - температура, 3 - влажность, 4 - Атм. давление, 5 - Освещенность , 0 - не выбрано
 
#(string) "action_logic_operation",  // логическая операция : '=', '!=', '<', '>', '<=', '>=', 'in', 'like'
 
#(int) "action_value"
 
  
 
Пример запроса:
 
Пример запроса:
 +
 
<pre>
 
<pre>
 
{
 
{
"scheduler_id": 6 ,
+
"controller_id": 6 ,
 
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae",
 
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae",
"name": "New name",
 
"active": 1,
 
"send_sms": 0,
 
"make_call": 1,
 
"armed": 2,   
 
"action_id" : 2,
 
"action_device_id" : 2,
 
"action_code_id" : 4,
 
"action_armed" : 0,
 
"action_groups" : 7, 
 
"action_repetition" : "1,3", 
 
"action_event_time" : "10:00", 
 
"action_sensor_type" : 2,
 
"action_logic_operation" : "=", 
 
"action_value" : 35, 
 
 
}
 
}
 
</pre>
 
</pre>
 +
 +
<!--T:368-->
 
Ответ:
 
Ответ:
  
 +
<!--T:370-->
 
Пример ответа:
 
Пример ответа:
 +
 
<pre>
 
<pre>
 
{
 
{
"result": "Ok" // ответ о том, что запрос отправлен.
+
"result": "Ok" // ответ что запрос ушел
 
}
 
}
 
</pre>
 
</pre>
  
=== Обновление цели события (Update-target) ===
+
Процесс обновления происходит автоматически. Для получения результата требуется таймаут, после чего делается стандартный запрос на получение данных (Контроллер, действия)
 +
 
 +
== Информация о сценарии (info) == <!--T:371-->
  
 +
<!--T:372-->
 +
Запрос:
  
Request URL: [site]/api/scheduler/update-target/
+
Request URL: [site]/api/scheduler/info/
  
 +
<!--T:373-->
 
Параметры запроса:
 
Параметры запроса:
  
#(int) target_id,
+
<!--T:374-->
#(string) token,
+
#(int) scheduler_id,
#(int) "target_type_id",
+
#(string) token
#(int) "target_device_id",
 
#(int) "target_code_id",
 
#(int) "target_armed",
 
#(int) "target_groups",  // битовая маска группы от 1 до 8
 
  
 +
<!--T:376-->
 
Пример запроса:
 
Пример запроса:
 +
 
<pre>
 
<pre>
 
{
 
{
"target_id": 6 ,
+
"scheduler_id": 122,
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"
+
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"
"target_type_id" : 2,
+
}
"target_device_id" : 2,
+
</pre>
"target_code_id" : 4,
 
"target_armed" : 0,
 
"target_groups" : 7
 
}
 
</pre>
 
  
 
Ответ:
 
Ответ:
  
Пример ответа:
+
<!--T:378-->
 
+
Пример ответа (data):
<pre>
 
{
 
"result": "Ok" // ответ о том, что запрос отправлен.
 
}
 
</pre>
 
 
 
 
 
= Логи пользователя (logs) = <!--T:379-->
 
 
 
Запрос:
 
 
 
<!--T:380-->
 
Request URL: [site]/api/profile/logs/
 
 
 
<!--T:381-->
 
Параметры запроса: (string) token, (int) page, (int) limit
 
 
 
<!--T:382-->
 
Пример запроса:
 
 
   
 
   
 
<pre>
 
<pre>
 
{
 
{
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae",
+
"id":107,
"page": 1 // номер страницы лога
+
"external_id":6,
"limit": 20 // количество логов на странице , по умолчанию 20, максимум 100
+
"name":"Test 1.1.1",
}
+
"operation":"local",
</pre>
+
"armed":1,
 
+
"type":"device",
Ответ:
+
"active":1,
 
+
"action":{
Пример ответа:  
+
"action_id":1,
 
+
"controller_id":111,
<pre>
+
"device_id":1824,
[
+
"code_id":1399,
{
+
"device_external_id":18,
"id":15,
+
"armed":0,
"controller":"Test Valera",
+
"groups":0,
"action_name":"",
+
"sensor_type":"0",
"device":"",
+
"date":null,
"cod":"",
+
"repetition":"0",
"action_pack":"",
+
"logic_operation":"=",
"date_create":"2019-06-20 15:57:26",
+
"value":null
"status":0
+
},
},
+
"targets":[
{
+
{
"id":14,
+
"id":87,
"controller":"Test Valera",
+
"type_id":3,
"action_name":"",
+
"controller_id":111,
"device":"",
+
"device_id":0,
"cod":"",
+
"code_id":0,
"action_pack":"",
+
"device_external_id":0,
"date_create":"2019-06-20 15:57:18",
+
"armed":1,
"status":0
+
"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>
  
= Коды = <!--T:383-->
 
  
== Получение информации о коде (info) == <!--T:384-->
 
  
<!--T:385-->
+
== Обновление сценариев (update) == <!--T:371-->
Запрос:
 
  
<!--T:386-->
+
Обновление состоит из двух запросов: 1) обновление действия, вызывающего событие; 2) обновления целей сработки.
Request URL: [site]/api/property/info/
+
При этом запросы можно делать независимо друг от друга.
  
<!--T:387-->
+
=== Обновление/добавление действий и событий сценария (Update-action) ===
Параметры запроса:
 
#(int) controller_id,
 
#(int) device_id,
 
#(int) code_id,
 
#(string) token
 
  
<!--T:391-->
+
Request URL: [site]/api/scheduler/update-action/
Пример запроса:
 
  
<pre>
+
Параметры запроса:
{
 
"controller_id": 6,
 
"device_id": 109,
 
"code_id": 192,
 
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"
 
}
 
</pre>
 
  
<!--T:393-->
+
#(int) scheduler_id,
Ответ:
+
#(string) token,
 
+
#(string) name,
<!--T:394-->
+
#(int) "active"
Пример ответа (data):
+
#(int) "send_sms"  // 1 - отправлять / 0 - не отправлять
 +
#(int) "make_call"  // 1 - отправлять / 0 - не отправлять
 +
#(int) "armed"  // 0 - в любом режиме, 1 - в режиме охраны, 2 - без режима охраны
 +
#(int) "action_id",
 +
#(int) "action_device_id",
 +
#(int) "action_code_id",
 +
#(int) "action_armed",
 +
#(int) "action_groups",  // битовая маска группы от 1 до 8
 +
#(string) "action_repetition",  // только для расписания: номер дней повторения через запятую от 1 до 7
 +
#(string) "action_event_time",    // только для расписания: время повторения
 +
#(int) "action_sensor_type",  // только для метео устройств: 1 - напряжение, 2 - температура, 3 - влажность, 4 - Атм. давление, 5 - Освещенность , 0 - не выбрано
 +
#(string) "action_logic_operation",  // логическая операция : '=', '!=', '<', '>', '<=', '>=', 'in', 'like'
 +
#(int) "action_value"
  
 +
Пример запроса:
 
<pre>
 
<pre>
 
{
 
{
"id":"192",
+
"scheduler_id": 6 ,
"external_cod_id":"67",
+
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae",
"device_id":"109",
+
"name": "New name",
"name":"4 OFF",
+
"active": 1,
"code":"12209156",
+
"send_sms": 0,  
"protocol":"1",
+
"make_call": 1,
"pulse_len":null,
+
"armed": 2,  
"group_1":"1",
+
"action_id" : 2,
"group_2":"0",
+
"action_device_id" : 2,
"group_3":"0",
+
"action_code_id" : 4,
"group_4":"0",
+
"action_armed" : 0,
"group_5":"0",
+
"action_groups" : 7,  
"group_6":"0",
+
"action_repetition" : "1,3",
"group_7":"0",
+
"action_event_time" : "10:00",  
"group_8":"0",
+
"action_sensor_type" : 2,  
"active":"1"
+
"action_logic_operation" : "=",  
 +
"action_value" : 35, 
 
}
 
}
 
</pre>
 
</pre>
 
== Изменение имени кода (update-code-name) == <!--T:395-->
 
 
Запрос:
 
<!--T:396-->
 
Request URL: [site]/api/device/update-code-name
 
 
<!--T:397-->
 
Параметры запроса:
 
 
<!--T:398-->
 
#token (required): string(64)
 
#code_id (required): int
 
#name (optional): string(255)
 
 
<!--T:401-->
 
 
Ответ:
 
Ответ:
  
 
Пример ответа:
 
Пример ответа:
 
 
<pre>
 
<pre>
 
{
 
{
data: {
+
"result": "Ok" // ответ о том, что запрос отправлен.
'message': "OK"
 
},
 
error: null
 
 
}
 
}
 
</pre>
 
</pre>
  
== Получение кодов по типу сигнала (get-codes-by-subtype) == <!--T:402-->
+
=== Обновление цели события (Update-target) ===
  
Запрос:
 
  
<!--T:403-->
+
Request URL: [site]/api/scheduler/update-target/
Request URL: [site]/api/device/get-codes-by-subtype
 
  
<!--T:404-->
 
 
Параметры запроса:
 
Параметры запроса:
  
<!--T:405-->
+
#(int) target_id,
#token (required): string(64)
+
#(string) token,
#device_subtype_id (optional): int, default 0.
+
#(int) "target_type_id",
 +
#(int) "target_device_id",
 +
#(int) "target_code_id",
 +
#(int) "target_armed",
 +
#(int) "target_groups",  // битовая маска группы от 1 до 8
 +
 
 +
Пример запроса:
 +
<pre>
 +
{
 +
"target_id": 6 ,
 +
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae", 
 +
"target_type_id" : 2,
 +
"target_device_id" : 2,
 +
"target_code_id" : 4,
 +
"target_armed" : 0,
 +
"target_groups" : 7
 +
}
 +
</pre>
  
 
Ответ:
 
Ответ:
Строка 2264: Строка 2247:
 
Пример ответа:
 
Пример ответа:
  
 +
<pre>
 
{
 
{
"code"
+
"result": "Ok" // ответ о том, что запрос отправлен.
"id":131,
+
}
"controller_id":109,
+
</pre>
"device_type_id":0,
+
 
"device_subtype_id":1,
+
 
"code":"655370",
+
= Логи пользователя (logs) = <!--T:379-->
"protocol":1,
+
 
"bit_len":24,
+
Запрос:
"pulse_len":283,
+
 
"freq":2,"address":null,
+
<!--T:380-->
"num":null,
+
Request URL: [site]/api/profile/logs/
"date_create":"2019-03-13 17:35:05",
+
 
"device_id":null
+
<!--T:381-->
},
+
Параметры запроса: (string) token, (int) page, (int) limit
"devices":[
+
 
{
+
<!--T:382-->
"id":"1684",
+
Пример запроса:
"external_id":"64",
+
"controller_id":"109",
+
<pre>
"name":"WS 1",
+
{
"alias":null,
+
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae",
"type_id":"12",
+
"page": 1 // номер страницы лога
"password":null,
+
"limit": 20 // количество логов на странице , по умолчанию 20, максимум 100
"codes":[178,179,180],
 
"state":"1",
 
"on_dashboard":"0",
 
"active":"1",
 
"new":"1",
 
"family":"DEVICE_FAMILY_RADIO",
 
"camera_id":null,
 
"camera_host":null,
 
"send_sms":"0",
 
"voice_call":"0"
 
},
 
{
 
"id":"1738",
 
"external_id":"115",
 
"controller_id":"109",
 
"name":"Pult 123",
 
"alias":null,
 
"type_id":"3",
 
"password":null,
 
"codes":[280,281,282,283],
 
"state":"1",
 
"on_dashboard":"0",
 
"active":"1",
 
"new":"1",
 
"family":"DEVICE_FAMILY_RADIO",
 
"camera_id":null,
 
"camera_host":null,
 
"send_sms":"0",
 
"voice_call":"0"
 
}
 
]
 
 
}
 
}
 
</pre>
 
</pre>
  
==  Получение списка кодов (get-codes) == <!--T:407-->
+
Ответ:
  
Запрос:
+
Пример ответа:  
  
<!--T:408-->
+
<pre>
Request URL: [site]/api/device/get-codes
+
[
 +
{
 +
"id":15,
 +
"controller":"Test Valera",
 +
"action_name":"",
 +
"device":"",
 +
"cod":"",
 +
"action_pack":"",
 +
"date_create":"2019-06-20 15:57:26",
 +
"status":0
 +
},
 +
{
 +
"id":14,
 +
"controller":"Test Valera",
 +
"action_name":"",
 +
"device":"",
 +
"cod":"",
 +
"action_pack":"",
 +
"date_create":"2019-06-20 15:57:18",
 +
"status":0
 +
        }
 +
]
 +
</pre>
  
<!--T:409-->
+
= Коды = <!--T:383-->
Параметры:
 
  
#token (required): string 64
+
== Получение информации о коде (info) == <!--T:384-->
#controller_id (required): int
 
  
Ответ:
+
<!--T:385-->
 +
Запрос:
 +
 
 +
<!--T:386-->
 +
Request URL: [site]/api/property/info/
 +
 
 +
<!--T:387-->
 +
Параметры запроса:
 +
#(int) controller_id,
 +
#(int) device_id,
 +
#(int) code_id,
 +
#(string) token
  
<!--T:411-->
+
<!--T:391-->
Пример ответа:
+
Пример запроса:  
  
 
<pre>
 
<pre>
 
{
 
{
data: [
+
"controller_id": 6,
{
+
"device_id": 109,  
devices: [
+
"code_id": 192,
{
+
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"
id: 13
+
}
external_id: 7,
+
</pre>
controller_id: 5,
+
 
name: "Simple device",
+
<!--T:393-->
type_id: 2,
+
Ответ:
password: null,
+
 
codes: "a:4:{i:0;i:46;i:1;i:47;i:2;i:48;i:3;i:45;}",
+
<!--T:394-->
state: 1,
+
Пример ответа (data):  
on_dashboard: 0,
+
 
active: 1,
+
<pre>
new: 1,
+
{
family: DEVICE_FAMILY_RADIO,
+
"id":"1465",
camera_id: null,
+
"external_cod_id":"59",
camera_host: null
+
"device_id":"1866",
},
+
"name":"alarm",
{
+
"alias":"xxx",
id: 14
+
"code":"15779537",
external_id: 8,
+
"msg_cod":"003001",
controller_id: 5,
+
"send_armed":"INFO",
name: "Simple device",
+
"send_disarmed":"INFO",
type_id: 2,
+
"protocol":"1",
password: null,
+
"pulse_len":null,
codes: "a:4:{i:0;i:46;i:1;i:47;i:2;i:48;i:3;i:45;}",
+
"group_1":"0",
state: 1,
+
"group_2":"0",
on_dashboard: 0,
+
"group_3":"0",
active: 1,
+
"group_4":"0",
new: 1,
+
"group_5":"0",
family: DEVICE_FAMILY_RADIO,
+
"group_6":"0",
camera_id: null,
+
"group_7":"0",
camera_host: null
+
"group_8":"0",
},
+
"active":"1",
],
+
"send_sms":"0",
code: {
+
"voice_call":"0"
id: 12,
+
}
controller_id: 5,
+
</pre>
device_type_id: 2,
+
 
code: 498654,
+
== Изменение имени кода (update-code-name) == <!--T:395-->
protocol: 1,
+
 
bit_len: 32,
+
Запрос:
pulse_len: 86,
+
<!--T:396-->
freq: 77,
+
Request URL: [site]/api/device/update-code-name
address: 94,
 
num: 1,
 
date_create: '2018-04-13 18:29:11"
 
  
<!--T:412-->
+
<!--T:397-->
}
+
Параметры запроса:
},
 
  
<!--T:413-->
+
<!--T:398-->
{
+
#token (required): string(64)
devices: [
+
#code_id (required): int
{
+
#name (optional): string(255)
id: 13
+
 
external_id: 7,
+
<!--T:401-->
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;}",
+
<pre>
state: 1,
+
{
on_dashboard: 0,
+
data: {
active: 1,
+
'message': "OK"
new: 1,
+
},
family: DEVICE_FAMILY_RADIO,
+
error: null
camera_id: null,
+
}
camera_host: null
+
</pre>
},
+
 
{
+
== Редактирование параметров кода (update) ==
id: 14
+
 
external_id: 8,
+
<!--T:401-->
controller_id: 5,
+
Запрос:
name: "Simple device",
 
type_id: 2,
 
password: null,
 
codes: "a:4:{i:0;i:46;i:1;i:47;i:2;i:48;i:3;i:45;}",
 
state: 1,
 
on_dashboard: 0,
 
active: 1,
 
new: 1,
 
family: DEVICE_FAMILY_RADIO,
 
camera_id: null,
 
camera_host: null
 
},
 
],
 
code: {
 
id: 12,
 
controller_id: 5,
 
device_type_id: 2,
 
code: 498654,
 
protocol: 1,
 
bit_len: 32,
 
pulse_len: 86,
 
freq: 77,
 
address: 94,
 
num: 1,
 
date_create: '2018-04-13 18:29:11"
 
  
<!--T:414-->
+
<!--T:401-->
}
+
Request URL: [site]/api/property/update/
},
 
},
 
error: null,
 
}
 
</pre>
 
  
== Добавление кода к устройству (set-code-to-device) == <!--T:415-->
+
<!--T:401-->
 +
Параметры запроса:
  
Запрос:
+
#(string) token
 +
#(int) device_id
 +
#(int) code_id
 +
#(string) name // опционально
 +
#(int) active // опционально
 +
#(int) send_sms // опционально
 +
#(int) voice_call // опционально
  
<!--T:416-->
+
<!--T:401-->
Request URL: [site]/api/device/set-code-to-device
+
Пример запроса:
  
<!--T:417-->
+
<pre>
Параметры запроса:
+
{
 +
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae",
 +
"device_id" : 111,
 +
"code_id" : 111,
 +
"send_sms": 1
 +
}
 +
</pre>
  
<!--T:418-->
+
<!--T:402-->
#token (required): string 64
 
#code_id (required): int
 
#device_id (required): int
 
#name (optional): string 256
 
 
 
<!--T:422-->
 
 
Ответ:
 
Ответ:
  
Пример ответа:
+
<!--T:402-->
 +
Пример ответа (data):
  
 
<pre>
 
<pre>
 
{
 
{
data: {
+
"result": "Ok"
id: 5,
+
}
external_cod_id: 15,
+
</pre>
device_id: 14,
+
 
name: "Name"
+
== Получение кодов по типу сигнала (get-codes-by-subtype) == <!--T:402-->
code: 8463517,
 
protocol: 0,
 
pulse_len: 86,
 
active: 1,
 
},
 
error: null
 
}
 
</pre>
 
 
 
== Удаление кода (remove-code) == <!--T:423-->
 
  
 
Запрос:
 
Запрос:
  
<!--T:424-->
+
<!--T:403-->
Request URL: [site]/api/device/remove-code
+
Request URL: [site]/api/device/get-codes-by-subtype
  
 +
<!--T:404-->
 
Параметры запроса:
 
Параметры запроса:
  
<!--T:425-->
+
<!--T:405-->
#token (required): string 64
+
#token (required): string(64)
#code_id (required): int
+
#device_subtype_id (optional): int, default 0.
  
<!--T:427-->
 
 
Ответ:
 
Ответ:
  
Строка 2509: Строка 2457:
 
<pre>
 
<pre>
 
{
 
{
data: {
+
"code"
message: "OK"
+
"id":131,
},
+
"controller_id":109,
error: null
+
"device_type_id":0,
}
+
"device_subtype_id":1,
</pre>
+
"code":"655370",
 
+
"protocol":1,
= События = <!--T:428-->
+
"bit_len":24,
 
+
"pulse_len":283,
== Нажатие кнопки на устройстве (event) == <!--T:429-->
+
"freq":2,"address":null,
 
+
"num":null,
<!--T:430-->
+
"date_create":"2019-03-13 17:35:05",
Запрос:
+
"device_id":null
 
+
},
<!--T:431-->
+
"devices":[
Request URL: [site]/api/device/event/
+
{
 
+
"id":"1684",
Параметры запроса:
+
"external_id":"64",
 
+
"controller_id":"109",
<!--T:432-->
+
"name":"WS 1",
#(string) controller_name,
+
"alias":null,
#(int) device_external_id,
+
"type_id":"12",
#(int) cod_external_id,
+
"password":null,
#(string) token,
+
"codes":[178,179,180],
#(int) device_type
+
"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>
  
<!--T:437-->
+
==  Получение списка кодов (get-codes) == <!--T:407-->
Пример запроса:  
+
 
 +
Запрос:
 +
 
 +
<!--T:408-->
 +
Request URL: [site]/api/device/get-codes
  
<!--T:438-->
+
<!--T:409-->
<pre>
+
Параметры:
{
 
"controller_name": " AS_7F26335CCF4B" ,
 
"device_external_id": 19,
 
"cod_external_id": 1,
 
"device_type": 1,
 
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"
 
}
 
</pre>
 
  
<!--T:439-->
+
#token (required): string 64
так как MQTT  односторонний - ответа быть не может. Может быть возвращён ответ, что запрос отправлен:
+
#controller_id (required): int
response:
 
  
Ответ:  
+
Ответ:
  
<!--T:441-->
+
<!--T:411-->
Пример ответа (data):  
+
Пример ответа:
  
<!--T:442-->
 
 
<pre>
 
<pre>
 
{
 
{
"result": "Ok"
+
data: [
}
+
{
</pre>
+
devices: [
 
+
{
= Места = <!--T:443-->
+
id: 13
 
+
external_id: 7,
== Получение списка мест (places-list) == <!--T:444-->
+
controller_id: 5,
 
+
name: "Simple device",
Запрос:
+
type_id: 2,
 
+
password: null,
<!--T:445-->
+
codes: "a:4:{i:0;i:46;i:1;i:47;i:2;i:48;i:3;i:45;}",
Request URL: [site]/api/places/places-list
+
state: 1,
 
+
on_dashboard: 0,
<!--T:446-->
+
active: 1,
Параметры запроса: token (required): string, 64
+
new: 1,
 
+
family: DEVICE_FAMILY_RADIO,
<!--T:448-->
+
camera_id: null,
Ответ:  
+
camera_host: null
 +
},
 +
{
 +
id: 14
 +
external_id: 8,
 +
controller_id: 5,
 +
name: "Simple device",
 +
type_id: 2,
 +
password: null,
 +
codes: "a:4:{i:0;i:46;i:1;i:47;i:2;i:48;i:3;i:45;}",
 +
state: 1,
 +
on_dashboard: 0,
 +
active: 1,
 +
new: 1,
 +
family: DEVICE_FAMILY_RADIO,
 +
camera_id: null,
 +
camera_host: null
 +
},
 +
],
 +
code: {
 +
id: 12,
 +
controller_id: 5,
 +
device_type_id: 2,
 +
code: 498654,
 +
protocol: 1,
 +
bit_len: 32,
 +
pulse_len: 86,
 +
freq: 77,
 +
address: 94,
 +
num: 1,
 +
date_create: '2018-04-13 18:29:11"
  
Пример ответа:
+
<!--T:412-->
 +
}
 +
},
  
<pre>
+
<!--T:413-->
 
{
 
{
"error":null,
+
devices: [
"data":{
+
{
"rooms":[
+
id: 13
{
+
external_id: 7,
"id":1,
+
controller_id: 5,
"root_id":1,
+
name: "Simple device",
"user_id":424,
+
type_id: 2,
"lvl":0,
+
password: null,
"name":"Дом",
+
codes: "a:4:{i:0;i:46;i:1;i:47;i:2;i:48;i:3;i:45;}",
"icon":0,
+
state: 1,
"icon_type":1,
+
on_dashboard: 0,
"color":"#fff2cc",
+
active: 1,
"readonly":0,
+
new: 1,
"visible":1
+
family: DEVICE_FAMILY_RADIO,
},
+
camera_id: null,
{
+
camera_host: null
"id":2,
+
},
"root_id":1,
+
{
"user_id":424,
+
id: 14
"lvl":1,
+
external_id: 8,
"name":"Спальня",
+
controller_id: 5,
"icon":0,
+
name: "Simple device",
"icon_type":1,
+
type_id: 2,
"color":"#b6d7a8",
+
password: null,
"readonly":0,
+
codes: "a:4:{i:0;i:46;i:1;i:47;i:2;i:48;i:3;i:45;}",
"visible":1
+
state: 1,
}
+
on_dashboard: 0,
]
+
active: 1,
}
+
new: 1,
}
+
family: DEVICE_FAMILY_RADIO,
</pre>
+
camera_id: null,
 
+
camera_host: null
 
+
},
== Создание места (create) == <!--T:449-->
+
],
 +
code: {
 +
id: 12,
 +
controller_id: 5,
 +
device_type_id: 2,
 +
code: 498654,
 +
protocol: 1,
 +
bit_len: 32,
 +
pulse_len: 86,
 +
freq: 77,
 +
address: 94,
 +
num: 1,
 +
date_create: '2018-04-13 18:29:11"
 +
 
 +
<!--T:414-->
 +
}
 +
},
 +
},
 +
error: null,
 +
}
 +
</pre>
 +
 
 +
== Добавление кода к устройству (set-code-to-device) == <!--T:415-->
  
 
Запрос:
 
Запрос:
  
<!--T:450-->
+
<!--T:416-->
Request URL: [site]/api/places/create
+
Request URL: [site]/api/device/set-code-to-device
  
<!--T:451-->
+
<!--T:417-->
 
Параметры запроса:
 
Параметры запроса:
  
<!--T:452-->
+
<!--T:418-->
#token (required): string, 64
+
#token (required): string 64
#root (optional): int, default 1
+
#code_id (required): int
#lft (optional): int, from 1 to 5 //В сумме с rgt должно быть 5
+
#device_id (required): int
#rgt (optional): int, from 1 to 5 //В сумме с lft должно быть 5
+
#name (optional): string 256
#lvl (optional): int, default 0
 
#name (optional): string, 64, default 'Simple name'
 
#icon (optional): string, default '' //Допускаемые параметры -- ключи объекта выше
 
#color (optional): string, default: '#ccc' //Любой цвет в формате HEX, решетка в начале обязательна
 
#active (optional): int, default 1
 
#selected (optional): int, default 0
 
#disabled (optional): int, default 0
 
#readonly (optional): int, default 0
 
#visible (optional): int, default 1
 
#collapsed (optional): int, default 0
 
#movable_u (optional): int, default 1
 
#movable_d (optional): int, default 1
 
#movable_l (optional): int, default 1
 
#movable_r (optional): int, default 1
 
#removable (optional): int, default 1
 
#removable_all (optional): int, default 0
 
#inverse_text (optional): string, default 'black'
 
  
<!--T:473-->
+
<!--T:422-->
Ответ:  
+
Ответ:
  
 
Пример ответа:
 
Пример ответа:
Строка 2657: Строка 2667:
 
<pre>
 
<pre>
 
{
 
{
error:null,
+
data: {
data: {'message': 'OK'}
+
id: 5,
 +
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-->
== Редактирование места (edit) == <!--T:474-->
 
  
 
Запрос:
 
Запрос:
  
<!--T:475-->
+
<!--T:424-->
Request URL: [site]/api/places/edit
+
Request URL: [site]/api/device/remove-code
  
<!--T:476-->
 
 
Параметры запроса:
 
Параметры запроса:
  
<!--T:477-->
+
<!--T:425-->
#token (required): string, 64
+
#token (required): string 64
#place_id (required): int
+
#code_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-->
+
<!--T:427-->
 
Ответ:
 
Ответ:
  
Строка 2704: Строка 2701:
 
<pre>
 
<pre>
 
{
 
{
error:null,
+
data: {
data: {'message': 'OK'}
+
message: "OK"
 +
},
 +
error: null
 
}
 
}
 
</pre>
 
</pre>
  
== Удаление места (delete) == <!--T:501-->
+
= События = <!--T:428-->
 +
 
 +
== Нажатие кнопки на устройстве (event) == <!--T:429-->
  
 +
<!--T:430-->
 
Запрос:
 
Запрос:
<!--T:502-->
 
Request URL: [site]/api/places/delete
 
  
<!--T:503-->
+
<!--T:431-->
 +
Request URL: [site]/api/device/event/
 +
 
 
Параметры запроса:
 
Параметры запроса:
  
<!--T:504-->
+
<!--T:432-->
#token (required): string, 64
+
#(string) controller_name,
#place_id (required): int
+
#(int) device_external_id,
 +
#(int) cod_external_id,
 +
#(string) token,
 +
#(int) device_type
  
<!--T:506-->
+
<!--T:437-->
Ответ:
+
Пример запроса:  
 
 
Пример ответа:
 
  
 +
<!--T:438-->
 
<pre>
 
<pre>
 
{
 
{
error:null,
+
"controller_name": " AS_7F26335CCF4B" ,
data: {'message': 'OK'}
+
"device_external_id": 19,
 +
"cod_external_id": 1,
 +
"device_type": 1,
 +
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"
 
}
 
}
 
</pre>
 
</pre>
  
==  Активация подписки Ebus  == <!--T:507-->
+
<!--T:439-->
 +
так как MQTT  односторонний - ответа быть не может. Может быть возвращён ответ, что запрос отправлен:
 +
response:
  
 +
Ответ:
  
<!--T:508-->
+
<!--T:441-->
Получение состояния подписки на Контроллере - “in/subscription/get”:
+
Пример ответа (data):  
  
<!--T:509-->
+
<!--T:442-->
 
<pre>
 
<pre>
 
{
 
{
"id": 1, // ID подписки (см. ниже)
+
"result": "Ok"
"seq_id": 0
 
 
}
 
}
 
</pre>
 
</pre>
  
<!--T:510-->
+
= Места = <!--T:443-->
Ответ:
 
  
<!--T:511-->
+
== Получение списка мест (places-list) == <!--T:444-->
<pre>
 
{
 
"seq_id": 0,
 
"remain_time": 100, // оставшееся время в секундах, 4294967295 – неограниченно
 
"success": 0/1
 
}
 
</pre>
 
  
 +
Запрос:
  
Установка подписки на Контроллере - “in/subscription/set”:
+
<!--T:445-->
 +
Request URL: [site]/api/places/places-list
  
<!--T:513-->
+
<!--T:446-->
<pre>
+
Параметры запроса: token (required): string, 64
{
+
 
"seq_id": 0,
+
<!--T:448-->
"id": 1, // ID подписки (см. ниже)
+
Ответ:
"remain_time": 100 // оставшееся время в секундах, 4294967295 - неограниченно
 
}
 
</pre>
 
  
<!--T:514-->
+
Пример ответа:
Ответ:
 
  
 
<pre>
 
<pre>
 
{
 
{
"seq_id": 0,
+
"error":null,
"success": 0/1
+
"data":{
}
+
"rooms":[
</pre>
+
{
 
+
"id":1,
<!--T:515-->
+
"root_id":1,
Идентификаторы подписок:
+
"user_id":424,
SUBSCRIPTION_EBUS = 1
+
"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>
  
<!--T:516-->
 
Статус Контроллера
 
  
<!--T:517-->
+
== Создание места (create) == <!--T:449-->
Контроллер отправляет информацию о своем онлайн/оффлайн статусе в топик “out/status”.
+
 
 +
Запрос:
 +
 
 +
<!--T:450-->
 +
Request URL: [site]/api/places/create
 +
 
 +
<!--T:451-->
 +
Параметры запроса:
  
<!--T:518-->
+
<!--T:452-->
 +
#token (required): string, 64
 +
#root (optional): int, default 1
 +
#lft (optional): int, from 1 to 5 //В сумме с rgt должно быть 5
 +
#rgt (optional): int, from 1 to 5 //В сумме с lft должно быть 5
 +
#lvl (optional): int, default 0
 +
#name (optional): string, 64, default 'Simple name'
 +
#icon (optional): string, default '' //Допускаемые параметры -- ключи объекта выше
 +
#color (optional): string, default: '#ccc' //Любой цвет в формате HEX, решетка в начале обязательна
 +
#active (optional): int, default 1
 +
#selected (optional): int, default 0
 +
#disabled (optional): int, default 0
 +
#readonly (optional): int, default 0
 +
#visible (optional): int, default 1
 +
#collapsed (optional): int, default 0
 +
#movable_u (optional): int, default 1
 +
#movable_d (optional): int, default 1
 +
#movable_l (optional): int, default 1
 +
#movable_r (optional): int, default 1
 +
#removable (optional): int, default 1
 +
#removable_all (optional): int, default 0
 +
#inverse_text (optional): string, default 'black'
 +
 
 +
<!--T:473-->
 +
Ответ:
 +
 
 +
Пример ответа:
 +
 
 +
<pre>
 +
{
 +
error:null,
 +
data: {'message': 'OK'}
 +
}
 +
</pre>
 +
 
 +
 
 +
==  Редактирование места (edit) == <!--T:474-->
 +
 
 +
Запрос:
 +
 
 +
<!--T:475-->
 +
Request URL: [site]/api/places/edit
 +
 
 +
<!--T:476-->
 +
Параметры запроса:
 +
 
 +
<!--T:477-->
 +
#token (required): string, 64
 +
#place_id (required): int
 +
#root (optional): int, default 1
 +
#lft (optional): int, from 1 to 5 //В сумме с rgt должно быть 5
 +
#rgt (optional): int, from 1 to 5 //В сумме с lft должно быть 5
 +
#lvl (optional): int, default 0
 +
#name (optional): string, 64, default 'Simple name'
 +
#icon (optional): string, default '' //Допускаемые параметры -- ключи объекта выше
 +
#color (optional): string, default: '#ccc' //Любой цвет в формате HEX, решетка в начале обязательна
 +
#active (optional): int, default 1
 +
#selected (optional): int, default 0
 +
#disabled (optional): int, default 0
 +
#readonly (optional): int, default 0
 +
#visible (optional): int, default 1
 +
#collapsed (optional): int, default 0
 +
#movable_u (optional): int, default 1
 +
#movable_d (optional): int, default 1
 +
#movable_l (optional): int, default 1
 +
#movable_r (optional): int, default 1
 +
#removable (optional): int, default 1
 +
#removable_all (optional): int, default 0
 +
#inverse_text (optional): string, default 'black'
 +
 
 +
<!--T:499-->
 +
Ответ:
 +
 
 +
Пример ответа:
 +
 
 +
<pre>
 +
{
 +
error:null,
 +
data: {'message': 'OK'}
 +
}
 +
</pre>
 +
 
 +
== Удаление места (delete) == <!--T:501-->
 +
 
 +
Запрос:
 +
<!--T:502-->
 +
Request URL: [site]/api/places/delete
 +
 
 +
<!--T:503-->
 +
Параметры запроса:
 +
 
 +
<!--T:504-->
 +
#token (required): string, 64
 +
#place_id (required): int
 +
 
 +
<!--T:506-->
 +
Ответ:
 +
 
 +
Пример ответа:
 +
 
 +
<pre>
 +
{
 +
error:null,
 +
data: {'message': 'OK'}
 +
}
 +
</pre>
 +
 
 +
 
 +
== Добавление устройства к месту, смена места у устройства (device-in-place) == <!--T:502-->
 +
 
 +
Запрос:
 +
 
 +
Request URL: [site]/api/places/device-in-place/
 +
 
 +
Параметры запроса:
 +
 
 +
#token (required): string 64
 +
#device_id (required): int
 +
#place_id (required): int
 +
#visible (not required): int
 +
 
 +
Ответ:
 +
 
 +
Пример ответа:
 +
 
 +
<pre>
 +
{
 +
data: {result: "OK"},
 +
error: null
 +
}
 +
</pre>
 +
 
 +
 
 +
== Отвязать устройство от месту (device-out-place) == <!--T:509-->
 +
 
 +
Запрос:
 +
 
 +
Request URL: [site]/api/places/device-out-place/
 +
 
 +
Параметры запроса:
 +
 
 +
#token (required): string 64
 +
#device_id (required): int
 +
#place_id (required): int
 +
 
 +
Ответ:
 +
 
 +
Пример ответа:
 +
 
 +
<pre>
 +
{
 +
data: {
 +
result: "OK"
 +
},
 +
error: null
 +
}
 +
</pre>
 +
 
 +
 
 +
== Получить список связей устройство-место (device-place-list) == <!--T:519-->
 +
 
 +
Запрос:
 +
 
 +
Request URL: [site]/api/places/device-place-list/
 +
 
 +
Параметры запроса:
 +
 
 +
#token (required): string 64
 +
 
 +
Ответ:
 +
 
 +
Пример ответа:
 +
 
 +
<pre>
 +
{
 +
"error":null,
 +
"data":{
 +
"0":{
 +
"device_id":1336,
 +
"device_name":"Camera test",
 +
"place_id":8,
 +
"place_name":"office"
 +
},
 +
...
 +
"10":{
 +
"device_id":1865,
 +
"device_name":"Meteo 9",
 +
"place_id":10,
 +
"place_name":"Box 1"
 +
}
 +
}
 +
}
 +
</pre>
 +
 
 +
==  Активация подписки Ebus  == <!--T:507-->
 +
 
 +
 
 +
<!--T:508-->
 +
Получение состояния подписки на Контроллере - “in/subscription/get”:
 +
 
 +
<!--T:509-->
 +
<pre>
 +
{
 +
"id": 1, // ID подписки (см. ниже)
 +
"seq_id": 0
 +
}
 +
</pre>
 +
 
 +
<!--T:510-->
 +
Ответ:
 +
 
 +
<!--T:511-->
 +
<pre>
 +
{
 +
"seq_id": 0,
 +
"remain_time": 100, // оставшееся время в секундах, 4294967295 – неограниченно
 +
"success": 0/1
 +
}
 +
</pre>
 +
 
 +
 
 +
Установка подписки на Контроллере - “in/subscription/set”:
 +
 
 +
<!--T:513-->
 +
<pre>
 +
{
 +
"seq_id": 0,
 +
"id": 1, // ID подписки (см. ниже)
 +
"remain_time": 100 // оставшееся время в секундах, 4294967295 - неограниченно
 +
}
 +
</pre>
 +
 
 +
<!--T:514-->
 +
Ответ:
 +
 
 +
<pre>
 +
{
 +
"seq_id": 0,
 +
"success": 0/1
 +
}
 +
</pre>
 +
 
 +
<!--T:515-->
 +
Идентификаторы подписок:
 +
SUBSCRIPTION_EBUS = 1
 +
 
 +
<!--T:516-->
 +
Статус Контроллера
 +
 
 +
<!--T:517-->
 +
Контроллер отправляет информацию о своем онлайн/оффлайн статусе в топик “out/status”.
 +
 
 +
<!--T:518-->
 
Формат сообщения:
 
Формат сообщения:
<pre>
+
<pre>
{
+
{
"status": 1 // см. ниже
+
"status": 1 // см. ниже
 +
}
 +
</pre>
 +
 
 +
<!--T:519-->
 +
Поле “status” может принимать следующие значения:
 +
 
 +
<!--T:520-->
 +
• "0" – оффлайн
 +
 
 +
<!--T:521-->
 +
• "1" – онлайн
 +
 
 +
<!--T:522-->
 +
• "2" – онлайн, после включения питания
 +
 
 +
<!--T:523-->
 +
При получении сообщения со статусом "2", портал должен отправить Контроллеру информацию о пользовательских подписках, как это описано в разделе «Подписки».
 +
 
 +
 
 +
= Виджеты = <!--T:524-->
 +
 
 +
== Список виджетов пользователя (widget-list) == <!--T:525-->
 +
 
 +
<!--T:525-->
 +
Запрос:
 +
 
 +
<!--T:526-->
 +
Request URL: [site]/api/device/widget-list/
 +
 
 +
<!--T:527-->
 +
Параметры запроса:
 +
(string) token
 +
 
 +
<!--T:528-->
 +
Пример запроса:
 +
 
 +
<pre>
 +
{
 +
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"
 +
}
 +
 
 +
</pre>
 +
 
 +
<!--T:529-->
 +
Ответ:
 +
 
 +
<!--T:530-->
 +
Пример ответа (data):
 +
 
 +
<pre>
 +
{
 +
"widgets":[
 +
{
 +
"controller_id":111,
 +
"device_ids":[18,20,21,22],
 +
"device_id":"1824",
 +
"external_id":18,
 +
"device_type":3,
 +
"name":"Remote control",
 +
"widget_type":3,
 +
"state":1
 +
},
 +
{
 +
"controller_id":111,
 +
"device_ids":[18,20,21,22],
 +
"device_id":"1850",
 +
"external_id":20,
 +
"device_type":4,
 +
"name":"Sockets",
 +
"widget_type":4,
 +
"state":1
 +
}
 +
  ],
 +
"ctrl_widgets":[
 +
  {
 +
"controller_id":111,
 +
"name":"66D4E809EF0A",
 +
"hostname":"Test",
 +
"armed":0
 +
  }
 +
]
 +
}
 +
</pre>
 +
 
 +
== Добавить виджет (widget-add-home) == <!--T:525-->
 +
 
 +
<!--T:525-->
 +
Запрос:
 +
 
 +
<!--T:525-->
 +
Request URL: [site]/api/device/widget-add-home/
 +
 
 +
<!--T:525-->
 +
Параметры запроса:
 +
 
 +
<!--T:525-->
 +
#(string) token,
 +
#(int) device_id,
 +
#(int) controller_id
 +
 
 +
<!--T:525-->
 +
Пример запроса:
 +
 
 +
<pre>
 +
{
 +
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae",
 +
"controller_id": 1862
 +
}
 +
</pre>
 +
 
 +
<!--T:525-->
 +
Ответ:
 +
 
 +
<!--T:525-->
 +
Пример ответа (полный):
 +
 
 +
<pre>
 +
{
 +
"error":null,
 +
"data":{
 +
"result":"Ok"
 +
}
 +
}
 +
</pre>
 +
 
 +
== Удалить виджет пользователя (widget-remove-home) == <!--T:525-->
 +
 
 +
<!--T:525-->
 +
Запрос:
 +
 
 +
Request URL: [site]/api/device/widget-remove-home/
 +
 
 +
<!--T:525-->
 +
Параметры запроса:
 +
 
 +
#(string) token,
 +
#(int) device_id,
 +
#(int) controller_id
 +
 
 +
<!--T:525-->
 +
Пример запроса:
 +
 
 +
<pre>
 +
{
 +
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae",
 +
"device_id": 1862
 +
}
 +
</pre>
 +
 
 +
<!--T:525-->
 +
Ответ:
 +
 
 +
<!--T:525-->
 +
Пример ответа (полный):
 +
 
 +
<pre>
 +
{
 +
"error":null,
 +
"data":{
 +
"result":"Ok"
 +
}
 +
}
 +
</pre>
 +
 
 +
 
 +
= Неклассифицируемые методы = <!--T:524-->
 +
 
 +
== Список доступных стран (countries) ==
 +
 
 +
<!--T:525-->
 +
Запрос:
 +
 
 +
<!--T:526-->
 +
Request URL: [site]/api/profile/countries/
 +
 
 +
<!--T:527-->
 +
Параметры запроса:
 +
#(string) token
 +
#(string) lang // en , ua, ru
 +
 
 +
<!--T:528-->
 +
Пример запроса:
 +
 
 +
<pre>
 +
{
 +
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae",
 +
"lang" : "en"
 +
}
 +
</pre>
 +
 
 +
<!--T:529-->
 +
Ответ:
 +
 
 +
<!--T:530-->
 +
Пример ответа (data):
 +
 
 +
<pre>
 +
[
 +
{
 +
"id":"1",
 +
"code":"AF",
 +
"name":"Afghanistan"
 +
},
 +
{
 +
"id":"2",
 +
"code":"AL",
 +
"name":"Albania"
 +
}
 +
]
 +
</pre>
 +
 
 +
 
 +
= Ошибки = <!--T:524-->
 +
 
 +
<!--T:525-->
 +
параметры ошибки:
 +
 +
пример:
 +
 
 +
<!--T:526-->
 +
<pre>
 +
{
 +
"errors":{
 +
"password": [
 +
"Incorrect username."
 +
]
 +
}
 
}
 
}
 
</pre>
 
</pre>
  
<!--T:519-->
 
Поле “status” может принимать следующие значения:
 
 
<!--T:520-->
 
• "0" – оффлайн
 
 
<!--T:521-->
 
• "1" – онлайн
 
  
<!--T:522-->
 
• "2" – онлайн, после включения питания
 
 
<!--T:523-->
 
При получении сообщения со статусом "2", портал должен отправить Контроллеру информацию о пользовательских подписках, как это описано в разделе «Подписки».
 
 
 
= Ошибки = <!--T:524-->
 
 
<!--T:525-->
 
параметры ошибки:
 
 
пример:
 
 
<!--T:526-->
 
<pre>
 
{
 
"errors":{
 
"password": [
 
"Incorrect username."
 
]
 
}
 
}
 
</pre>
 
  
  
 
</translate>
 
</translate>

Текущая версия на 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."
		]
	}
}