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

Материал из wiki.quadrobit.com
Перейти к навигации Перейти к поиску
Строка 398: Строка 398:
 
Поле “status” может принимать следующие значения:
 
Поле “status” может принимать следующие значения:
 
• 0 – офлайн
 
• 0 – офлайн
 +
 
• 1 – онлайн
 
• 1 – онлайн
 +
 
• 2 – онлайн, после включения питания
 
• 2 – онлайн, после включения питания
  
= Устройства =
+
== Передача локального IP Контроллера (get-ip) ==
 +
 
 +
Request URL: [site]/api/ctrl/get-ip
  
== Получение списка устройств пользователя (list) ==
+
Request Params:
  
request:
+
token (required): string(64);
  
Request URL: [site]/api/device/list
+
controller_id (required): int;
  
параметры запроса: (int) controller_id , (string) token
+
SUCCESS RESPONSE:  
  
Пример запроса:
 
 
<pre>
 
<pre>
 
{
 
{
"controller_id": 1 ,
+
data:'192.168.0.15',
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"
+
error: null
 
}
 
}
 
</pre>
 
</pre>
  
response:
+
== ?? Установка подписки на Контроллере - “in/subscription/set”: ==
параметры ответа:
 
 
Пример ответа:  
 
 
<pre>
 
<pre>
 
{
 
{
"0":{
+
"seq_id": 0,
"id":"122",
+
"id": 1, // ID подписки (см. ниже)
"external_id":"19", //id на контроллере
+
"remain_time": 100 // оставшееся время в секундах, 4294967295 - неограниченно
"controller_id":"6",
+
}
"name":"Сирена",
+
</pre>
"type_id":"2",  //тип устройства
+
 
"codes":":{    //коды (кнопки)
+
==  Просмотр статуса подписки (get-subscribe-status) ==
"0":{
+
 
"id":"218",
+
Request URL: [site]/api/ctrl/get-subscribe-status
"external_cod_id":"32",
+
 
"device_id":"122",
+
params:
"name":"ON",
+
 
"code":"3675192",
+
token (required): string(64)
"protocol":"1",
+
 
"pulse_len":null,
+
controller_id (required): int
"group_1":"1",
+
 
"group_2":"0",
+
response:
"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>
 
  
 +
{data:{id: 1, controller_id: 40, user_id: 424, remain_time: 100, request_time: 1355314332, response_time: 1355315332, success: 0}, error: ''}
  
== Информация об устройстве (info) ==
 
  
request:
+
==  Активация/продление/покупка подписки (set-subscribe) ==
  
Request URL: [site]/api/device/info/
 
  
параметры запроса:
+
Request URL: [site]/api/ctrl/set-subscribe
  
(int) controller_id,
+
params:
  
(int) device_id,
+
token (required): string(64)
  
(string) token
+
controller_id (required): int
  
Пример запроса:  
+
response:
 
<pre>
 
<pre>
 
{
 
{
"controller_id": 1 ,
+
data:{
"device_id": 122,
+
id: 1,
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"
+
controller_id: 40,
 +
user_id: 424,
 +
remain_time: 100,
 +
request_time: 1355314332,
 +
response_time: 1355315332,
 +
success: 0
 +
},
 +
error: ''
 
}
 
}
 
</pre>
 
</pre>
  
response:
 
  
параметры ответа:
+
==  ? Метод получения списка телефонов (get-phones) ==
+
 
Пример ответа:  
+
Request URL: [site]/api/ctrl/get-phones
 +
 
 +
Params:
 +
 
 +
token (required): string, 64
 +
 
 +
controller_id (required): int
 +
 
 +
type (optional): string,
 +
range ['recipient', 'authorized', 'all'], default 'all'
 +
 
 +
Response:
 +
 
 
<pre>
 
<pre>
 
{
 
{
"id":"122",
+
'error': null,
"external_id":"19",
+
data: [
"controller_id":"6",
+
{'id': 5, 'phone': '+380123456789'},
"name":"Сирена",
+
{'id': 6, 'phone': '+380123334455'},
"type_id":"2",
+
{'id': 7, 'phone': '+380112223344'}
"codes":{
+
]
"0":{
+
}
"id":"218",
+
</pre>
"external_cod_id":"32",
+
 
"device_id":"122",
+
 
"name":"ON",
+
==  Редактирование телефона (edit-phone) ==
"code":"3675192",
+
 
"protocol":"1",
+
Request URL: [site]/api/ctrl/edit-phone
"pulse_len":null,
+
 
"group_1":"1",
+
Params:
"group_2":"0",
+
 
"group_3":"0",
+
token (required): string, 64
"group_4":"0",
+
 
"group_5":"0",
+
phone_id (required): int
"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>
 
  
 +
is_recipient (optional): int
  
== Обновление информации об устройстве (update) ==
+
is_authorized (optional): int
  
request:
+
phone (optional): string
  
Request URL: [site]/api/device/update/
+
Response:  
 +
<pre>
 +
{
 +
"error":null,
 +
"data":{
 +
"id":2,
 +
"controller_id":81,
 +
"phone":"+380503334455",
 +
"is_recipient":"1",
 +
"is_authorized":0
 +
}
 +
}
 +
</pre>
  
параметры запроса:
 
  
(int) device_id,
+
==  Удаление телефона (delete-phone) ==
 +
 
 +
Request URL: [site]/api/ctrl/delete-phone
  
(string) name,
+
Params:
  
(int) active,
+
token (required): string, 64
  
(string) token,
+
phone_id (required): int
  
Пример запроса:  
+
Response:  
 
<pre>
 
<pre>
 
{
 
{
"device_id": 107,   // local device id
+
"error":null,
"name": "New name", // new name
+
"data":{"response":"OK"}
"active": 1,
 
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"
 
 
}
 
}
 
</pre>
 
</pre>
response:
 
  
параметры ответа:
+
== Добавление телефона (add-phone) ==
+
 
Пример ответа:  
+
Request URL: [site]/api/ctrl/add-phone
<pre>
 
{
 
"resuls" : "Ok"
 
}
 
</pre>
 
  
== Удаление устройства (delete) ==
+
Params:
  
request:
+
token (required): string, 64
  
Request URL: [site]/api/device/delete/
+
controller_id (required): int
  
параметры запроса:
+
phone (required): string
  
(int) device_id,
+
is_recipient (optional): int
  
(string) token
+
is_authorized (optional): int
  
Пример запроса:
+
Response:  
<pre>
 
{
 
"device_id": 107,  // local device id
 
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"
 
}
 
</pre>
 
 
 
response:
 
 
 
Параметры ответа:  
 
  
Пример ответа:
 
 
<pre>
 
<pre>
 
{
 
{
"resuls" : "Ok"
+
"error":null,
 
+
"data":{
 +
"id":2,
 +
"controller_id":81,
 +
"phone":"+380503334455",
 +
"is_recipient":"1",
 +
"is_authorized":0
 +
}
 
}
 
}
 
</pre>
 
</pre>
  
 +
= Устройства =
  
== Получение метеоданных (last) ==
+
== Получение списка устройств пользователя (list) ==
  
 
request:
 
request:
Request URL: [site]/api/device/meteo-last/
 
  
параметры запроса:
+
Request URL: [site]/api/device/list
  
(string) token,
+
параметры запроса: (int) controller_id , (string) token
 
 
(int) device_id
 
  
 
Пример запроса:  
 
Пример запроса:  
 
<pre>
 
<pre>
 
{
 
{
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae",
+
"controller_id": 1 ,
"device_id": 130
+
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"
 
}
 
}
 
</pre>
 
</pre>
 +
 
response:
 
response:
 
+
параметры ответа:
параметры ответа: (object)
+
 
 
 
Пример ответа:  
 
Пример ответа:  
 
 
<pre>
 
<pre>
 
{
 
{
"id":"4046",
+
"0":{
"controller_name":"AS_7FD6785CCF5D",
+
"id":"122",
"internal_id":"55",
+
"external_id":"19", //id на контроллере
"device_id":"130",
+
"controller_id":"6",
"name":"7",
+
"name":"Сирена",
"temp":"240",
+
"type_id":"2",  //тип устройства
"hum":"245",
+
"codes":":{    //коды (кнопки)
"illum":"0",
+
"0":{
"pres":"1239",
+
"id":"218",
"volt":"32",
+
"external_cod_id":"32",
"date_time":"2016-03-02 21:09:40",
+
"device_id":"122",
"new":"0"
+
"name":"ON",
}
+
"code":"3675192",
</pre>
+
"protocol":"1",
 
+
"pulse_len":null,
== Получение метеоданных за период (period) ==
+
"group_1":"1",
request:
+
"group_2":"0",
 
+
"group_3":"0",
Request URL: [site]/api/device/meteo-period/
+
"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>
  
(string) token,
 
  
(int) device_id,
+
== Информация об устройстве (info) ==
  
(int) period
+
request:
 +
 
 +
Request URL: [site]/api/device/info/
 +
 
 +
параметры запроса:
 +
 
 +
(int) controller_id,
 +
 
 +
(int) device_id,
 +
 
 +
(string) token
  
 
Пример запроса:  
 
Пример запроса:  
 
<pre>
 
<pre>
 
{
 
{
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae",
+
"controller_id": 1 ,
"device_id": 130,
+
"device_id": 122,
"period": 1 // количество дней
+
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"
 
}
 
}
 
</pre>
 
</pre>
Строка 675: Строка 676:
 
response:
 
response:
  
параметры ответа: (array to objects)
+
параметры ответа:
 
+
 
Пример ответа:  
 
Пример ответа:  
 
<pre>
 
<pre>
[
+
{
{
+
"id":"122",
"id":"4065",
+
"external_id":"19",
"controller_name":"AS_7FD6785CCF5D",
+
"controller_id":"6",
"internal_id":"55",
+
"name":"Сирена",
"device_id":"130",
+
"type_id":"2",
"name":"7",
+
"codes":{
"temp":"240",
+
"0":{
"hum":"523",
+
"id":"218",
"illum":"0",
+
"external_cod_id":"32",
"pres":"1239",
+
"device_id":"122",
"volt":"32",
+
"name":"ON",
"date_time":"2017-07-30 21:11:07",
+
"code":"3675192",
"new":"0"
+
"protocol":"1",
},
+
"pulse_len":null,
{
+
"group_1":"1",
"id":"4067",
+
"group_2":"0",
"controller_name":"AS_7FD6785CCF5D
+
"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>
 
</pre>
  
== Получение данных электропитания (last) ==
+
 
+
== Обновление информации об устройстве (update) ==
 +
 
 
request:
 
request:
Request URL: [site]/api/device/electro-last/
 
  
параметры запроса:
+
Request URL: [site]/api/device/update/
 +
 
 +
параметры запроса:
 +
 
 +
(int) device_id,
 +
 
 +
(string) name,
 +
 
 +
(int) active,
  
 
(string) token,
 
(string) token,
 
(int) device_id
 
  
 
Пример запроса:  
 
Пример запроса:  
 
<pre>
 
<pre>
 
{
 
{
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae",
+
"device_id": 107,  // local device id
"device_id": 130
+
"name": "New name", // new name
 +
"active": 1,
 +
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"
 
}
 
}
 
</pre>
 
</pre>
 
 
response:
 
response:
  
параметры ответа: (object)
+
параметры ответа:
 
+
 
Пример ответа:  
 
Пример ответа:  
 
 
<pre>
 
<pre>
 
{
 
{
"id":"318",
+
"resuls" : "Ok"
"controller_id":"11",
+
}
"external_id":"2",
+
</pre>
"device_id":"125",
+
 
"name":"23",
+
== Удаление устройства (delete) ==
"token":"747D3844ABD35B08F27D18D15D7178B7AF99A754D805633928D4362D19B4AEC2",
 
"last_seen":"2017-07-21 04:20:27",
 
"available":"1",
 
"voltage":"24",
 
"have_voltage":"1",
 
"current":"2147483647",
 
"have_current":"1",
 
"supp_voltage":"33",
 
"date_create":"2017-07-21 01:20:33",
 
"new":"0"
 
}
 
</pre>  
 
  
== Получение данных электропитания за период (period) ==
 
 
 
request:
 
request:
  
Request URL: [site]/api/device/electro-period/
+
Request URL: [site]/api/device/delete/
  
 
параметры запроса:
 
параметры запроса:
 
(string) token,
 
  
 
(int) device_id,
 
(int) device_id,
  
(int) period
+
(string) token
  
 
Пример запроса:  
 
Пример запроса:  
 
<pre>
 
<pre>
 
{
 
{
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae",
+
"device_id": 107,   // local device id
"device_id": 130,
+
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"
"period": 1 // количество дней
 
 
}
 
}
 
</pre>
 
</pre>
 +
 
response:
 
response:
  
параметры ответа: (array to objects)
+
Параметры ответа:  
  
Пример ответа:
+
Пример ответа:  
 
 
<pre>
 
<pre>
[
+
{
{
+
"resuls" : "Ok"
"id":"318",
+
 
"controller_id":"11",
+
}
"external_id":"2",
+
</pre>
"device_id":"125",
+
 
"name":"23",
+
 
"token":"747D3844ABD35B08F27D18D15D7178B7AF99A754D805633928D4362D19B4AEC2",
+
== Получение метеоданных (last) ==
"last_seen":"2017-07-21 04:20:27",
+
 
"available":"1",
+
request:
"voltage":"24",
+
Request URL: [site]/api/device/meteo-last/
"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>
 
  
== Получение данных о сторонних устройствах (other-last) ==
+
параметры запроса:
 
 
Метод возвращает информацию о последнем обнаруженном стороннем устройстве.
 
 
request:
 
 
 
Request URL: [site]/api/device/other-last/
 
 
 
Параметры запроса:
 
  
 
(string) token,
 
(string) token,
Строка 820: Строка 805:
 
{
 
{
 
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae",
 
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae",
"device_id": 118
+
"device_id": 130
 
}
 
}
 
</pre>
 
</pre>
Строка 828: Строка 813:
  
 
Пример ответа:  
 
Пример ответа:  
 +
 
<pre>
 
<pre>
 
{
 
{
"id":"1301",
+
"id":"4046",
"controller_id":"6",
+
"controller_name":"AS_7FD6785CCF5D",
"device_id":"118",
+
"internal_id":"55",
"name":"Розетка",
+
"device_id":"130",
"code":"81",
+
"name":"7",
"pulse_len":null,
+
"temp":"240",
"bit_len":null,
+
"hum":"245",
"protocol":null,
+
"illum":"0",
"groups":null,
+
"pres":"1239",
"type":null,
+
"volt":"32",
"date_time":"2017-08-21 04:55:18",
+
"date_time":"2016-03-02 21:09:40",
"active":null,
+
"new":"0"
"new":"1"
 
 
}
 
}
 
</pre>
 
</pre>
  
 +
== Получение метеоданных за период (period) ==
 +
request:
  
== Получение данных о сторонних устройствах за период (other-period) ==
+
Request URL: [site]/api/device/meteo-period/
request:
 
 
 
Request URL: [site]/api/device/other-period/
 
  
 
параметры запроса:
 
параметры запроса:
Строка 861: Строка 845:
  
 
Пример запроса:  
 
Пример запроса:  
 +
<pre>
 
{
 
{
 
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae",
 
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae",
"device_id": 118,
+
"device_id": 130,
 
"period": 1 // количество дней  
 
"period": 1 // количество дней  
 
}
 
}
 +
</pre>
 +
 
response:
 
response:
  
Строка 872: Строка 859:
 
Пример ответа:  
 
Пример ответа:  
 
<pre>
 
<pre>
{
+
[
"id":"1301",
 
"controller_id":"6",
 
"device_id":"118",
 
"name":"Розетка",
 
"code":"81",
 
"pulse_len":null,
 
"bit_len":null,
 
"protocol":null,
 
"groups":null,
 
"type":null,
 
"date_time":"2017-08-21 04:55:18",
 
"active":null,
 
"new":"1"
 
},
 
 
{
 
{
"id":"4067",
+
"id":"4065",
"controller_id":"6",
+
"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>
 
</pre>
  
= Wizard добавления устройств =
+
== Получение данных электропитания (last) ==
 +
   
 +
request:
 +
Request URL: [site]/api/device/electro-last/
  
 +
параметры запроса:
  
== Датчик открытия двери (create-door-open-sensor) ==
+
(string) token,
  
URL:  [site]/api/wizard/create-door-open-sensor
+
(int) device_id
  
Params:
+
Пример запроса:  
controller_id (required): int
 
token (required): string, 64
 
device_name (optional): string, 256
 
code_ready (optional): string, 64 //Название кода готовности
 
code_alarm (optional): string, 64 //Название кода оповещания
 
code_low_battery (optional): string, 64 //Название кода садящейся батареи
 
 
 
RESPONSE:  
 
 
<pre>
 
<pre>
 
{
 
{
data:{
+
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae",
'response': 'OK'
+
"device_id": 130
},
 
error: null
 
 
}
 
}
 
</pre>
 
</pre>
  
После отправки параметров ожидается срабатывание добавляемого устройства. При срабатывании происходит процесс добавления, и лишь после этого приходит ответ.
+
response:
  
 +
параметры ответа: (object)
  
==  Датчик затопления (create-flood-sensor) ==
+
Пример ответа:
  
Request URL: [site]/api/wizard/create-flood-sensor
+
<pre>
 
+
{
Params:
+
"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"
 +
}
 +
</pre>
  
controller_id (required): int
+
== Получение данных электропитания за период (period) ==
 +
 +
request:
  
token (required): string, 64
+
Request URL: [site]/api/device/electro-period/
  
device_name (optional): string, 256
+
параметры запроса:
code_alarm (optional): string, 64 //Название кода оповещения
 
  
code_tamper (optional): string, 64 //Название кода вмешательства
+
(string) token,
  
code_low_battery (optional): string, 64 //Название кода садящейся батареи
+
(int) device_id,
 +
 
 +
(int) period
  
RESPONSE:  
+
Пример запроса:  
 
<pre>
 
<pre>
 
{
 
{
data: {
+
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae",
'response': 'OK'
+
"device_id": 130,
},
+
"period": 1 // количество дней
error: null
 
 
}
 
}
 
</pre>
 
</pre>
---------------------------------------
+
response:
После отправки параметров ожидается срабатывание добавляемого устройства. При срабатывании происходит процесс добавления, и лишь после этого приходит ответ.
 
  
 +
параметры ответа: (array to objects)
  
== Пульт,4 кнопки (create-console) ==
+
Пример ответа:
 
+
Request URL: [site]/api/wizard/create-console
+
<pre>
 
+
[
Params:
+
{
 
+
"id":"318",
controller_id (required): int
+
"controller_id":"11",
 +
"external_id":"2",
 +
"device_id":"125",
 +
"name":"23",
 +
"token":"747D3844ABD35B08F27D18D15D7178B7AF99A754D805633928D4362D19B4AEC2",
 +
"last_seen":"2017-07-21 04:20:27",
 +
"available":"1",
 +
"voltage":"24",
 +
"have_voltage":"1",
 +
"current":"2147483647",
 +
"have_current":"1",
 +
"supp_voltage":"33",
 +
"date_create":"2017-07-21 01:20:33",
 +
"new":"0"
 +
},
 +
{
 +
"id":"318",
 +
"controller_id":"11",
 +
...
 +
},
 +
]
 +
</pre>
  
token (required): string, 64
+
== Получение данных о сторонних устройствах (other-last) ==
  
device_name (optional): string, 256
+
Метод возвращает информацию о последнем обнаруженном стороннем устройстве.
 +
 +
request:
  
code_lock (optional): string, 64 //Название кода блокировки
+
Request URL: [site]/api/device/other-last/
  
code_unlock (optional): string, 64 //Название кода разблокировки
+
Параметры запроса:
  
code_s (optional): string, 64 //Название кода s
+
(string) token,
  
code_alarm (optional): string, 64 //Название кода оповещения
+
(int) device_id
  
RESPONSE:  
+
Пример запроса:  
 
<pre>
 
<pre>
 
{
 
{
data: {
+
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae",
'response': 'OK'
+
"device_id": 118
},
 
error: null
 
 
}
 
}
 
</pre>
 
</pre>
---------------------------------------
+
response:
После отправки параметров ожидается срабатывание добавляемого устройства. При срабатывании происходит процесс добавления, и лишь после этого приходит ответ.
 
  
 +
параметры ответа: (object)
  
== Сирена (create-siren) ==
+
Пример ответа:
 
+
<pre>
Request URL: [site]/api/wizard/create-siren
+
{
 +
"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>
  
Params:
 
  
controller_id (required): int
+
== Получение данных о сторонних устройствах за период (other-period) ==
 +
request:
  
token (required): string, 64
+
Request URL: [site]/api/device/other-period/
  
device_name (optional): string, 256
+
параметры запроса:
  
code_on (optional): string, 64 //Название кода включения
+
(string) token,
  
code_off (optional): string, 64 //Название кода выключения
+
(int) device_id,
  
code_blank (optional): string, 64 //Название кода blank
+
(int) period
  
RESPONSE:  
+
Пример запроса:  
<pre>
 
 
{
 
{
data: {
+
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae",
'response': 'OK'
+
"device_id": 118,
},
+
"period": 1 // количество дней
error: null
 
 
}
 
}
</pre>
+
response:
---------------------------------------
 
Перед отправкой параметров необходимо перевести сирену в режим обучения.
 
  
 +
параметры ответа: (array to objects)
  
== Метеостанция: получение списка обнаруженных метеостанций за последние 10 минут (get-meteos) ==
+
Пример ответа:  
Request URL: [site]/api/wizard/get-meteos
 
 
 
Params:
 
 
 
controller_id (required): int
 
 
 
token (required): string, 64
 
 
 
RESPONSE:
 
 
<pre>
 
<pre>
 
{
 
{
"error":null,
+
"id":"1301",
"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"}]
+
"controller_id":"6",
 +
"device_id":"118",
 +
"name":"Розетка",
 +
"code":"81",
 +
"pulse_len":null,
 +
"bit_len":null,
 +
"protocol":null,
 +
"groups":null,
 +
"type":null,
 +
"date_time":"2017-08-21 04:55:18",
 +
"active":null,
 +
"new":"1"
 +
},
 +
{
 +
"id":"4067",
 +
"controller_id":"6",
 +
...
 
}
 
}
 
</pre>
 
</pre>
  
== Метеостанция: добавление (create-meteo) ==
+
= Wizard добавления устройств  =
 +
 
 +
 
 +
== Датчик открытия двери (create-door-open-sensor) ==
  
Request URL: [site][site]/api/wizard/create-meteo
+
URL: [site]/api/wizard/create-door-open-sensor
  
 
Params:
 
Params:
 
 
controller_id (required): int
 
controller_id (required): int
 
 
token (required): string, 64
 
token (required): string, 64
 
+
device_name (optional): string, 256
meteo_num (required): int //Получается в списке выше
+
code_ready (optional): string, 64 //Название кода готовности
 
+
code_alarm (optional): string, 64 //Название кода оповещания
device_name (optional): string, 256
+
code_low_battery (optional): string, 64 //Название кода садящейся батареи
  
 
RESPONSE:  
 
RESPONSE:  
 
<pre>
 
<pre>
 
{
 
{
"error":null,
+
data:{
"data":{
+
'response': 'OK'
"response":"OK"
+
},
}
+
error: null
 
}
 
}
 
</pre>
 
</pre>
  
 +
После отправки параметров ожидается срабатывание добавляемого устройства. При срабатывании происходит процесс добавления, и лишь после этого приходит ответ.
  
  
== Водопроводный кран ==
+
== Датчик затопления (create-flood-sensor) ==
  
Порядок добавления крана:
+
Request URL: [site]/api/wizard/create-flood-sensor
1) Сгенерировать коды
 
  
2) Зажать на кране кнопку, пока кран не мигнёт трижды
+
Params:
  
3) Отправить один код
+
controller_id (required): int
  
4) Нажать на кране кнопку однократно
+
token (required): string, 64
  
5) Зажать на кране кнопку, пока не мигнёт 4 раза
+
device_name (optional): string, 256
 +
code_alarm (optional): string, 64 //Название кода оповещения
  
6) Отправить второй код из сгенерированных
+
code_tamper (optional): string, 64 //Название кода вмешательства
  
7) Нажать на кране кнопку однократно
+
code_low_battery (optional): string, 64 //Название кода садящейся батареи
  
8) Отправить запрос на создание крана.
+
RESPONSE:
 +
<pre>
 +
{
 +
data: {
 +
'response': 'OK'
 +
},
 +
error: null
 +
}
 +
</pre>
 +
---------------------------------------
 +
После отправки параметров ожидается срабатывание добавляемого устройства. При срабатывании происходит процесс добавления, и лишь после этого приходит ответ.
  
  
=== Генерация кодов ===
+
== Пульт,4 кнопки (create-console) ==
  
Request URL: [site]/api/wizard/create-codes
+
Request URL: [site]/api/wizard/create-console
  
 
Params:
 
Params:
Строка 1089: Строка 1142:
 
token (required): string, 64
 
token (required): string, 64
  
Response:  
+
device_name (optional): string, 256
<pre>
+
 
{
+
code_lock (optional): 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"}
+
code_unlock (optional): string, 64 //Название кода разблокировки
}
+
 
 +
code_s (optional): string, 64 //Название кода s
 +
 
 +
code_alarm (optional): string, 64 //Название кода оповещения
 +
 
 +
RESPONSE:  
 +
<pre>
 +
{
 +
data: {
 +
'response': 'OK'
 +
},
 +
error: null
 
}
 
}
 
</pre>
 
</pre>
 +
---------------------------------------
 +
После отправки параметров ожидается срабатывание добавляемого устройства. При срабатывании происходит процесс добавления, и лишь после этого приходит ответ.
  
  
=== Выполнение кода ===
+
== Сирена (create-siren) ==
  
Request URL: [site]/api/wizard/execute-code
+
Request URL: [site]/api/wizard/create-siren
  
 
Params:
 
Params:
Строка 1109: Строка 1175:
 
token (required): string, 64
 
token (required): string, 64
  
code (required): int // Берется из сгенерированных
+
device_name (optional): string, 256
 +
 
 +
code_on (optional): string, 64 //Название кода включения
  
Response:
+
code_off (optional): string, 64 //Название кода выключения
 +
 
 +
code_blank (optional): string, 64 //Название кода blank
 +
 
 +
RESPONSE:  
 
<pre>
 
<pre>
 
{
 
{
error: null,
 
 
data: {
 
data: {
"response":"OK"
+
'response': 'OK'
}
+
},
 +
error: null
 
}
 
}
 
</pre>
 
</pre>
 +
---------------------------------------
 +
Перед отправкой параметров необходимо перевести сирену в режим обучения.
  
=== Добавление крана ===
 
  
Request URL: [site]/api/wizard/create-crane-by-codes
+
== Метеостанция: получение списка обнаруженных метеостанций за последние 10 минут (get-meteos) ==
 +
Request URL: [site]/api/wizard/get-meteos
  
 
Params:
 
Params:
Строка 1131: Строка 1205:
 
token (required): string, 64
 
token (required): string, 64
  
code_1 (required): int
+
RESPONSE:
 +
<pre>
 +
{
 +
"error":null,
 +
"data": [{"id":"93","controller_id":"79","date":"1528389351","type":"7","family":"0","rf_code":null,"rf_bit_len":null,"rf_pulse_len":null,"rf_protocol":null,"rf_freq":null,"ir_code":null,"ir_bit_len":null,"ir_address":null,"ir_protocol":null,"meteo_num":"0"}]
 +
}
 +
</pre>
  
code_2 (required): int
+
== Метеостанция: добавление (create-meteo) ==
  
device_name (optional): string, 256
+
Request URL: [site][site]/api/wizard/create-meteo
 +
 
 +
Params:
 +
 
 +
controller_id (required): int
 +
 
 +
token (required): string, 64
  
code_open (optional): string, 64 //Название кода открытия
+
meteo_num (required): int //Получается в списке выше
  
code_close (optional): string, 64 //Название кода закрытия
+
device_name (optional): string, 256
  
 
RESPONSE:  
 
RESPONSE:  
 
<pre>
 
<pre>
 
{
 
{
data:{'response': 'OK'},
+
"error":null,
error: null
+
"data":{
 +
"response":"OK"
 +
}
 
}
 
}
 
</pre>
 
</pre>
  
== Добавление розетки ==
 
  
порядок добаления розетки следующий:
 
  
 +
== Водопроводный кран ==
 +
 +
Порядок добавления крана:
 
1) Сгенерировать коды
 
1) Сгенерировать коды
  
2) Зажать на розетке кнопку, пока она не начнет мигать
+
2) Зажать на кране кнопку, пока кран не мигнёт трижды
  
 
3) Отправить один код
 
3) Отправить один код
  
4) Зажать на розетке кнопку, пока она не начнет мигать
+
4) Нажать на кране кнопку однократно
  
5) Отправить второй код из сгенерированых
+
5) Зажать на кране кнопку, пока не мигнёт 4 раза
  
6) Отправить запрос на создание розетки
+
6) Отправить второй код из сгенерированных
 +
 
 +
7) Нажать на кране кнопку однократно
 +
 
 +
8) Отправить запрос на создание крана.
  
  
=== Генерация кодов (create-codes) ===
+
=== Генерация кодов ===
  
 
Request URL: [site]/api/wizard/create-codes
 
Request URL: [site]/api/wizard/create-codes
Строка 1176: Строка 1269:
 
token (required): string, 64
 
token (required): string, 64
  
socket (required): любое значение.
+
Response:  
 
 
Response:
 
 
<pre>
 
<pre>
 
{
 
{
 
"error":null,
 
"error":null,
"data":{
+
"data":{"response":{"id":30,"masks":"[6,4,0,1]","code_1":"9920950","code_2":"9920948","code_3":"9920944","code_4":"9920945"}
"response":{"id":30,"masks":"[257, 258]","code_1":"8737025","code_2":"8737026"}
 
 
}
 
}
 
}
 
}
Строка 1189: Строка 1279:
  
  
=== Выполнение кода (execute-code) ===
+
=== Выполнение кода ===
  
 
Request URL: [site]/api/wizard/execute-code
 
Request URL: [site]/api/wizard/execute-code
Строка 1201: Строка 1291:
 
code (required): int // Берется из сгенерированных
 
code (required): int // Берется из сгенерированных
  
Response  
+
Response:
 
<pre>
 
<pre>
 
{
 
{
 
error: null,
 
error: null,
data: {'response' => 'OK'}
+
data: {
 +
"response":"OK"
 +
}
 
}
 
}
 
</pre>
 
</pre>
  
 +
=== Добавление крана ===
  
=== Добавление розетки (create-socket) ===
+
Request URL: [site]/api/wizard/create-crane-by-codes
 
 
Request URL: [site]/api/wizard/create-socket
 
  
 
Params:
 
Params:
Строка 1226: Строка 1317:
 
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 //Название кода закрытия
  
 
RESPONSE:  
 
RESPONSE:  
 
<pre>
 
<pre>
 
{
 
{
data: {'response':'OK'},
+
data:{'response': 'OK'},
 
error: null
 
error: null
 
}
 
}
 
</pre>
 
</pre>
  
= Сценарии =
+
== Добавление розетки ==
  
== Список сценариев (list) ==
+
порядок добаления розетки следующий:
  
request:
+
1) Сгенерировать коды
Request URL: [site]/api/scheduler/list/
 
  
параметры запроса: (string) token
+
2) Зажать на розетке кнопку, пока она не начнет мигать
  
Пример запроса:
+
3) Отправить один код
 
<pre>
 
{
 
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"
 
}
 
</pre>
 
  
response:
+
4) Зажать на розетке кнопку, пока она не начнет мигать
  
параметры ответа:
+
5) Отправить второй код из сгенерированых
  
Пример ответа:  
+
6) Отправить запрос на создание розетки
 +
 
 +
 
 +
=== Генерация кодов (create-codes) ===
 +
 
 +
Request URL: [site]/api/wizard/create-codes
 +
 
 +
Params:
 +
 
 +
controller_id (required): int
 +
 
 +
token (required): string, 64
 +
 
 +
socket (required): любое значение.
 +
 
 +
Response:
 
<pre>
 
<pre>
 
{
 
{
"0":{
+
"error":null,
"id":9,
+
"data":{
"external_id":42,
+
"response":{"id":30,"masks":"[257, 258]","code_1":"8737025","code_2":"8737026"}
"name":"test_form_web",
+
}
"operation":"local",
+
}
"armed":0,
+
</pre>
"type":"meteo",
+
 
"action_id":1,
+
 
"a_controller_id":6,
+
=== Выполнение кода  (execute-code) ===
"a_device_id":112,
+
 
"a_code_id":0,
+
Request URL: [site]/api/wizard/execute-code
"a_device_external_id":38,
+
 
"a_armed":0,
+
Params:
"a_conf1":0,
+
 
"a_conf2":0,
+
controller_id (required): int
"a_conf3":0,
+
 
"a_conf4":0,
+
token (required): string, 64
"a_conf5":0,
+
 
"a_conf6":0,
+
code (required): int // Берется из сгенерированных
"a_conf7":0,
+
 
"a_conf8":0,
+
Response
"target_id":1,
+
<pre>
"t_controller_id":6,
+
{
"t_device_id":119,
+
error: null,
"t_code_id":203,
+
data: {'response' => 'OK'}
"t_device_external_id":7,
+
}
"t_armed":0,
+
</pre>
"t_conf1":0,
+
 
"t_conf2":0,
+
 
"t_conf3":0,
+
=== Добавление розетки (create-socket) ===
"t_conf4":0,
+
 
"t_conf5":0,
+
Request URL: [site]/api/wizard/create-socket
"t_conf6":0,
+
 
"t_conf7":0,
+
Params:
"t_conf8":0,
 
"date":null,
 
"repetition":"0",
 
"sensor_type":"1",
 
"logic_operation":"=",
 
"value":"3",
 
"active":1
 
},
 
"1":{
 
"id":10,
 
"external_id":45
 
...
 
}
 
}
 
  
</pre>
+
controller_id (required): int
  
 +
token (required): string, 64
  
== Обновление сценариев (update) ==
+
code_1 (required): int
  
Запрос осуществляется в 2 этапа: на первом этапе происходит при запросе на обновление Контроллера (см. "Обновление Контроллера");
+
code_2 (required): int
на втором этапе обновляется информация о каждом действии.
 
  
request:
+
device_name (optional): string, 256
Request URL: [site]/api/scheduler/update/
 
  
параметры запроса:
+
code_off (optional): string, 64 //Название кода открытия
  
(int) controller_id,
+
code_on (optional): string, 64 //Название кода закрытия
  
(string) token
+
RESPONSE:  
 
 
Пример запроса:  
 
 
<pre>
 
<pre>
 
{
 
{
"controller_id": 6 ,
+
data: {'response':'OK'},
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae",
+
error: null
 
}
 
}
 
</pre>
 
</pre>
  
response:
+
= Сценарии =
 +
 
 +
== Список сценариев (list) ==
 +
 
 +
request:
 +
Request URL: [site]/api/scheduler/list/
  
параметры ответа:  
+
параметры запроса: (string) token
  
Пример ответа:  
+
Пример запроса:
 +
 
<pre>
 
<pre>
 
{
 
{
"result": "Ok" // ответ что запрос ушел
+
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"
 
}
 
}
 
</pre>
 
</pre>
Процесс обновления происходит автоматически. Для получения результата требуется таймаут, после чего делается стандартный запрос на получение данных (Контроллер, действия)
 
  
 +
response:
  
== Информация о сценарии (info) ==
+
параметры ответа:
  
request:
+
Пример ответа:  
Request URL: [site]/api/scheduler/info/
 
 
 
параметры запроса:
 
 
 
(int) scheduler_id,
 
 
 
(string) token
 
 
 
Пример ответа:
 
<pre>
 
{
 
"scheduler_id": 122,
 
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"
 
}
 
</pre>
 
response:
 
 
 
параметры ответа:
 
 
 
Пример ответа:  
 
 
<pre>
 
<pre>
 
{
 
{
 +
"0":{
 
"id":9,
 
"id":9,
 
"external_id":42,
 
"external_id":42,
Строка 1414: Строка 1483:
 
"value":"3",
 
"value":"3",
 
"active":1
 
"active":1
 +
},
 +
"1":{
 +
"id":10,
 +
"external_id":45
 +
...
 +
}
 
}
 
}
</pre>  
+
 
 +
</pre>
  
  
 +
== Обновление сценариев (update) ==
 +
 +
Запрос осуществляется в 2 этапа: на первом этапе происходит при запросе на обновление Контроллера (см. "Обновление Контроллера");
 +
на втором этапе обновляется информация о каждом действии.
  
= Логи пользователя (logs) =
 
 
request:
 
request:
 +
Request URL: [site]/api/scheduler/update/
 +
 +
параметры запроса:
  
Request URL: [site]/api/profile/logs/
+
(int) controller_id,
  
параметры запроса: (string) token
+
(string) token
  
 
Пример запроса:  
 
Пример запроса:  
 
<pre>
 
<pre>
 
{
 
{
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"
+
"controller_id": 6 ,
 +
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae",
 
}
 
}
 
</pre>
 
</pre>
 +
 
response:
 
response:
параметры ответа: (object)
 
пример:
 
{
 
 
}
 
 
  
 +
параметры ответа:
  
 +
Пример ответа:
 +
<pre>
 +
{
 +
"result": "Ok" // ответ что запрос ушел
 +
}
 +
</pre>
 +
Процесс обновления происходит автоматически. Для получения результата требуется таймаут, после чего делается стандартный запрос на получение данных (Контроллер, действия)
  
  
 
+
== Информация о сценарии (info) ==
= Коды =
 
 
 
== Получение информации о коде (info) ==
 
  
 
request:
 
request:
 
+
Request URL: [site]/api/scheduler/info/
Request URL: [site]/api/property/info/
 
  
 
параметры запроса:
 
параметры запроса:
(int) controller_id,
 
  
(int) device_id,
+
(int) scheduler_id,
 
 
(int) code_id,
 
  
 
(string) token
 
(string) token
  
Пример запроса:  
+
Пример ответа:  
 
<pre>
 
<pre>
 
{
 
{
"controller_id": 6,
+
"scheduler_id": 122,
"device_id": 109,
 
"code_id": 192,
 
 
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"
 
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"
 
 
}
 
}
 
</pre>
 
</pre>
 +
response:
  
response:
 
 
параметры ответа:  
 
параметры ответа:  
  
Строка 1478: Строка 1554:
 
<pre>
 
<pre>
 
{
 
{
"id":"192",
+
"id":9,
"external_cod_id":"67",
+
"external_id":42,
"device_id":"109",
+
"name":"test_form_web",
"name":"4 OFF",
+
"operation":"local",
"code":"12209156",
+
"armed":0,
"protocol":"1",
+
"type":"meteo",
"pulse_len":null,
+
"action_id":1,
"group_1":"1",
+
"a_controller_id":6,
"group_2":"0",
+
"a_device_id":112,
"group_3":"0",
+
"a_code_id":0,
"group_4":"0",
+
"a_device_external_id":38,
"group_5":"0",
+
"a_armed":0,
"group_6":"0",
+
"a_conf1":0,
"group_7":"0",
+
"a_conf2":0,
"group_8":"0",
+
"a_conf3":0,
"active":"1"
+
"a_conf4":0,
 +
"a_conf5":0,
 +
"a_conf6":0,
 +
"a_conf7":0,
 +
"a_conf8":0,
 +
"target_id":1,
 +
"t_controller_id":6,
 +
"t_device_id":119,
 +
"t_code_id":203,
 +
"t_device_external_id":7,
 +
"t_armed":0,
 +
"t_conf1":0,
 +
"t_conf2":0,
 +
"t_conf3":0,
 +
"t_conf4":0,
 +
"t_conf5":0,
 +
"t_conf6":0,
 +
"t_conf7":0,
 +
"t_conf8":0,
 +
"date":null,
 +
"repetition":"0",
 +
"sensor_type":"1",
 +
"logic_operation":"=",
 +
"value":"3",
 +
"active":1
 
}
 
}
</pre>
+
</pre>  
  
  
== Изменение имени кода (update-code-name) ==
 
  
Request URL: [site]/api/device/update-code-name
+
= Логи пользователя (logs) =
 +
request:
  
Request Params:
+
Request URL: [site]/api/profile/logs/
  
token (required): string(64)
+
параметры запроса: (string) token
  
code_id (required): int
+
Пример запроса:  
 
 
name (optional): string(255)
 
 
 
SUCCESS RESPONSE:
 
 
<pre>
 
<pre>
 
{
 
{
data: {
+
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"
'message': "OK"
 
},
 
error: null
 
 
}
 
}
 
</pre>
 
</pre>
 +
response:
 +
параметры ответа: (object)
 +
пример:
 +
{
 +
 +
}
  
==  Получение кодов по типу сигнала (get-codes-by-subtype) ==
 
  
Request URL: [site]/api/device/get-codes-by-subtype
 
  
Request Params:
 
  
token (required): string(64)
 
  
device_subtype_id (optional): int, default 0.
 
  
== Получение списка кодов (get-codes) ==
+
= Коды =
 +
 
 +
== Получение информации о коде (info) ==
 +
 
 +
request:
 +
 
 +
Request URL: [site]/api/property/info/
 +
 
 +
параметры запроса:
 +
(int) controller_id,
  
Request URL: [site]/api/device/get-codes
+
(int) device_id,
  
PARAMS:
+
(int) code_id,
token (required): string 64
 
  
controller_id (required): int
+
(string) token
  
SUCCESS RESPONSE:
+
Пример запроса:  
 
<pre>
 
<pre>
 
{
 
{
data: [
+
"controller_id": 6,
{
+
"device_id": 109,  
devices: [
+
"code_id": 192,
{
+
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"
id: 13
+
 
external_id: 7,
+
}
controller_id: 5,
+
</pre>
name: "Simple device",
+
 
type_id: 2,
+
response:
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,
+
<pre>
active: 1,
+
{
new: 1,
+
"id":"192",
family: DEVICE_FAMILY_RADIO,
+
"external_cod_id":"67",
camera_id: null,
+
"device_id":"109",
camera_host: null
+
"name":"4 OFF",
},
+
"code":"12209156",
{
+
"protocol":"1",
id: 14
+
"pulse_len":null,
external_id: 8,
+
"group_1":"1",
controller_id: 5,
+
"group_2":"0",
name: "Simple device",
+
"group_3":"0",
type_id: 2,
+
"group_4":"0",
password: null,
+
"group_5":"0",
codes: "a:4:{i:0;i:46;i:1;i:47;i:2;i:48;i:3;i:45;}",
+
"group_6":"0",
state: 1,
+
"group_7":"0",
on_dashboard: 0,
+
"group_8":"0",
active: 1,
+
"active":"1"
new: 1,
+
}
family: DEVICE_FAMILY_RADIO,
+
</pre>
camera_id: null,
+
 
camera_host: null
+
 
},
+
== Изменение имени кода (update-code-name) ==
],
 
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"
 
  
}
+
Request URL: [site]/api/device/update-code-name
},
 
  
{
+
Request Params:
devices: [
+
 
{
+
token (required): string(64)
id: 13
+
 
external_id: 7,
+
code_id (required): int
controller_id: 5,
+
 
name: "Simple device",
+
name (optional): string(255)
type_id: 2,
+
 
password: null,
+
SUCCESS RESPONSE:
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>
},
+
 
{
+
==  Получение кодов по типу сигнала (get-codes-by-subtype) ==
id: 14
+
 
external_id: 8,
+
Request URL: [site]/api/device/get-codes-by-subtype
controller_id: 5,
+
 
name: "Simple device",
+
Request Params:
type_id: 2,
+
 
password: null,
+
token (required): string(64)
codes: "a:4:{i:0;i:46;i:1;i:47;i:2;i:48;i:3;i:45;}",
+
 
state: 1,
+
device_subtype_id (optional): int, default 0.
on_dashboard: 0,
+
 
active: 1,
+
==  Получение списка кодов (get-codes) ==
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"
 
  
}
+
Request URL: [site]/api/device/get-codes
},
 
},
 
error: null,
 
}
 
</pre>
 
  
== Добавление кода к устройству (set-code-to-device) ==
+
PARAMS:
 +
token (required): string 64
  
Request URL: [site]/api/device/set-code-to-device
+
controller_id (required): int
 
 
PARAMS:
 
 
 
token (required): string 64
 
 
 
code_id (required): int
 
 
 
device_id (required): int
 
 
 
name (optional): string 256
 
  
 
SUCCESS RESPONSE:
 
SUCCESS RESPONSE:
 
<pre>
 
<pre>
 
{
 
{
data: {
+
data: [
id: 5,
+
{
external_cod_id: 15,
+
devices: [
device_id: 14,
+
{
name: "Name"
+
id: 13
code: 8463517,
+
external_id: 7,
protocol: 0,
+
controller_id: 5,
pulse_len: 86,  
+
name: "Simple device",
active: 1,
+
type_id: 2,
},
+
password: null,
error: null
+
codes: "a:4:{i:0;i:46;i:1;i:47;i:2;i:48;i:3;i:45;}",
}
+
state: 1,
</pre>
+
on_dashboard: 0,
 
+
active: 1,
== Удаление кода (remove-code) ==
+
new: 1,
 
+
family: DEVICE_FAMILY_RADIO,
Request URL: [site]/api/device/remove-code
+
camera_id: null,
PARAMS:
+
camera_host: null
 
+
},
token (required): string 64
+
{
 
+
id: 14
code_id (required): int
+
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"
  
SUCCESS RESPONSE:
+
}
<pre>
+
},  
{
 
data: {
 
message: "OK"
 
},
 
error: null
 
}
 
</pre>
 
  
= События =
+
{
 
+
devices: [
== Нажатие кнопки на устройстве (event) ==
+
{
 
+
id: 13
request:
+
external_id: 7,
 
+
controller_id: 5,
Request URL: [site]/api/device/event/
+
name: "Simple device",
параметры запроса:
+
type_id: 2,
 
+
password: null,
(string) controller_name,
+
codes: "a:4:{i:0;i:46;i:1;i:47;i:2;i:48;i:3;i:45;}",
 
+
state: 1,
(int) device_external_id,
+
on_dashboard: 0,
 
+
active: 1,
(int) cod_external_id,
+
new: 1,
 
+
family: DEVICE_FAMILY_RADIO,
(string) token,
+
camera_id: null,
 
+
camera_host: null
(int) device_type
+
},
 
+
{
Пример запроса:  
+
id: 14
 
+
external_id: 8,
<pre>
+
controller_id: 5,
{
+
name: "Simple device",
"controller_name": " AS_7F26335CCF4B" ,
+
type_id: 2,
"device_external_id": 19,
+
password: null,
"cod_external_id": 1,
+
codes: "a:4:{i:0;i:46;i:1;i:47;i:2;i:48;i:3;i:45;}",
"device_type": 1,
+
state: 1,
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"
+
on_dashboard: 0,
}
+
active: 1,
</pre>
+
new: 1,
 
+
family: DEVICE_FAMILY_RADIO,
так как MQTT  односторонний - ответа быть не может. Может быть возвращён ответ, что запрос отправлен:
+
camera_id: null,
response:
+
camera_host: null
 
+
},
параметры ответа:  
+
],
 
+
code: {
Пример ответа:  
+
id: 12,
 
+
controller_id: 5,
<pre>
+
device_type_id: 2,
{
+
code: 498654,
"result": "Ok"
+
protocol: 1,
 +
bit_len: 32,
 +
pulse_len: 86,
 +
freq: 77,
 +
address: 94,
 +
num: 1,
 +
date_create: '2018-04-13 18:29:11"
 +
 
 +
}
 +
},
 +
},
 +
error: null,
 
}
 
}
 
</pre>
 
</pre>
  
= Места =
+
== Добавление кода к устройству (set-code-to-device) ==
  
== Получение списка мест (places-list) ==
+
Request URL: [site]/api/device/set-code-to-device
  
Request URL: [site]/api/places/places-list
+
PARAMS:
  
Request params:
+
token (required): string 64
  
token (required): string, 64
+
code_id (required): int
  
Response:  
+
device_id (required): int
 +
 
 +
name (optional): string 256
 +
 
 +
SUCCESS RESPONSE:
 
<pre>
 
<pre>
 
{
 
{
"error":null,
+
data: {
"data":{
+
id: 5,
"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}]
+
external_cod_id: 15,
}
+
device_id: 14,
 +
name: "Name"
 +
code: 8463517,
 +
protocol: 0,
 +
pulse_len: 86,  
 +
active: 1,
 +
},
 +
error: null
 
}
 
}
 
</pre>
 
</pre>
  
 +
== Удаление кода (remove-code) ==
  
== Создание места (create) ==
+
Request URL: [site]/api/device/remove-code
 +
PARAMS:
  
 +
token (required): string 64
  
Request URL: [site]/api/places/create
+
code_id (required): int
  
Request params:
+
SUCCESS RESPONSE:
 +
<pre>
 +
{
 +
data: {
 +
message: "OK"
 +
},
 +
error: null
 +
}
 +
</pre>
  
token (required): string, 64
+
= События =
  
root (optional): int, default 1
+
== Нажатие кнопки на устройстве (event) ==
  
lft (optional): int, from 1 to 5 //В сумме с rgt должно быть 5
+
request:
  
rgt (optional): int, from 1 to 5 //В сумме с lft должно быть 5
+
Request URL: [site]/api/device/event/
 +
параметры запроса:
  
lvl (optional): int, default 0
+
(string) controller_name,
  
name (optional): string, 64, default 'Simple name'
+
(int) device_external_id,
  
icon (optional): string, default '' //Допускаемые параметры -- ключи объекта выше
+
(int) cod_external_id,
  
color (optional): string, default: '#ccc' //Любой цвет в формате HEX, решетка в начале обязательна
+
(string) token,
  
active (optional): int, default 1
+
(int) device_type
  
selected (optional): int, default 0
+
Пример запроса:  
  
disabled (optional): int, default 0
+
<pre>
 +
{
 +
"controller_name": " AS_7F26335CCF4B" ,
 +
"device_external_id": 19,
 +
"cod_external_id": 1,
 +
"device_type": 1,
 +
"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"
 +
}
 +
</pre>
  
readonly (optional): int, default 0
+
так как MQTT  односторонний - ответа быть не может. Может быть возвращён ответ, что запрос отправлен:
 +
response:
  
visible (optional): int, default 1
+
параметры ответа:  
  
collapsed (optional): int, default 0
+
Пример ответа:  
  
movable_u (optional): int, default 1
+
<pre>
 +
{
 +
"result": "Ok"
 +
}
 +
</pre>
  
movable_d (optional): int, default 1
+
= Места =
  
movable_l (optional): int, default 1
+
== Получение списка мест (places-list) ==
  
movable_r (optional): int, default 1
+
Request URL: [site]/api/places/places-list
  
removable (optional): int, default 1
+
Request params:
 
 
removable_all (optional): int, default 0
 
 
 
inverse_text (optional): string, default 'black'
 
  
 +
token (required): string, 64
  
 
Response:  
 
Response:  
 
<pre>
 
<pre>
 
{
 
{
error:null,
+
"error":null,
data: {'message': 'OK'}
+
"data":{
 +
"rooms":[{"id":1,"root_id":1,"user_id":424,"lvl":0,"name":"Дом","icon":0,"icon_type":1,"color":"#fff2cc","readonly":0,"visible":1},{"id":2,"root_id":1,"user_id":424,"lvl":1,"name":"Спальня","icon":0,"icon_type":1,"color":"#b6d7a8","readonly":0,"visible":1}]
 +
}
 
}
 
}
 
</pre>
 
</pre>
  
  
== Редактирование места (edit) ==
+
== Создание места (create) ==
 +
 
  
Request URL: [site]/api/places/edit
+
Request URL: [site]/api/places/create
  
 
Request params:
 
Request params:
  
 
token (required): string, 64
 
token (required): string, 64
 
place_id (required): int
 
  
 
root (optional): int, default 1
 
root (optional): int, default 1
Строка 1874: Строка 1994:
  
  
Response:
+
Response:  
 
<pre>
 
<pre>
 
{
 
{
Строка 1880: Строка 2000:
 
data: {'message': 'OK'}
 
data: {'message': 'OK'}
 
}
 
}
 
 
</pre>
 
</pre>
  
== Удаление места (delete) ==
 
  
Request URL: [site]/api/places/delete
+
==  Редактирование места (edit) ==
 +
 
 +
Request URL: [site]/api/places/edit
  
 
Request params:
 
Request params:
Строка 1893: Строка 2013:
 
place_id (required): int
 
place_id (required): int
  
Response:
+
root (optional): int, default 1
<pre>
+
 
{
+
lft (optional): int, from 1 to 5 //В сумме с rgt должно быть 5
error:null,
 
data: {'message': 'OK'}
 
}
 
</pre>
 
  
 +
rgt (optional): int, from 1 to 5 //В сумме с lft должно быть 5
  
 +
lvl (optional): int, default 0
  
 +
name (optional): string, 64, default 'Simple name'
  
== Удаление устройства (remove-device) ==
+
icon (optional): string, default '' //Допускаемые параметры -- ключи объекта выше
  
Request URL: [site]/api/device/remove-device
+
color (optional): string, default: '#ccc' //Любой цвет в формате HEX, решетка в начале обязательна
  
PARAMS:
+
active (optional): int, default 1
  
token (required): string (64)
+
selected (optional): int, default 0
  
device_id (required): int
+
disabled (optional): int, default 0
  
SUCCESS RESPONSE:  
+
readonly (optional): int, default 0
  
<pre>
+
visible (optional): int, default 1
{
+
 
data: {message: 'OK'},
+
collapsed (optional): int, default 0
error: null
+
 
}
+
movable_u (optional): int, default 1
</pre>
+
 
 +
movable_d (optional): int, default 1
 +
 
 +
movable_l (optional): int, default 1
  
 +
movable_r (optional): int, default 1
  
=== Удаление устройства (remove-device) ===
+
removable (optional): int, default 1
  
Request URL: [site]/api/device/remove-device
+
removable_all (optional): int, default 0
PARAMS:
 
  
token (required): string 64
+
inverse_text (optional): string, default 'black'
  
device_id (required): int
 
  
SUCCESS RESPONSE:
+
Response:
 
<pre>
 
<pre>
 
{
 
{
data: {
+
error:null,
message: "OK"
+
data: {'message': 'OK'}
},
 
error: null
 
 
}
 
}
 +
 
</pre>
 
</pre>
  
 +
== Удаление места (delete) ==
  
==  передача локального IP Контроллера (get-ip) ==
+
Request URL: [site]/api/places/delete
  
Request URL: [site]/api/ctrl/get-ip
+
Request params:
  
Request Params:
+
token (required): string, 64
  
token (required): string(64);
+
place_id (required): int
 
 
controller_id (required): int;
 
 
 
SUCCESS RESPONSE:
 
  
 +
Response:
 
<pre>
 
<pre>
 
{
 
{
data:'192.168.0.15',
+
error:null,
error: null
+
data: {'message': 'OK'}
 
}
 
}
 
</pre>
 
</pre>
 +
 +
 +
  
  
Строка 2028: Строка 2149:
 
При получении сообщения со статусом "2", портал должен отправить Контроллеру информацию о пользовательских подписках, как это описано в разделе «Подписки».
 
При получении сообщения со статусом "2", портал должен отправить Контроллеру информацию о пользовательских подписках, как это описано в разделе «Подписки».
  
 
 
== ?? Установка подписки на Контроллере - “in/subscription/set”: ==
 
<pre>
 
{
 
"seq_id": 0,
 
"id": 1, // ID подписки (см. ниже)
 
"remain_time": 100 // оставшееся время в секундах, 4294967295 - неограниченно
 
}
 
<pre>
 
 
==  Просмотр статуса подписки (get-subscribe-status) ==
 
 
Request URL: [site]/api/ctrl/get-subscribe-status
 
 
params:
 
 
token (required): string(64)
 
 
controller_id (required): int
 
 
response:
 
 
{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
 
 
params:
 
 
token (required): string(64)
 
 
controller_id (required): int
 
 
response:
 
<pre>
 
{
 
data:{
 
id: 1,
 
controller_id: 40,
 
user_id: 424,
 
remain_time: 100,
 
request_time: 1355314332,
 
response_time: 1355315332,
 
success: 0
 
},
 
error: ''
 
}
 
</pre>
 
 
 
==  ? Метод получения списка телефонов (get-phones) ==
 
 
Request URL: [site]/api/ctrl/get-phones
 
 
Params:
 
 
token (required): string, 64
 
 
controller_id (required): int
 
 
type (optional): string,
 
range ['recipient', 'authorized', 'all'], default 'all'
 
 
Response:
 
 
<pre>
 
{
 
'error': null,
 
data: [
 
{'id': 5, 'phone': '+380123456789'},
 
{'id': 6, 'phone': '+380123334455'},
 
{'id': 7, 'phone': '+380112223344'}
 
]
 
}
 
</pre>
 
 
 
==  Редактирование телефона (edit-phone) ==
 
 
Request URL: [site]/api/ctrl/edit-phone
 
 
Params:
 
 
token (required): string, 64
 
 
phone_id (required): int
 
 
is_recipient (optional): int
 
 
is_authorized (optional): int
 
 
phone (optional): string
 
 
Response:
 
<pre>
 
{
 
"error":null,
 
"data":{
 
"id":2,
 
"controller_id":81,
 
"phone":"+380503334455",
 
"is_recipient":"1",
 
"is_authorized":0
 
}
 
}
 
</pre>
 
 
 
==  Удаление телефона (delete-phone) ==
 
 
Request URL: [site]/api/ctrl/delete-phone
 
 
Params:
 
 
token (required): string, 64
 
 
phone_id (required): int
 
 
Response:
 
<pre>
 
{
 
"error":null,
 
"data":{"response":"OK"}
 
}
 
</pre>
 
 
== Добавление телефона (add-phone) ==
 
 
Request URL: [site]/api/ctrl/add-phone
 
 
Params:
 
 
token (required): string, 64
 
 
controller_id (required): int
 
 
phone (required): string
 
 
is_recipient (optional): int
 
 
is_authorized (optional): int
 
 
Response:
 
 
<pre>
 
{
 
"error":null,
 
"data":{
 
"id":2,
 
"controller_id":81,
 
"phone":"+380503334455",
 
"is_recipient":"1",
 
"is_authorized":0
 
}
 
}
 
</pre>
 
</pre>
 
  
 
= Ошибки =
 
= Ошибки =

Версия 15:21, 27 марта 2019

  • API v01 *

API ( json )

URL https://quadrobit.com/

Содержание

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

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

request:

Request URL: [site]/api/login

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

(string) email,

(string) password

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

{
	"email":"aaaa@aaaa.aa",
	"password":"12345678"
}

response: параметры ответа: (object)

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

{
	"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: Request URL: [site]/api/registration

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

(string) email,

(string) password

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

{
	"email":"aaaa@aaaa.aa",
	"password":"12345678"
}

response: параметры ответа: (object) пример:

{
    	"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:

Request URL: [site]/api/profile/

параметры запроса: (string) token

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

{
	"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"
}

response: параметры ответа: (object) пример:

{
	"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: Request URL: [site]/api/ctrl/list/

параметры запроса: (string) token

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

{
	"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"
}

response:

параметры ответа: (array)

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

{
"0":{
	"id":"11",
	"name":"AS_A61301A020E4",
	"armed":"0",   //0 - снят с охраны, 1 - под охраной
	"device_ids":"a:3:{i:0;i:1;i:1;i:2;i:2;i:3;}", //ids устройств на контроллере
	"action_ids":"a:0:{}", //ids действий на контроллере
	"timezone":"3",
	"token":"747D3844ABD35B08F27D18D15D7178B7AF99A754D805633928D4362D19B4AEC2",
	"online":"1"
},
"1":{
	"id":"12",
	"name":"AS_A61301A020E5",
	"armed":"1",
	"device_ids":"a:3:{i:0;i:1;i:1;i:2;i:2;i:3;}",
	"action_ids":"a:0:{}",
	"timezone":"2",
	"token":"734D3844ABD35B08F27D18D15D7178B7AF99A754D805633928D4362D19B4AEC2",
	"online":"0"
}] 


Информация о Контроллере (info)

request: Request URL: [site]/api/ctrl/info/

параметры запроса: (int) controller_id , (string) token

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

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

response:

параметры ответа: (object)

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

{
	"id":"6",
	"name":"AS_7F26335CCF4B",
	"armed":"1",
	"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;}",
	"action_ids":"a:4:{i:0;i:45;i:1;i:46;i:2;i:49;i:3;i:42;}",
	"timezone":"3",
	"token":"660D91C2B0926A8C981AE7DA4AAA4421A3D86D136262A6F8E98ACF534A7A715B",
	"online":"1"
}

Постановка/снятие Контроллера на охрану / с охраны (armed)

request:

Request URL: [site]/api/ctrl/armed/

параметры запроса: (int) controller_id , (string) token пример:

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

так как MQTT односторонний - ответа быть не может. Ответ что запрос ушел: response: параметры ответа: пример:

{
	"result": "Ok"
}


Добавление Контроллера (add)

request:

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

параметры запроса: (string) token

Пример:

{
	"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"
}

response: параметры ответа: пример:

{
	"PIN":"7gDH"
}

После ввода пин-кода необходимо обновить список Контроллеров (/api/ctrl/list/)

Обновление списка устройств и действий на Контроллере (update)

Этап 1 - обновляем список IDS устройств на Контроллере

request:

Request URL: [site]/api/ctrl/update/ параметры запроса: (int) controller_id , (string) token пример:

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

response: параметры ответа: пример:

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

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

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

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

(int) controller_id, (string) token

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

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

response:

параметры ответа:

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

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

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


Удаление Контроллера (delete)

Request URL: [site]/api/ctrl/delete

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

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

{
	"token":"8yE-VIQrYuZ2bTeho_lajxjOJPnIe_Yx",
	"controller_id":"81"	
}

response: параметры ответа: пример:

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

Обновление статуса контроллера (update-status)

request:

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

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

(string) token,

(int) controller_id

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

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

response:

параметры ответа:

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

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

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

request:

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

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

(string) token,

(int) controller_id

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

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

response:

параметры ответа:

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

{
	"error":null,
	"data":{
		"status":1
		}
}

Поле “status” может принимать следующие значения: • 0 – офлайн

• 1 – онлайн

• 2 – онлайн, после включения питания

Передача локального IP Контроллера (get-ip)

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

Request Params:

token (required): string(64);

controller_id (required): int;

SUCCESS RESPONSE:

{
	data:'192.168.0.15',
	error: null
}

?? Установка подписки на Контроллере - “in/subscription/set”:

{
	"seq_id": 0,
	"id": 1, // ID подписки (см. ниже)
	"remain_time": 100 // оставшееся время в секундах, 4294967295 - неограниченно
}

Просмотр статуса подписки (get-subscribe-status)

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

params:

token (required): string(64)

controller_id (required): int

response:

{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

params:

token (required): string(64)

controller_id (required): int

response:

{
	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

Params:

token (required): string, 64

controller_id (required): int

type (optional): string, range ['recipient', 'authorized', 'all'], default 'all'

Response:

{
	'error': null,
	data: [
		{'id': 5, 'phone': '+380123456789'},
		{'id': 6, 'phone': '+380123334455'},
		{'id': 7, 'phone': '+380112223344'}
	]
}


Редактирование телефона (edit-phone)

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

Params:

token (required): string, 64

phone_id (required): int

is_recipient (optional): int

is_authorized (optional): int

phone (optional): string

Response:

{
	"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

Params:

token (required): string, 64

phone_id (required): int

Response:

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

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

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

Params:

token (required): string, 64

controller_id (required): int

phone (required): string

is_recipient (optional): int

is_authorized (optional): int

Response:

{
	"error":null,
	"data":{
		"id":2,
		"controller_id":81,
		"phone":"+380503334455",
		"is_recipient":"1",
		"is_authorized":0
	}
}

Устройства

Получение списка устройств пользователя (list)

request:

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

параметры запроса: (int) controller_id , (string) token

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

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

response: параметры ответа:

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

{
"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:

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

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

(int) controller_id,

(int) device_id,

(string) token

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

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

response:

параметры ответа:

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

{
	"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"
}


Обновление информации об устройстве (update)

request:

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

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

(int) device_id,

(string) name,

(int) active,

(string) token,

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

{
	"device_id": 107,   // local device id
	"name": "New name", // new name
	"active": 1,
	"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"
}

response:

параметры ответа:

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

{
	"resuls" : "Ok"
}

Удаление устройства (delete)

request:

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

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

(int) device_id,

(string) token

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

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

response:

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

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

{
	"resuls" : "Ok"

}


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

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

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

(string) token,

(int) device_id

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

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

response:

параметры ответа: (object)

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

{
	"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:

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

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

(string) token,

(int) device_id,

(int) period

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

{
	"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae",
	"device_id": 130,
	"period": 1 // количество дней 
}

response:

параметры ответа: (array to objects)

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

[
	{
	"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: Request URL: [site]/api/device/electro-last/

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

(string) token,

(int) device_id

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

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

response:

параметры ответа: (object)

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

{
	"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:

Request URL: [site]/api/device/electro-period/

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

(string) token,

(int) device_id,

(int) period

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

{
	"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae",
	"device_id": 130,
	"period": 1 // количество дней 
}

response:

параметры ответа: (array to objects)

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

[
	{
	"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:

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

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

(string) token,

(int) device_id

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

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

response:

параметры ответа: (object)

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

{
	"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:

Request URL: [site]/api/device/other-period/

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

(string) token,

(int) device_id,

(int) period

Пример запроса: { "token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae", "device_id": 118, "period": 1 // количество дней } response:

параметры ответа: (array to objects)

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

{
	"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

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

RESPONSE:

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

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


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

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

Params:

controller_id (required): int

token (required): string, 64

device_name (optional): string, 256 code_alarm (optional): string, 64 //Название кода оповещения

code_tamper (optional): string, 64 //Название кода вмешательства

code_low_battery (optional): string, 64 //Название кода садящейся батареи

RESPONSE:

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

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


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

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

Params:

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 //Название кода оповещения

RESPONSE:

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

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


Сирена (create-siren)

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

Params:

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

RESPONSE:

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

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


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

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

Params:

controller_id (required): int

token (required): string, 64

RESPONSE:

{
	"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

Params:

controller_id (required): int

token (required): string, 64

meteo_num (required): int //Получается в списке выше

device_name (optional): string, 256

RESPONSE:

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


Водопроводный кран

Порядок добавления крана: 1) Сгенерировать коды

2) Зажать на кране кнопку, пока кран не мигнёт трижды

3) Отправить один код

4) Нажать на кране кнопку однократно

5) Зажать на кране кнопку, пока не мигнёт 4 раза

6) Отправить второй код из сгенерированных

7) Нажать на кране кнопку однократно

8) Отправить запрос на создание крана.


Генерация кодов

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

Params:

controller_id (required): int

token (required): string, 64

Response:

{
	"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

Params:

controller_id (required): int

token (required): string, 64

code (required): int // Берется из сгенерированных

Response:

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

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

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

Params:

controller_id (required): int

token (required): string, 64

code_1 (required): int

code_2 (required): int

device_name (optional): string, 256

code_open (optional): string, 64 //Название кода открытия

code_close (optional): string, 64 //Название кода закрытия

RESPONSE:

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

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

порядок добаления розетки следующий:

1) Сгенерировать коды

2) Зажать на розетке кнопку, пока она не начнет мигать

3) Отправить один код

4) Зажать на розетке кнопку, пока она не начнет мигать

5) Отправить второй код из сгенерированых

6) Отправить запрос на создание розетки


Генерация кодов (create-codes)

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

Params:

controller_id (required): int

token (required): string, 64

socket (required): любое значение.

Response:

{
	"error":null,
	"data":{
		"response":{"id":30,"masks":"[257, 258]","code_1":"8737025","code_2":"8737026"}
		}
}


Выполнение кода (execute-code)

Request URL: [site]/api/wizard/execute-code

Params:

controller_id (required): int

token (required): string, 64

code (required): int // Берется из сгенерированных

Response

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


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

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

Params:

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 //Название кода закрытия

RESPONSE:

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

Сценарии

Список сценариев (list)

request: Request URL: [site]/api/scheduler/list/

параметры запроса: (string) token

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

{
	"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"
}

response:

параметры ответа:

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

{
"0":{
	"id":9,
	"external_id":42,
	"name":"test_form_web",
	"operation":"local",
	"armed":0,
	"type":"meteo",
	"action_id":1,
	"a_controller_id":6,
	"a_device_id":112,
	"a_code_id":0,
	"a_device_external_id":38,
	"a_armed":0,
	"a_conf1":0,
	"a_conf2":0,
	"a_conf3":0,
	"a_conf4":0,
	"a_conf5":0,
	"a_conf6":0,
	"a_conf7":0,
	"a_conf8":0,
	"target_id":1,
	"t_controller_id":6,
	"t_device_id":119,
	"t_code_id":203,
	"t_device_external_id":7,
	"t_armed":0,
	"t_conf1":0,
	"t_conf2":0,
	"t_conf3":0,
	"t_conf4":0,
	"t_conf5":0,
	"t_conf6":0,
	"t_conf7":0,
	"t_conf8":0,
	"date":null,
	"repetition":"0",
	"sensor_type":"1",
	"logic_operation":"=",
	"value":"3",
	"active":1
	},
"1":{
	"id":10,
	"external_id":45
	...
	} 
}


Обновление сценариев (update)

Запрос осуществляется в 2 этапа: на первом этапе происходит при запросе на обновление Контроллера (см. "Обновление Контроллера"); на втором этапе обновляется информация о каждом действии.

request: Request URL: [site]/api/scheduler/update/

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

(int) controller_id,

(string) token

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

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

response:

параметры ответа:

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

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

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


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

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

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

(int) scheduler_id,

(string) token

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

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

response:

параметры ответа:

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

{
	"id":9,
	"external_id":42,
	"name":"test_form_web",
	"operation":"local",
	"armed":0,
	"type":"meteo",
	"action_id":1,
	"a_controller_id":6,
	"a_device_id":112,
	"a_code_id":0,
	"a_device_external_id":38,
	"a_armed":0,
	"a_conf1":0,
	"a_conf2":0,
	"a_conf3":0,
	"a_conf4":0,
	"a_conf5":0,
	"a_conf6":0,
	"a_conf7":0,
	"a_conf8":0,
	"target_id":1,
	"t_controller_id":6,
	"t_device_id":119,
	"t_code_id":203,
	"t_device_external_id":7,
	"t_armed":0,
	"t_conf1":0,
	"t_conf2":0,
	"t_conf3":0,
	"t_conf4":0,
	"t_conf5":0,
	"t_conf6":0,
	"t_conf7":0,
	"t_conf8":0,
	"date":null,
	"repetition":"0",
	"sensor_type":"1",
	"logic_operation":"=",
	"value":"3",
	"active":1
}


Логи пользователя (logs)

request:

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

параметры запроса: (string) token

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

{
	"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"
}

response: параметры ответа: (object) пример: {

}




Коды

Получение информации о коде (info)

request:

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

параметры запроса: (int) controller_id,

(int) device_id,

(int) code_id,

(string) token

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

{
	"controller_id": 6,
	"device_id": 109, 
	"code_id": 192,
	"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"

}

response: параметры ответа:

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

{
	"id":"192",
	"external_cod_id":"67",
	"device_id":"109",
	"name":"4 OFF",
	"code":"12209156",
	"protocol":"1",
	"pulse_len":null,
	"group_1":"1",
	"group_2":"0",
	"group_3":"0",
	"group_4":"0",
	"group_5":"0",
	"group_6":"0",
	"group_7":"0",
	"group_8":"0",
	"active":"1"
}


Изменение имени кода (update-code-name)

Request URL: [site]/api/device/update-code-name

Request Params:

token (required): string(64)

code_id (required): int

name (optional): string(255)

SUCCESS RESPONSE:

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

Получение кодов по типу сигнала (get-codes-by-subtype)

Request URL: [site]/api/device/get-codes-by-subtype

Request Params:

token (required): string(64)

device_subtype_id (optional): int, default 0.

Получение списка кодов (get-codes)

Request URL: [site]/api/device/get-codes

PARAMS: token (required): string 64

controller_id (required): int

SUCCESS RESPONSE:

{
	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

PARAMS:

token (required): string 64

code_id (required): int

device_id (required): int

name (optional): string 256

SUCCESS RESPONSE:

{
	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 PARAMS:

token (required): string 64

code_id (required): int

SUCCESS RESPONSE:

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

События

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

request:

Request URL: [site]/api/device/event/ параметры запроса:

(string) controller_name,

(int) device_external_id,

(int) cod_external_id,

(string) token,

(int) device_type

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

{
	"controller_name": " AS_7F26335CCF4B" ,
	"device_external_id": 19,
	"cod_external_id": 1,
	"device_type": 1,
	"token":"_zcX0_QceAqgP_seIvjG32EC3HMO34ae"
}

так как MQTT односторонний - ответа быть не может. Может быть возвращён ответ, что запрос отправлен: response:

параметры ответа:

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

{
	"result": "Ok"
}

Места

Получение списка мест (places-list)

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

Request params:

token (required): string, 64

Response:

{
	"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

Request params:

token (required): string, 64

root (optional): int, default 1

lft (optional): int, from 1 to 5 //В сумме с rgt должно быть 5

rgt (optional): int, from 1 to 5 //В сумме с lft должно быть 5

lvl (optional): int, default 0

name (optional): string, 64, default 'Simple name'

icon (optional): string, default //Допускаемые параметры -- ключи объекта выше

color (optional): string, default: '#ccc' //Любой цвет в формате HEX, решетка в начале обязательна

active (optional): int, default 1

selected (optional): int, default 0

disabled (optional): int, default 0

readonly (optional): int, default 0

visible (optional): int, default 1

collapsed (optional): int, default 0

movable_u (optional): int, default 1

movable_d (optional): int, default 1

movable_l (optional): int, default 1

movable_r (optional): int, default 1

removable (optional): int, default 1

removable_all (optional): int, default 0

inverse_text (optional): string, default 'black'


Response:

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


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

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

Request params:

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'


Response:

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

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

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

Request params:

token (required): string, 64

place_id (required): int

Response:

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



Активация подписки 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", портал должен отправить Контроллеру информацию о пользовательских подписках, как это описано в разделе «Подписки».


Ошибки

параметры ошибки:

пример:

{
	"errors":{
		"password": [
			"Incorrect username."
		]
	}
}