设备信息
下发命令控制设备
通过对URL的访问来对已经开放的设备进行控制,比如下发命令控制设备,或者设置设备配置等。用户传参数subid表明对子设备控制,不传参数subid表明对主设备控制。支持下发二进制命令。
请求URL:
cur "https://HOST/open/v3/set/api"
-d "mac=5c:cf:7f:c1:0b:fd&subid=xxxxxx&uid=x&sign=xxxxxx&tt=xx&key=xxx&value=xxx"
返回的 JSON 数据:
{
"code": 0,
"msg":"xxxxxxxxxxx"
}
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
mac | String | 设备的Mac | 如:5c:cf:7f:c1:0b:fd或者IMEI, 主设备的mac或者IMEI |
是 |
subid | String | 子设备id | 户传参数subid表明对子设备控制, 不传参数subid表明对主设备控制 |
否 |
key | String | 功能点的变量名 | 功能点参数名 | 是 |
value | Sting | 数据点的值 | 功能点对应的值。如果数据点是二进制属性, 接口会将数据转成byte数组,然后再base64编码。 数据要求必须是偶数位且十六进制格式, 数据前面不能带0x, 传入数据格式如:01020f3f。 |
是 |
uid | Int | 用户id | 参考相关参数章节 | 是 |
tt | Int | 时间戳 | 参考相关参数章节 | 是 |
sign | String | 用户签名 | 参考相关参数章节 | 是 |
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
code | Int | 返回码 | 查看Api返回码 | 是 |
msg | String | 返回信息 | 如果code为0,则msg为空; 如果code不为0,则msg返回的为相关错误信息 |
是 |
查询设备是否在线
通过Http Post请求查询指定设备是否在线。Post请求方式,参数以x-www-form-urlencoded方式放在body里。用户传参数subid表明查询子设备在线状态,不传参数subid表明查询主设备在线状态。
请求URL:
curl "https://HOST/open/v1/api/mac/online"
-d "mac=5c:cf:7f:c1:0b:fd&subid=xxxxxx&uid=x&sign=xxxxxx&tt=xx"
返回的 JSON 数据:
{
"code": 0,
"msg":"xxxxxxxxxxx",
"data": "true"
}
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
mac | String | 设备的Mac | 如: 5c:cf:7f:c1:0b:fd或者IMEI, 主设备的mac或者IMEI |
是 |
subid | String | 子设备id | 用户传参数subid表明查询子设备在线状态, 不传参数subid表明查询主设备在线状态 |
否 |
uid | Int | 用户id | 参考相关参数章节 | 是 |
tt | Int | 时间戳 | 参考相关参数章节 | 是 |
sign | String | 用户签名 | 参考相关参数章节 | 是 |
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
code | Int | 返回码 | 查看Api返回码 | 是 |
data | String | 返回值 | 在线返回true,不在线返回false,出错返回空 | 是 |
msg | String | 返回信息 | 如果code为0,则msg为空;如果code不为0, 则msg返回的为相关错误信息 |
是 |
查询设备是否OTA升级
通过Http Post请求查询指定设备是否需要ota升级。Post请求方式,参数以x-www-form-urlencoded方式放在body里。该版本不支持子设备。
请求URL:
curl "https://HOST/open/api/check/otaupdate"
-d "mac=xx:xx:xx:xx:xx:xx&uid=x&sign=xxxxxx&tt=xx"
返回的 JSON 数据:
{
"code": 0,
"msg":"xxxxxxxxxxx",
"data": "{\"description\":\"xxxxxx\",\"mcuVersion\":\"1.0.0\"}"
}
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
mac | String | 设备的Mac | 如: 5c:cf:7f:c1:0b:fd | 是 |
uid | Int | 用户id | 参考相关参数章节 | 是 |
tt | Int | 时间戳 | 参考相关参数章节 | 是 |
sign | String | 用户签名 | 参考相关参数章节 | 是 |
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
code | Int | 返回码 | 查看Api返回码 | 是 |
data | String | 返回值 | 需要升级返回最新版本以及描述, 不需要升级返回空,出错返回空。Json格式的字符串 |
是 |
msg | String | 返回信息 | 如果code为0,则msg为空; 如果code不为0,则msg返回的为相关错误信息 |
是 |
设备初始化
通过Http Post请求对指定设备进行初始化注册。Post请求方式,参数以x-www-form-urlencoded方式放在body里。用户传参数subid表明对子设备初始化,不传参数subid表明对主设备初始化。20190425新增逻辑,设备初始化的时候需要检查设备ota升级的情况,如果有升级就去数据库修改升级状态。
请求URL:
curl "https://HOST/open/v1/api/initdevice"
-d "mac=5c:cf:7f:c1:0b:fd&subid=xxxxxx&uid=x&sign=xxxxxx&tt=xx&productId=xxxxxx& otaOwner=xxxxx&otaVersion=xxxxx"
返回的 JSON 数据:
{
"code": 0,
"msg":"xxxxxxxxxxx"
}
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
mac | String | 设备的Mac | 如: 5c:cf:7f:c1:0b:fd或者IMEI,主设备的mac或者IMEI | 是 |
subid | String | 子设备id | 用户传参数subid表明对子设备初始化, 不传参数subid表明对主设备初始化 |
否 |
uid | Int | 用户id | 参考相关参数章节 | 是 |
tt | Int | 时间戳 | 参考相关参数章节 | 是 |
sign | String | 用户签名 | 参考相关参数章节 | 是 |
productId | String | 该设备的产品id | 初始化设备的产品id | 是 |
otaOwner | int | Ota升级类型 | 1:mcu升级,2:wifi升级3,蓝牙升级 | 否 |
otaVersion | String | Ota版本 | 否 |
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
code | Int | 返回码 | 查看Api返回码 | 是 |
msg | String | 返回信息 | 如果code为0,则msg为空; 如果code不为0,则msg返回的为相关错误信息 |
是 |
iotId | String | 设备iotid | 是 | |
iotToken | String | 设备iottoken | 是 | |
subIotId | String | 子设备iotid | 否 |
批量下发命令控制设备
通过Http Post请求对批量设备进行控制。Post请求方式,参数以x-www-form-urlencoded方式放在body里。可以对同一个设备下发不同的命令也可以对不同的设备批量下发命令。每次只下发data数组里一条指令,轮询发送。设备一次只能接收一条指令。最多20组指令限制。该版本不支持子设备。
请求URL:
curl "https://HOST/open/batch/set/api"
-d "uid=x&sign=xxxxxx&tt=xx&data=[{\"mac\":\"xxx\",\"key\":\"xxx\",\"value\":\"xxx\"},{\"mac\":\"xxx\",\"key\":\"xxx\",\"value\":\"xxx\"}]"
返回的 JSON 数据:
{
"code": 0,
"msg":"xxxxxxxxxxx"
}
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
uid | Int | 用户id | 参考相关参数章节 | 是 |
tt | Int | 时间戳 | 参考相关参数章节 | 是 |
sign | String | 用户签名 | 参考相关参数章节 | 是 |
data | json | 设置的数据 | 消息目前支持字符串格式,最多20组指令 | 是 |
mac | String | 设备的Mac | 如: 5c:cf:7f:c1:0b:fd | 是 |
key | String | 数据点的变量名 | 设备所属产品的数据点属性 | 是 |
value | Sting | 数据点的值 | 设备所属产品的数据点的值 | 是 |
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
code | Int | 返回码 | 查看Api返回码 | 是 |
msg | String | 返回信息 | 如果code为0,则msg为空; 如果code不为0,则msg返回的为相关错误信息 |
是 |
获取设备列表
通过对URL的访问实现获取用户的设备列表包括被分享的设备。该版本支持子设备,返回列表增加子设备相关数据。
请求URL:
curl "https://HOST/open/v2/device/listinfo"
-d "uid=x&sign=xxxxxx&tt=xx&userId=xxx&userToken=xxx"
返回的 JSON 数据:
{
"code": 0,
"msg":"xxxxxxxxxxx",
"data": "{\"listinfo\":[
{\"flag\":xxx,\"deviceMac\":\"xxx\",\"displayName\":\"xxx\",\"iotId\":\"xxx\",\"iotToken\":\"xxx\",\"location\":\"xxx\",\"isOnline\":xxx,\"productId\":xxx,\"shared\":\"xxx\",\"fUserId\":x,\"moduleVersion\":\"xxx\",\"gid\":x,\"groupName\":\"xxx\",\"subsetId\":\"xxx\",\"subsetType\":\"xxx\",\"subsetName\":\"xxx\",\"subsetTradeName\":\"xxx\",\"rId\":x,\"roomName\":\"xxx\",\"thirdId\":\"xxx\",\"thirdType\":x,\"thirdTradeName\":\"xxx\",\"subIotId\":\"xxx\",\"imgUrl\":\"xxx\" },
{\"flag\":xxx,\"deviceMac\":\"xxx\",\"displayName\":\"xxx\",\"iotId\":\"xxx\",\"iotToken\":\"xxx\",\"location\":\"xxx\",\"isOnline\":xxx,\"productId\":xxx,\"shared\":\"xxx\",\"fUserId\":x,\"moduleVersion\":\"xxx\",\"gid\":x,\"groupName\":\"xxx\",\"subsetId\":\"xxx\",\"subsetType\":\"xxx\",\"subsetName\":\"xxx\",\"subsetTradeName\":\"xxx\",\"rId\":x,\"roomName\":\"xxx\",\"thirdId\":\"xxx\",\"thirdType\":x,\"thirdTradeName\":\"xxx\",\"subIotId\":\"xxx\",\"imgUrl\":\"xxx\" }
]}"
}
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
uid | Int | 用户id | 参考相关参数章节 | 是 |
tt | Int | 时间戳 | 参考相关参数章节 | 是 |
sign | String | 用户签名 | 参考相关参数章节 | 是 |
userId | String | 用户手机号 | 是 | |
userToken | String | 用户密码 | 是 |
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
code | Int | 返回码 | 查看Api返回码 | 是 |
msg | String | 返回信息 | 如果code为0,则msg为空; 如果code不为0,则msg返 回的为相关错误信息 |
是 |
data | String | 返回listinfo的 ArrayJson字符串 |
数据格式如下,Json格式的字符串 | 是 |
flag | Int | 区分是分享设备还 是自己绑定的 设备 |
0 绑定设备 1 分享设备 | 是 |
deviceMac | String | 主设备的mac | 是 | |
displayName | String | 主设备的显示 名称 |
移动端SDK可以修改名称 | 是 |
iotId | String | 主设备的iotId | 是 | |
iotToken | String | 主设备的token | 是 | |
location | String | 设备的地理 位置 |
是 | |
isOnline | Boolean | 设备是否在线 | 主设备就表示主设备的在线 状态,若是子设备就表示子 设备在线状态 |
是 |
productId | Int | 产品的id | 是 | |
shared | String | 分享者的名字 或者电话 |
被分享的设备该字段为分享 者的姓名或者电话;绑定的 设备该字段为空串 |
是 |
fUserId | Int | 分享者的id | 被分享的设备该字段为分享 者的id;绑定的设备该字段 为0 |
是 |
module Version |
String | 模组版本 | 子设备就是子设备版本号、 主设备就是主设备版本号 |
是 |
gid | Int | 分组id | 设备分组的id | 是 |
groupName | String | 分组名称 | 是 | |
subsetId | String | 子设备的id | 厂商自身定义子设备的id | 是 |
subsetType | String | 子设备类型 | 厂商自身定义子设备的类型 | 是 |
subsetName | String | 子设备名称 | 厂商自身定义子设备的默认 名称,通过移动端SDK也可 以修改名称 |
是 |
subsetTrade Name |
Boolean | 子设备厂商 名称 |
拓展字段,默认为空 | 是 |
rId | Int | 设备房间id | 是 | |
roomName | String | 设备房间 名字 |
是 | |
thirdId | String | 第三方id | 拓展字段,默认为空 | 是 |
thirdType | Int | 第三方类型 | 拓展字段,默认为0 | 是 |
thirdTrade Name |
String | 第三方厂商 名称 |
拓展字段,默认为空 | 是 |
subIotId | String | 子设备的iotid | 是 | |
imgUrl | String | 设备的图片 | 子设备就是子设备图片, 主设备就是主设备图片 |
是 |
获取单个设备详细信息
通过对URL的访问实现获取用户单个设备的详细信息。目前获取设备详情只针对主设备,子设备没有相关信息。
请求URL:
curl "https://HOST/open/v2/device/singleinfo"
-d "uid=x&sign=xxxxxx&tt=xx&userId=xxx&userToken=xxx&mac=5c:cf:7f:c1:0b:fd"
返回的 JSON 数据:
{
"code": 0,
"msg":"xxxxxxxxxxx",
"data": "{\"singleinfo\":
{\"dataPointNum\":xxx,\"deviceIp\":\"xxx\",\"deviceMac\":\"xxx\",\"deviceType\":\"xxx\",\"displayName\":\"xxx\",\"iotId\":\"xxx\",\"ipLocation\":xxx,\"isLinkage\":xxx,\"isOnline\":xxx,\"wifiType\":x}
}"
}
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
uid | Int | 用户id | 参考相关参数章节 | 是 |
tt | Int | 时间戳 | 参考相关参数章节 | 是 |
sign | String | 用户签名 | 参考相关参数章节 | 是 |
userId | String | 用户唯一标识id | 通过接口13获取 | 是 |
userToken | String | 用户唯一标识token | 通过接口13获取 | 是 |
mac | String | 设备的Mac | 如: 5c:cf:7f:c1:0b:fd | 是 |
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
code | Int | 返回码 | 查看Api返回码 | 是 |
msg | String | 返回信息 | 如果code为0,则msg为空; 如果code不为0,则msg返回 的为相关错误信息 |
是 |
data | String | 返回singleinfo的 Json字符串 |
数据格式如下,Json格式的字符串 | 是 |
dataPointNum | int | 设备的数据点数目 | 是 | |
deviceIp | String | 设备的ip地址 | 是 | |
deviceMac | String | 设备的MAC地址 | 是 | |
deviceType | String | 设备类型 | 是 | |
ipLocation | String | 设备的经纬度 | 是 | |
iotId | String | 设备的id | 是 | |
displayName | String | 设备的显示名称 | 是 | |
isLinkage | Boolean | 设备是否联动 | 是 | |
isOnline | Boolean | 设备是否在线 | 是 | |
wifiType | String | 设备的wifi芯片 | 是 |
查询设备的产品id
通过Http Post请求查询指定设备产品id。Post请求方式,参数以x-www-form-urlencoded方式放在body里。查询设备的产品id只针对主设备而言,子设备是跟随主设备的产品。
请求URL:
curl "https://HOST/open/api/mac/product"
-d "mac=xx:xx:xx:xx:xx:xx&uid=x&sign=xxxxxx&tt=xx"
返回的 JSON 数据:
{
"code": 0,
"msg":"xxxxxxxxxxx",
"data": "xxxxxx"
}
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
mac | String | 设备的Mac | 如: 5c:cf:7f:c1:0b:fd | 是 |
uid | Int | 用户id | 参考相关参数章节 | 是 |
tt | Int | 时间戳 | 参考相关参数章节 | 是 |
sign | String | 用户签名 | 参考相关参数章节 | 是 |
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
code | Int | 返回码 | 查看Api返回码 | 是 |
data | String | 返回值 | 无产品信息返回空,有产品信息就返回产品id | 是 |
msg | String | 返回信息 | 如果code为0,则msg为空; 如果code不为0,则msg返回的为相关错误信息 |
是 |
查询产品的授权设备数量
通过Http Post请求查询该公司旗下的产品授权设备数量以及该公司剩余授权数。Post请求方式,参数以x-www-form-urlencoded方式放在body里。
请求URL:
curl "https://HOST/open/license/query"
-d "uid=x&sign=xxxxxx&tt=xx"
返回的 JSON 数据:
{
"code": 0,
"msg":"xxxxxxxxxxx",
"data": "{\"total\":1000,
\"granted\":700,
\"remain\":200,
\"product\":[{\"productId\":xxx,\"deviceCnt\":xxx,\"productName\":\"xxx\"},
{\"productId\":xxx,\"deviceCnt\":xxx,\"productName\":\"xxx\"}]
}"
}
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
uid | Int | 用户id | 参考相关参数章节 | 是 |
tt | Int | 时间戳 | 参考相关参数章节 | 是 |
sign | String | 用户签名 | 参考相关参数章节 | 是 |
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
code | Int | 返回码 | 查看Api返回码 | 是 |
msg | String | 返回信息 | 如果code为0,则msg为空; 如果code不为0,则msg返 回的为相关错误信息 |
是 |
data | String | 返回值 | Json格式的字符串 | 是 |
total | Int | 公司的总license数 | 公司在青莲云平台购买的总 授权数 |
是 |
granted | Int | 公司已经授权所有 产品的license数 |
公司旗下所有产品的已授权数 | 是 |
remain | Int | 公司还剩余的license数 | 公司剩余可用的授权数 | 是 |
product | List | 公司旗下各个产品 的license数 |
查询公司旗下各个产品的授权数 | 是 |
productId | Int | 产品id | 公司旗下产品id | 是 |
deviceCnt | Int | 产品授权数 | 公司旗下该产品的授权数 | 是 |
productName | String | 产品名称 | 公司旗下产品名称 | 是 |
同一设备批量下发命令
通过对URL的访问来对已经开放的设备进行控制,比如下发命令控制设备,或者设置设备配置等。对同一个设备下发不同的命令,每次下发data数组里全部指令。和13接口有区别,设备端一次性接收多条指令而不是一条一条接收。下发指令最多20条限制。用户传参数subid表明对子设备控制,不传参数subid表明对主设备控制。
请求URL:
curl "https://HOST/open/v2/all/set/api"
-d "mac=5c:cf:7f:c1:0b:fd&subid=xxxxxx&uid=x&sign=xxxxxx&tt=xx&data=[{\"key\":\"xxx\",\"value\":\"xxx\"},{\"key\":\"xxx\",\"value\":\"xxx\"}]"
返回的 JSON 数据:
{
"code": 0,
"msg":"xxxxxxxxxxx"
}
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
mac | String | 设备的Mac | 如: 5c:cf:7f:c1:0b:fd或者IMEI,主设备的mac或者IMEI | 是 |
subid | String | 子设备id | 户传参数subid表明对子设备控制, 不传参数subid表明对主设备控制 |
否 |
data | json | 设置的数据 | 消息目前支持字符串格式,最多20组数据 | 是 |
key | String | 功能点的变量名 | 功能点参数名 | 是 |
value | Sting | 数据点的值 | 功能点对应的值 | 是 |
uid | Int | 用户id | 参考相关参数章节 | 是 |
tt | Int | 时间戳 | 参考相关参数章节 | 是 |
sign | String | 用户签名 | 参考相关参数章节 | 是 |
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
code | Int | 返回码 | 查看Api返回码 | 是 |
msg | String | 返回信息 | 如果code为0,则msg为空; 如果code不为0,则msg返回的为相关错误信息 |
是 |
获取设备在线时间
通过Http Post请求对指定设备的数据进行获取。Post请求方式,参数以x-www-form-urlencoded方式放在body里。查询主设备指定某一天的上下线行为,从而计算出设备在线时长。
请求URL:
curl "https://HOST/open/v2/get/device/online/time"
-d "mac=5c:cf:7f:c1:0b:fd&date=2019-06-28&uid=x&sign=xxxxxx&tt=xx"
返回的 JSON 数据:
{
"code": 0,
"msg":"xxxxxxxxxxx",
"data":"{\"data\":[{\"event\":0,\"tt\":\"2019-06-27 00:03:08\"},{\"event\":1,\"tt\":\"2019-06-27 00:06:08\"},{\"event\":0,\"tt\":\"2019-06-27 00:06:37\"},{\"event\":1,\"tt\":\"2019-06-27 00:09:30\"},{\"event\":0,\"tt\":\"2019-06-27 00:10:04\"},{\"event\":1,\"tt\":\"2019-06-27 00:13:05\"}],\"mac\":\"10:10:10:10:10:28\"}"
}
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
mac | String | 设备的Mac | 如: 5c:cf:7f:c1:0b:fd或者IMEI,主设备的mac或者IMEI | 是 |
date | String | 查询具体某一天 | 格式类型为2019-06-29 | 是 |
uid | Int | 用户id | 参考相关参数章节 | 是 |
tt | Int | 时间戳 | 参考相关参数章节 | 是 |
sign | String | 用户签名 | 参考相关参数章节 | 是 |
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
code | Int | 返回码 | 查看Api返回码 | 是 |
data | String | 获取的数据 | Json格式的字符串 | 是 |
msg | String | 返回信息 | 如果code为0,则msg为空;如果code不为0, 则msg返回的为相关错误信息 |
是 |
data | List | JSON里面的data | 具体的数据,是一个对象的数组,如果没有数据 则为空数组,其中 event表示行为,0表示上线 1表示离线; tt表示具体的时间, 如例子中2019-06-27 00:03:08 设备上线, 2019-06-27 00:06:08 设备离线, 其中在线时长3分钟。 |
是 |
mac | String | JSON里面的mac | 回显查询的设备mac | 是 |