设备信息

下发命令控制设备

通过对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"

}

请求参数:

参数名类型说明备注必需
macString设备的Mac如:5c:cf:7f:c1:0b:fd或者IMEI,
主设备的mac或者IMEI
是
subidString子设备id户传参数subid表明对子设备控制,
不传参数subid表明对主设备控制
否
keyString功能点的变量名功能点参数名是
valueSting数据点的值功能点对应的值。如果数据点是二进制属性,
接口会将数据转成byte数组,然后再base64编码。
数据要求必须是偶数位且十六进制格式,
数据前面不能带0x,
传入数据格式如:01020f3f。
是
uidInt用户id参考相关参数章节是
ttInt时间戳参考相关参数章节是
signString用户签名参考相关参数章节是

返回参数:

参数名类型说明备注必需
codeInt返回码查看Api返回码是
msgString返回信息如果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"

}

请求参数:

参数名类型说明备注必需
macString设备的Mac如: 5c:cf:7f:c1:0b:fd或者IMEI,
主设备的mac或者IMEI
是
subidString子设备id用户传参数subid表明查询子设备在线状态,
不传参数subid表明查询主设备在线状态
否
uidInt用户id参考相关参数章节是
ttInt时间戳参考相关参数章节是
signString用户签名参考相关参数章节是

返回参数:

参数名类型说明备注必需
codeInt返回码查看Api返回码是
dataString返回值在线返回true,不在线返回false,出错返回空是
msgString返回信息如果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\"}"

}

请求参数:

参数名类型说明备注必需
macString设备的Mac如: 5c:cf:7f:c1:0b:fd是
uidInt用户id参考相关参数章节是
ttInt时间戳参考相关参数章节是
signString用户签名参考相关参数章节是

返回参数:

参数名类型说明备注必需
codeInt返回码查看Api返回码是
dataString返回值需要升级返回最新版本以及描述,
不需要升级返回空,出错返回空。Json格式的字符串
是
msgString返回信息如果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"

}

请求参数:

参数名类型说明备注必需
macString设备的Mac如: 5c:cf:7f:c1:0b:fd或者IMEI,主设备的mac或者IMEI是
subidString子设备id用户传参数subid表明对子设备初始化,
不传参数subid表明对主设备初始化
否
uidInt用户id参考相关参数章节是
ttInt时间戳参考相关参数章节是
signString用户签名参考相关参数章节是
productIdString该设备的产品id初始化设备的产品id是
otaOwnerintOta升级类型1:mcu升级,2:wifi升级3,蓝牙升级否
otaVersionStringOta版本否

返回参数:

参数名类型说明备注必需
codeInt返回码查看Api返回码是
msgString返回信息如果code为0,则msg为空;
如果code不为0,则msg返回的为相关错误信息
是
iotIdString设备iotid是
iotTokenString设备iottoken是
subIotIdString子设备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"

}

请求参数:

参数名类型说明备注必需
uidInt用户id参考相关参数章节是
ttInt时间戳参考相关参数章节是
signString用户签名参考相关参数章节是
datajson设置的数据消息目前支持字符串格式,最多20组指令是
macString设备的Mac如: 5c:cf:7f:c1:0b:fd是
keyString数据点的变量名设备所属产品的数据点属性是
valueSting数据点的值设备所属产品的数据点的值是

返回参数:

参数名类型说明备注必需
codeInt返回码查看Api返回码是
msgString返回信息如果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\" }

]}"

}

请求参数:

参数名类型说明备注必需
uidInt用户id参考相关参数章节是
ttInt时间戳参考相关参数章节是
signString用户签名参考相关参数章节是
userIdString用户手机号是
userTokenString用户密码是

返回参数:

参数名类型说明备注必需
codeInt返回码查看Api返回码是
msgString返回信息如果code为0,则msg为空;
如果code不为0,则msg返
回的为相关错误信息
是
dataString返回listinfo的
ArrayJson字符串
数据格式如下,Json格式的字符串是
flagInt区分是分享设备还
是自己绑定的
设备
0 绑定设备 1 分享设备是
deviceMacString主设备的mac是
displayNameString主设备的显示
名称
移动端SDK可以修改名称是
iotIdString主设备的iotId是
iotTokenString主设备的token是
locationString设备的地理
位置
是
isOnlineBoolean设备是否在线主设备就表示主设备的在线
状态,若是子设备就表示子
设备在线状态
是
productIdInt产品的id是
sharedString分享者的名字
或者电话
被分享的设备该字段为分享
者的姓名或者电话;绑定的
设备该字段为空串
是
fUserIdInt分享者的id被分享的设备该字段为分享
者的id;绑定的设备该字段
为0
是
module
Version
String模组版本子设备就是子设备版本号、
主设备就是主设备版本号
是
gidInt分组id设备分组的id是
groupNameString分组名称是
subsetIdString子设备的id厂商自身定义子设备的id是
subsetTypeString子设备类型厂商自身定义子设备的类型是
subsetNameString子设备名称厂商自身定义子设备的默认
名称,通过移动端SDK也可
以修改名称
是
subsetTrade
Name
Boolean子设备厂商
名称
拓展字段,默认为空是
rIdInt设备房间id是
roomNameString设备房间
名字
是
thirdIdString第三方id拓展字段,默认为空是
thirdTypeInt第三方类型拓展字段,默认为0是
thirdTrade
Name
String第三方厂商
名称
拓展字段,默认为空是
subIotIdString子设备的iotid是
imgUrlString设备的图片子设备就是子设备图片,
主设备就是主设备图片
是

获取单个设备详细信息

通过对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}

}"

}

请求参数:

参数名类型说明备注必需
uidInt用户id参考相关参数章节是
ttInt时间戳参考相关参数章节是
signString用户签名参考相关参数章节是
userIdString用户唯一标识id通过接口13获取是
userTokenString用户唯一标识token通过接口13获取是
macString设备的Mac如: 5c:cf:7f:c1:0b:fd是

返回参数:

参数名类型说明备注必需
codeInt返回码查看Api返回码是
msgString返回信息如果code为0,则msg为空;
如果code不为0,则msg返回
的为相关错误信息
是
dataString返回singleinfo的
Json字符串
数据格式如下,Json格式的字符串是
dataPointNumint设备的数据点数目是
deviceIpString设备的ip地址是
deviceMacString设备的MAC地址是
deviceTypeString设备类型是
ipLocationString设备的经纬度是
iotIdString设备的id是
displayNameString设备的显示名称是
isLinkageBoolean设备是否联动是
isOnlineBoolean设备是否在线是
wifiTypeString设备的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"

}

请求参数:

参数名类型说明备注必需
macString设备的Mac如: 5c:cf:7f:c1:0b:fd是
uidInt用户id参考相关参数章节是
ttInt时间戳参考相关参数章节是
signString用户签名参考相关参数章节是

返回参数:

参数名类型说明备注必需
codeInt返回码查看Api返回码是
dataString返回值无产品信息返回空,有产品信息就返回产品id是
msgString返回信息如果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\"}]

}"

}

请求参数:

参数名类型说明备注必需
uidInt用户id参考相关参数章节是
ttInt时间戳参考相关参数章节是
signString用户签名参考相关参数章节是

返回参数:

参数名类型说明备注必需
codeInt返回码查看Api返回码是
msgString返回信息如果code为0,则msg为空;
如果code不为0,则msg返
回的为相关错误信息
是
dataString返回值Json格式的字符串是
totalInt公司的总license数公司在青莲云平台购买的总
授权数
是
grantedInt公司已经授权所有
产品的license数
公司旗下所有产品的已授权数是
remainInt公司还剩余的license数公司剩余可用的授权数是
productList公司旗下各个产品
的license数
查询公司旗下各个产品的授权数是
productIdInt产品id公司旗下产品id是
deviceCntInt产品授权数公司旗下该产品的授权数是
productNameString产品名称公司旗下产品名称是

同一设备批量下发命令

通过对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"

}

请求参数:

参数名类型说明备注必需
macString设备的Mac如: 5c:cf:7f:c1:0b:fd或者IMEI,主设备的mac或者IMEI是
subidString子设备id户传参数subid表明对子设备控制,
不传参数subid表明对主设备控制
否
datajson设置的数据消息目前支持字符串格式,最多20组数据是
keyString功能点的变量名功能点参数名是
valueSting数据点的值功能点对应的值是
uidInt用户id参考相关参数章节是
ttInt时间戳参考相关参数章节是
signString用户签名参考相关参数章节是

返回参数:

参数名类型说明备注必需
codeInt返回码查看Api返回码是
msgString返回信息如果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\"}"

}

请求参数:

参数名类型说明备注必需
macString设备的Mac如: 5c:cf:7f:c1:0b:fd或者IMEI,主设备的mac或者IMEI是
dateString查询具体某一天格式类型为2019-06-29是
uidInt用户id参考相关参数章节是
ttInt时间戳参考相关参数章节是
signString用户签名参考相关参数章节是

返回参数:

参数名类型说明备注必需
codeInt返回码查看Api返回码是
dataString获取的数据Json格式的字符串是
msgString返回信息如果code为0,则msg为空;如果code不为0,
则msg返回的为相关错误信息
是
dataListJSON里面的data具体的数据,是一个对象的数组,如果没有数据
则为空数组,其中 event表示行为,0表示上线
1表示离线; tt表示具体的时间,
如例子中2019-06-27 00:03:08 设备上线,
2019-06-27 00:06:08 设备离线,
其中在线时长3分钟。
是
macStringJSON里面的mac回显查询的设备mac是