API全局说明
API全局说明
常用字段
- appId : 应用ID,在创建开放平台应用时,建议使用包名
- appKey : 应用秘钥,在创建开放平台应用时生成,请求
/client/config
接口做签名使用 - clientId : 客户端唯一ID
- clientKey : 客户端秘钥,用于生产请求参数中的签名字段
xc-sign
,除/client/config
接口外
规范说明
- 所有请求URL都是类REST风格, 只支持HTTP,POST请求方法, 请求参数在POST请求体中
- 所有请求参数都由
公共参数
+业务参数
共同组成,其中公共参数
不能为空
公共参数
- appId: 开放平台应用ID
String
类型,长度不超过64
个字符 - clientId: 客户端ID
String
类型,长度不超过32
个字符,如果是初次安装本地没有值,可以为空 - udid: 客户端设备唯一
String
类型 长度不超过64
个字符,android(本地生成32位uuid,并且持久化到本地保存,后续接口均使用初次生成的此udid),ios(使用系统提供的udid), - platform: 平台
String
类型 长度不超过16
个字符,可选值:phone,pad,launch,小写, - clientVersion: 客户端版本号
String
类型 长度不超过32
个字符,建议格式xx.xx.xx。 - os: 客户端系统类型
String
类型 长度不超过16
个字符,可选值:android,ios,linux, - osVersion: 客户端系统版本号
String
类型 长度不超过16
个字符 - network: 网络类型
String
类型 长度不超过16
个字符,可选值:wifi,4g,3g,2g, - brand: 处理器型号
String
类型 长度不超过16
个字符 - model: 手机型号
String
类型 长度不超过16
个字符 - screen: 分辨率
String
类型 长度不超过16
个字符,如800x600, - xc-token: 用户登录token
String
类型,登录后客户端需持久化保存到本地,当前app处于登录状态时,需上传此值,否则为空, - xc-timestamp: 时间戳
String
类型 长度不超过32
个字符 - xc-sign : 接口参数签名
String
类型 长度不超过32
个字符
签名生成
- 根据接口要求参与签名参数排序,使用字典顺序.
- 将排序后的参数键值对用&拼接,即拼接成key1=val1&key2=val2&…
- 将2步骤得到的字符串最后添加clientKey
- 将3步骤的得到的字符串做md5签名,小写,即为
xc-sign
响应数据
- 响应数据为json格式
- Content-Type: application/json,charset=utf-8
- 字符编码为:UTF-8
{
"code": 0, // 0标识成功, 非0表示失败
"msg":"未能获取用户登录信息",// 非0时此值表示提示用户的错误信息
"data": {},// 非0时有值,业务结果,如没有返回,则没有data字段
"success": true // true标识成功 false标识失败
}
错误响应码
错误响应码 | 描述 |
---|---|
0 | 正常 |
100 | 未能用户登录信息(app收到此code后,需用户登录) |
101 | 用户账号锁定 |
102 | 用户需绑定手机号(app收到此code后,需用户绑定手机号) |
110 | 缺少必填参数 |
111 | 参数错误 |
190 | 访问拒绝,被安全框架拒绝 |
199 | 接口签名xc-sign签名错误 |
-1 | 系统内部异常 |
HTTP响应码
HTTP响应码 | 描述 |
---|---|
200 | 请求成功 |
201 | 创建成功 |
202 | 更新成功 |
301 | 请求永久重定向 |
302 | 请求临时重定向 |
304 | 未更改 |
400 | 请求地址不存在或者包含不支持的参数 |
401 | 未授权,因为未成功进行身份认证 |
403 | 被禁止访问,因为没有访问特定资源的权限 |
404 | 请求的资源不存在 |
422 | 服务器理解请求,但其中包含非法参数(如包含XSS攻击风险参数) |
429 | 调用请求频率超出限额 |
500 | 服务器内部错误 |
初始化相关API
APP初始化接口(/client/config
)
请求{
"xc-sign": "cb631bf083291ede8fde447884678f23" // 签名
}
响应{
"msg": "成功",
"code": 0,
"data": {
"clientId": "fc337bc4cb474c0db96e7cfb7ceb38ab", //服务端分配的clientId
"clientKey": "jkbCYXhm6QjC3hDt", // 服务端分配的签名key,后续接口签名使用此key
"liveServerUrl": "139.129.217.3:8199", // MQTT服务长链接地址
"timestamp": 1513055858071, // 服务器当前时间戳,客户端需要与服务端时间保持一致
"uid": "15130451724483574597" // 用户唯一ID,当输入参数[xc-token]不为空时,此返回值不为空
},
"success": true
}
同步信鸽token(/client/xinge/token
)
请求{
// 信鸽token
"xingeToken": "c3f583e5eb86253844135035a7eecbe0de71b640"
}
响应{
"msg": "成功",
"code": 0,
"success": true
}
获取地址列表(district/list
)
请求
{ |
响应{
"msg": "成功",
"code": 0,
"data": {
"districtList": [
{
"adcode": "130100",
"level": "2",
"latitude": "38.042228",
"name": "石家庄市",
"longitude": "114.514793"
}
]
},
"success": true
}
登录&用户相关
获取验证码 (/sms/send
)
请求{
"phone": "18322695283", // 手机号
"code":"7b1388d0acfa4ea58811c61ee9762075", // 短信验证码凭证,初次调用时没有该字段,再次获取短信时,需要带上次code值
}
响应{
"msg": "成功",
"code": 0,
"data": {
// 返回短信验证码凭证,后续接口需要
"code": "7b1388d0acfa4ea58811c61ee9762075"
},
"success": true
}
验证码登录 (/user/login
)
请求{
"phone": "18322695283", // 手机号
"verifycode": "4621" ,// 用户输入的验证码
"code": "7b1388d0acfa4ea58811c61ee9762075" // 短信成功时的凭证码
}
响应{
"msg": "成功",
"code": 0,
"data": {
"nickname": "183xxxx5283", // 昵称
"phone": "183xxxx5283", // 手机号
"portrait": "",
"token": "xxxxx",
"uid": "15130451724483574597"
},
"success": true
}
微信登录 (/user/wx/login
)
请求{
"code": "081CKTAL1AqtB41LfbDL1Nn3BL1CKTAY" // 微信授权code
}
响应{ // 未绑定手机
"msg": "成功",
"code": 0,
"data": {
"openId": "oDEoVxJhXkOUL3Sb921DUoo4e_xg"
},
"success": true
}
或
{ // 绑定过手机号 |
微信关联手机号 (user/wx/bindPhone
)
请求{
"code": "399599e3959342189526672da857c1b7",
"phone": "18322695283",
"verifycode": "2919", // 短信验证码
"openId":"" // 微信登录openId
}
响应{
"msg": "成功",
"code": 0,
"data": {
"nickname": "183xxxx5283",
"phone": "183xxxx5283",
"portrait": "",
"token": "xxxxx",
"uid": "15130451724483574597"
},
"success": true
}
获取用户信息 (/user/info
)
请求{
// 除公共参数外无其它参数
}
响应{
"msg": "成功",
"code": 0,
"data": {
"user": {
"nickname": "137xxxx4152",
"phone": "137xxxx4152",
"portrait": "",// 头像
"uid": "10345678901234567890"
}
},
"success": true
}
修改昵称 (/user/modifyNickname
)
请求{
"nickname":"" // string,昵称,参与签名
}
响应{
"msg": "成功",
"code": 0,
"success": true
}
修改头像 (/user/modifyPortrait
)
请求{
"imageType":"", // String 参与签名 图片类型,暂时只支持png, jpg
"image":"", // String 参与签名 客户端需把照片做base64,转成字符串
}
响应{
"msg": "成功",
"code": 0,
"success": true
}
提交用户反馈 (/user/feedback
)
请求{
"content": "提交用户反馈", // 反馈内容
}
响应{
"msg": "成功",
"code": 0,
"success": true
}
用户消息列表 (/user/messages
)
请求{
"page":"", // int 参与签名 当前页,必须大于0
"pageSize":"" // int 参与签名 每页展示条数
}
响应{
"code": 0,
"msg": "xxx",
"data": {
"messages": {
// int 消息总条数
"totalItem": "",
// int 每页显示条数
"pageSize": "",
// int 当前页码
"page": "",
"items": [{
// String 消息内容
"content": "",
// String 消息主题
"subject ": "",
// Int 跳转类型, 1 h5, 2 native
"directType ": "",
// String 跳转url
"directUrl ": "",
// String 消息发送时间,格式: yyyy-MM-dd HH:mm:ss
"datetime ": ""
}]
}
}
}
检查用户是否存在 (/user/exist
)
请求{
"phone":"" // String 参与签名 手机号
}
响应{
code: 0,
msg: xxx,
data: {
"nickname": "",
// String 用户昵称
"portrait": "",
// String 用户头像,可能为空
"uid": "",
// String 用户唯一ID,如果不存在,不返回uid,nickname,portrait字段
}
}
获取用户设备列表 (/user/owner/devices
)
请求{
// 除公共参数外,无其它参数
}
响应{
code : 0,
msg : xxx,
data : {
"deviceId":"xxx",
"deviceName":"xxx",
"productImage":"xxx",
"productId":"xx"
}
}
产品相关
获取产品品类(/product/category
)
请求{
// 除公共参数外,无其它参数
}
响应{
code : 0,
msg : xx,
data {
categoryId:xx, // 产品分类id
categoryName : x, // 产品名称
// 产品code码,其中zigbee_device表示zigbee子设备
// zigbee_gw表示zigbee网关设备,wifi_device表示wifi设备
categoryCode: xx
}
}
获取产品列表(/product/list
)
请求{
"categoryId":""//int 是 分类ID
}
响应{
code : 0,
msg : xx,
data [{
productId: xx //产品id
categoryId: xx //产品分类id
productName: xxx //产品名称
productBrand: xxx //产品品牌
productImage: xxx //产品图标
partner:gubei //合作方产品,非必填
moduleId:xxx //非必填
network:wifi //设备联网方式:wifi或rj45
deviceType:wifi //设备类型:wifi或zigbee
isGw:0 //是否是网关设备;1:是,0:否
}]
}
获取产品帮助(/product/help
)
请求{
"productId":"" // Int产品ID
}
响应{
code : 0,
msg : xx,
data {
"intro":"", // string, 产品说明
"help":"", // string, 帮助文档
"image":"", // string, 图片
"xConfigKey":"" // string, 配网加密key,64位长度
}
}
快照相关
获取设备最新快照(/snapshot/get
)
请求{
"deviceId":"" // string,设备id,参与签名
}
{ |
授权相关
获取已授权应用列表(/authorize/list
)
请求{
// 除公共参数外,无其它参数
}
响应{
"msg": "成功",
"code": 0,
"data": {
"authoredAppList": [
{
"appId": "xxx",
"name": "rokid",
"logo": "http://xxx.jpeg",
"permissionList": [
"获取您的小葱智能设备列表",
"控制您的小葱智能设备"
]
}
]
},
"success": true
}
取消应用授权(/authorize/cancel
)
请求{
"cancelAppId":""// String,取消授权的AppId,参与签名
}
响应{
"msg": "成功",
"code": 0,
"data": {
"authoredAppList": [
{
"appId": "xxx",
"name": "rokid",
"logo": "http://xxx.jpeg",
"permissionList": [
"获取您的小葱智能设备列表",
"控制您的小葱智能设备"
]
}
]
},
"success": true
}
二维码相关
二维码授权(/authorize/qrcode/oauth
)
请求{
"code":"" // 二维码标识
}
响应
{ |
二维码登录(/user/qrcode/login
)
请求{
"code":"" // 二维码标识
}
响应
{ |
获取登录结果(/user/qrcode/login/result
)
请求{
"code":"" // 二维码标识
}
响应
{ |
{ |
{ |
获取授权信息(/authorize/qrcode/info
)
请求{
"code":"" // 二维码标识
}
响应
{ |
获取登录二维码(/authorize/qrcode/info
)
请求{
// 除公共参数外,无其它参数
}
响应
{ |
二维码验证解析(/authorize/qrcode/info
)
请求{
"qrcode":"" // 二维码内容,string,参与签名
}
响应
{ |
设备基础操作相关
获取已绑定设备列表 (/device/list
)
请求{
// 除公共参数外,无其它参数
}
响应{
"msg": "成功",
"code": 0,
"data": {
"devices": [{
"deviceId": "1499248274665070",
"deviceMac": "",
"deviceName": "插座",
"deviceSn": "",
"isAdmin": 1,
"partner": "gubei",
"productId": 375,
"productImage": "", // 设备图片
"status": 0,
"top": 0
}]
},
"success": true
}
获取绑定设备列表 (/device/bind
)
请求{
"deviceId": "1504424752160200" // 设备ID
}
- 响应
{
"msg": "成功",
"code": 0,
"success": true
}
获取绑定设备列表 (/device/unbind
)
请求{
"deviceId": "3672952207002565",
"productId": "381783"
}
响应{
"msg": "成功",
"code": 0,
"success": true
}
设备置顶 (/device/top
)
请求{
"deviceId":"", // String 参与签名 设备ID
}
响应{
"msg": "成功",
"code": 0,
"success": true
}
设备取消置顶 (/device/top/cancel
)
请求{
"deviceId":"", // String 参与签名 设备ID
}
响应{
"msg": "成功",
"code": 0,
"success": true
}
设备订阅 (/device/subscribe
)
请求{
"devices":"", // String 参与签名 要订阅的设备ID 当要订阅多个设备时,格式如下: 111,222,333 使用英文逗号相连
}
响应{
"msg": "成功",
"code": 0,
"success": true
}
设备取消订阅 (/device/unSubscribe
)
请求{
"devices":"", // String 参与签名 要取消订阅的设备ID 当要取消订阅多个设备时,格式如下: 111,222,333 使用英文逗号相连
}
响应{
"msg": "成功",
"code": 0,
"success": true
}
设备订阅全部 (/device/subscribe/all
)
请求{
// 除公共参数外没有其他参数
}
响应{
"msg": "成功",
"code": 0,
"success": true
}
设备重命名 (/device/rename
)
请求{
"deviceId":"", // String 参与签名 设备ID
"deviceName":"", // String 参与签名 设备名称
}
响应{
"msg": "成功",
"code": 0,
"success": true
}
设备详情 (/device/detail
)
请求{
"deviceId":"", // String 参与签名 设备ID
}
响应{
code : 0,
msg : xxx,
data : {
device:{
"deviceMac":"", // String 设备mac地址
"top":"", // int 参与签名否置顶
"deviceId":"", // String 设备唯一ID
"update":"", // int 参与签名否需要更新, 1 有更新,0 没有更新
"productId":"", // int 产品ID
"deviceVersion":"", // String 设备版本号
"deviceName":"", // String 设备名称
}
}
}
设备参数列表 (/parameter/list
)
请求{
"deviceId":"", // String 参与签名 设备ID
}
响应{
code : 0
msg : xxx
data:{
switch1 : {
"parameterValue":"", // String 参数值
"parameterKey":"", // String 参数命令key,当发生控制命令时,需要此参数
"parameterName":"", // String 参数名称,展示
"deviceParameterId":"", // int 设备参数ID,当修改参数名称时需要
}
}
}
设备参数重命名 (/parameter/rename
)
请求{
"parameterName":"", // String 参与签名 新的参数名称
"deviceParameterId":"", // int 参与签名 要修改的设备参数ID
}
响应{
"msg": "成功",
"code": 0,
"success": true
}
设备升级接口 (/device/upgrade
)
请求{
"deviceId":"", // String 参与签名 设备ID
}
响应{
"msg": "成功",
"code": 0,
"success": true
}
获取绑定的空气检测设备列表 (/device/list/airDetect
)
请求{
// 除了公共参数无其它参数
}
响应{
"msg": "成功",
"code": 0,
"data":{
"deviceId":"设备id",
"deviceName":"设备名称",
"productImage":"产品图片"
}
}
获取设备名称 (/device/getName
)
请求{
"deviceId":"" // 设备id
}
响应{
code: 0,
msg: "",
data: {
deviceName: '测试设备'
}
}
获取设备最新快照记录 (/device/snapshots
)
请求{
"deviceId":"", // string 用户设备id
"pageSize":"", // int 要查询的条数,不能为负数,最大50条
"queryId":"", // string 查询ID,当需要翻页查询时,要传入上一次返回的queryId,如果不传,默认从第一条数据开始
}
响应{
"list": [
{
switch1: 1 t: xxx //消息发送的时间戳
}],
"queryId": xxxx
}
获取设备绑定信息 (/device/getBindInfo
)
请求{
"deviceId":"", // string 用户设备id
}
响应{
"code": 0,
"msg": "xxx",
"data": {
"isBind": 0,
//0 未绑定,1 已绑定
"deviceName": xxx,
//设备名称
"isAdmin": 1,
// 0 被别人绑定,1 当前用户绑定
"phone": "151****7717",
// 当isAdmin=0时,返回绑定人手机信息,当isAdmin=1时,为空
"status": 0,
//设备在线状态, 0 离线, 1 在线
"snapshot": {} // 设备快照信息,当status=1时有值
}
}
语音控制 (/device/command
)
请求{
"provide":"", // string 语义分析提供商,可选值: xunfei (科大讯飞)
"text":"", // string 语义分析后的json
}
响应{
"msg": "成功",
"code": 0,
"success": true
}
网关子设备列表(/device/list/gw/child
)
请求{
"gatewayId":"" // string,网关设备id,参与签名
}
响应{
code:xx,
msg:"xx",
data:{
devices:[{
"deviceId":"",
"deviceName":"",
"productId":"",
"productImage":"",
"isAdmin":"",
"snapshot":"",
"top":"",
"partner":"",
"status":""
}]
}
}
网关设备列表(/device/list/gw
)
请求{
"productId":"" // string,子设备产品ID,参与签名
}
响应{
code:xx,
msg:"xx",
data:{
devices:[{
"deviceId":"",
"deviceName":"",
"status":""
}]
}
}
电量历史记录查询(/electricity/list
)
请求{
"deviceId":"", // string 否 设备ID
"type":"", // string 否 分钟:minute,小时:hour,天:day,星期:week,月:month,季度:quarter,年:year
"pageSize":"", // string 参与签名 可以为空,默认返回10条数据
"queryId":"", // string 参与签名 需要查询上一个时间段的数据时,需要
}
响应{
"msg": "成功",
"code": 0,
"data": {
"list": [{
"data": "0",
"time": "20171030"
},
{
"data": "2533",
"time": "20171031"
}],
"queryId": "150919036145965520171030"
},
"success": true
}
电量统计接口(/electricity/count
)
请求{
"deviceId":"", // string 参与签名 设备ID,如果为空,默认返回用户下的所有电量统计设备
"type":"", // string 否 查询类型,minute:按分钟查询,hour : 按小时查询,day:按天查询,week:按星期查询month:按月份查询,year:按年查询,total:累计总量
"date":"", // string 参与签名 要查询的时间,格式如:2017-10-23 10:10:23。如果为空,默认使用服务器当前时间
}
响应{
"msg": "成功",
"code": 0,
"data": {
"total": "11908",
"max": "12354""list": [{
"electricity": "1941",
"deviceId": "xxxx",
"productImage": "xxxxx",
"deviceName": "新主卧空调"
}]
},
"success": true
}
设备互联操作相关
设备互联列表(/relation/list
)
功能: 展示所有已配置的设备互联
请求{
// 除公共参数外无其它参数
}
响应{
"msg": "成功",
"code": 0,
"data": {
"triggers": [
{
"triggerCondition": "eq",
"relateList": [
{
"relateName": "智能水净化器-工作状态-未制水",
"transactionId": "1501595021600406",
"relateIcon": "http://img.ixiaocong.net:81/product/a5682624603f493894ab1ea5899ca440.png",
"productParameterId": "106",
"deviceTriggerId": "40",
"deviceTriggerRelateId": "121",
"relateType": "device",
"relateValue": "0"
}
],
"deviceTriggerId": "40",
"triggerName": "wifi3-颜色-xx",
"triggerIcon": "http://img.ixiaocong.net:81/product/69ca9ae8d9a0457da50b57201f585599.gif",
"threshold": "13",
"productParameterId": "383",
"deviceId": "1501224865727676",
"status": "1"
}]
},
"success": true
}
添加设备互联(/relation/add
)
请求{
"triggerName":"", //互联名称
"deviceId":"", //触发设备ID
"productParameterId":"", //触发参数ID
"parameterType":"", //参数类型
"parameterKey":"", //参数key
"triggerCondition":"", //触发条件[gt,ge,lt,le,eq]
"threshold":"", //阈值,number型为用户输入,其它类型为从服务端下发值中选择
"triggerIcon":"", //互联icon(触发设备icon)
"status":"", //互联状态(0:停用,1:启用)
"relateList":[{ //关联设备列表
"relateName":"", //关联名称
"relateType":"", //关联操作类型[device,scene,pause]
"transactionId":"", //关联操作设备ID或者场景ID
"productParameterId":"", //关联操作设备参数ID
"parameterType":"", //触发参数类型
"parameterKey":"", //触发参数key
"relateValue":"", //关联值 device:命令值; pause:暂停命令时间
"relateIcon":"" //关联icon
}]
}
响应{
"msg": "成功",
"code": 0,
"success": true
}
触发设备列表(/relation/trigger/device/list
)
功能: 获取设备互联的触发设备列表(用户管理的设备,过滤掉了分享的设备)
请求{
// 除公共参数外无其它参数
}
响应{
"msg": "成功",
"code": 0,
"data": {
"devices": [
{
"productImage": "http://img.ixiaocong.net:81/product/a5682624603f493894ab1ea5899ca440.png",
"deviceId": "1501595021600406",
"deviceName": "智能水净化器"
}
{
"productImage": "http://img.ixiaocong.net:81/images/a62770abfc3146da8d403c4f34eecfd1.png",
"deviceId": "1502977084339888",
"deviceName": "一路智能开关"
}
]
},
"success": true
}
关联设备列表(/relation/relate/device/list
)
请求{
// 除公共参数外无其它参数
}
响应{
"msg": "成功",
"code": 0,
"data": {
"devices": [
{
"productImage": "http://img.ixiaocong.net:81/product/a5682624603f493894ab1ea5899ca440.png",
"deviceId": "1501595021600406",
"deviceName": "智能水净化器"
}]
},
"success": true
}
设备参数列表(/relation/device/parameter/list
)
请求{
"deviceId":"",//string,设备id,参与签名
"excludes":"",//string,非必填,过滤参数类型 report:过滤纯上报参数;control:过滤纯控制参数;control_report:过滤控制且上报参数;关联设备列表中的设备获取参数列表时,需传report,过滤纯上报参数
}
响应{
"msg": "成功",
"code": 0,
"data": {
"parameters": [
{
"parameterType": "enum",
"parameterKey": "state",
"productParameterId": "106",
"parameterName": "工作状态",
"parameterValue": "[{"val":"0","desc":"未制水"},{"val":"1","desc":"制水"}]"
},
{
"parameterType": "boolean",
"parameterKey": "power",
"productParameterId": "107",
"parameterName": "开关",
"parameterValue": "[{"val":"0","desc":"关机"},{"val":"1","desc":"开机"}]"
}
]
},
"success": true
}
设备互联启用/停用(/relation/updateStatus
)
请求{
"deviceTriggerId":"", //string,关联操作id
"status":"" //string, 设备状态, 0:停用 1:启用
}
响应{
"msg": "成功",
"code": 0,
"success": true
}
修改触发设备(/relation/tigger/device/update
)
请求{
"deviceTriggerId": "", // String, 否触发互联配置ID
"triggerName": "", // String, 否触发互联配置名称
"deviceId": "", // String, 否触发设备ID
"productParameterId": "", // String, 否触发参数ID
"triggerCondition": "", // String, 否触发条件[gt,ge,lt,le,eq]
"threshold": "", // String, 否触发阈值
"triggerIcon": "", // String, 否互联icon
"status": "", // String, 否互联状态;1:启用,0:停用
"parameterType": "", // String, 否参数类型
"parameterKey": "", // String, 否参数命令key
}
响应{
"msg": "成功",
"code": 0,
"success": true
}
修改关联操作(/relation/relate/device/update
)
请求{
"deviceTriggerRelateId": "", // String, 触发互联配置ID
"deviceTriggerId ": "", // String, 触发互联配置ID
"relateType": "", // String, 关联类型, pause:暂停; device:发送设备命令; scene:触发场景
"transactionId": "", // String, 关联设备or场景ID
"productParameterId": "", // String, 触发参数ID
"relateName": "", // String, 关联名称(设备名称或场景名称)
"relateValue": "", // String, relateType为device时,此值为发送的命令值, relateType为pause时,此值为暂停的时间,单位为秒
"relateIcon": "", // String, 关联icon(设备或场景icon)
"parameterType": "", // String, 参数类型
"parameterKey": "" // String, 参数命令key
}
响应{
"msg": "成功",
"code": 0,
"success": true
}
删除关联操作(/relation/relate/device/delete
)
请求{
"deviceTriggerRelateId":"" // string,关联操作id,参与签名
}
响应{
"msg": "成功",
"code": 0,
"success": true
}
删除设备互联(/relation/delete
)
请求{
"deviceTriggerId" : "" // String,设备互联ID,参与签名
}
响应{
"msg": "成功",
"code": 0,
"success": true
}
获取场景列表&互联详情(/relation/sceneDetail
)
请求{
"deviceId":"", // string 设备ID
"productParameterId":"", // string 参数ID
"triggerCondition":"", // string eq
"threshold":"" // string val
}
响应{
"msg": "成功",
"code": 0,
"success": true,
"data":{}
}
场景相关
用户场景列表 (/scene/list
)
请求{
"sceneId": " int 场景ID",
"sceneIntro": " String 场景介绍",
"sceneIcon": " String 场景图标",
"sceneName": " String 场景名称",
"status": " int 激活状态 1 已激活,0未激活 未激活状态,点击无法使用",
"custom": " int 参与签名否参与签名用户添加的自定义场景 1 参与签名,0 系统默认"
}
响应{
code: 0,
msg: xxx,
data: {
scenes: [{
sceneId: xxx,
sceneName: xxx,
sceneIcon: xxx,
sceneIntro: xxx,
custom: 1,
status: 1
}]
}
}
获取配置的命令列表 (/scene/commands
)
请求{
"sceneId":"", // int 参与签名 场景ID
}
响应{
code: 0,
msg: xxx,
data: {
commands: [{
commandId: xxx,
deviceId: xxx,
deviceName: xxx,
productId: xxx,
productImage: xxxx,
productParameterId: xxxx,
parameterKey: xxxx,
parameterName: xxxx,
parameterValue: xxxx
}]
}
}
场景新增(/scene/add
)
请求{
"sceneName":"", // String 参与签名 场景name,长度2-12
"commands":[{ // json 参与签名 场景配置的命令列表
deviceId:xxx,
deviceName:xxx,
productId:xxx,
productImage:xxxx,
productParameterId:xxxx,
parameterKey:xxxx,
parameterName:xxxx,
parameterValue:xxxx
}]
}
响应{
code : 0,
msg : xxx,
data:{
userSceneId : xxx
}
}
获取支持场景设置的设备列表(/scene/devices
)
请求{
// 除公共参数外无其它参数
}
响应{
code : 0,
msg : xxx
data:{
devices : [{
"productImage":"", // String 产品图片
"deviceId":"", // String 设备ID
"productId":"", // int 产品ID
"deviceName":"", // String 设备名称
}]
}
}
获取设备支持场景配置的参数列表(/scene/parameters
)
请求{
"deviceId":"" // String 参与签名 设备ID
}
响应{
code : 0,
msg : xxx
data:{
parameters : [{
"parameterValue":"", // String 参数值
"parameterType":"", // String 参数类型,可选值: boolean, enum, number, string
"parameterKey":"", // String 参数key
"productParameterId":"", // int 产品参数ID
"parameterName":"", // String 参数名称
"showType":"" // 1:列表 2:滑竿
}]
}
}
删除场景(/scene/delete
)
请求{
"sceneId":"", // int 参与签名 场景ID
}
响应{
code : 0,
msg : xxx
data:{}
}
触发启动场景(/scene/start
)
请求{
"sceneId":"", // int 参与签名 场景ID
}
响应{
code : 0
msg : xxx
data:{}
}
场景修改名称(/scene/rename
)
请求{
"sceneName":"", // string 参与签名 场景名称
"sceneId":"", // int 参与签名 场景ID
}
响应{
code : 0
msg : xxx
data:{}
}
指令新增&修改指令(/scene/command/update
)
请求{
"sceneName":"", //string 场景名称
"parameterValue":"", // String 参与签名 参数值
"parameterType":"", // String 参与签名 参数类型
"deviceId":"", // String 参与签名 设备ID
"parameterKey":"", // String 参与签名 参数key
"productParameterId":"", // int 参与签名 产品参数ID
"sceneId":"", // int 参与签名 场景ID
"commandId":"", // int 参与签名 指令ID,如果参与签名新增,为空
"productId":"", // int 参与签名 产品ID
"parameterName":"", // String 参与签名 参数名称
}
响应{
code : 0
msg : xxx
data:{}
}
删除指令(/scene/command/delete
)
请求{
"commandId":"", // int 参与签名 指令ID
}
响应{
code : 0,
msg : "xxx",
data:{}
}
第三方设备相关
设备激活绑定(/partner/device/active
)
请求{
"partner":"", // string,参与签名必填,第三方平台名称,如gubei
"productId":"", // string,必填,小葱平台productId
"pdid":"", // string,非必填,子设备的网关设备ID
"did":"", // string,参与签名必填,第三方平台的设备ID
"mac":"", // string,非必填,设备mac
"pid":"", // string,参与签名必填,第三方平台的productId
"name":"", // string,非必填,产品名称
"type":"", // string,非必填,设备类型
"lock":"", // string,非必填,参与签名锁定
"newconfig":"", // string,非必填,参与签名参与签名新配置的设备
"password":"", // string,非必填,古北一代设备控制密码
"id":"", // string,必填,设备key的id
"key":"", // string,必填,设备key
"roomtype":"", // string,非必填,非必填
"state":"", // string,非必填,网络状态
"extend":"", // string,非必填,拓展信息
"lanaddr":"" // string,非必填,设备局域网IP地址
}
响应{
code : 0,
msg : xx,
data {
deviceId:"" // 小葱平台设备ID
}
}
设备解绑(/partner/device/unbind
)
请求{
"deviceId":"", // String,小葱平台设备ID,参与签名
"productId":"", // String,小葱平台productId,参与签名
"partner":"" // String,第三方平台名称
}
响应{
"msg": "成功",
"code": 0,
"success": true
}
设备控制(/partner/device/control
)
请求{
"deviceId":"", // String,小葱平台设备ID,参与签名
"command":"", // map格式,设备控制命令,
"partner":"" // String,第三方平台名称
}
响应{
code : 0,
msg : xx,
data {
snapshot:"xxxxxx" //设备control后的最新快照
}
}
设备快照获取(/partner/device/snapshot
)
请求{
"deviceId":"", // String,小葱平台设备ID,参与签名
"partner":"" // String,第三方平台名称
}
响应{
code : 0,
"msg": "成功",
data {
snapshot:xxxxxx
}
}
MQTT相关
MQTT失败消息上报(/live/log/error
)
请求{
"topic":"" // 消息的topic
"message":"" // 消息体
}
响应{
"msg": "成功",
"code": 0,
"success": true
}
MQTT消息上报(/live/log/send
)
请求{
"topic":"" // 消息的topic
"message":"" // 消息体
}
响应{
"msg": "成功",
"code": 0,
"success": true
}
红外设备相关
红外命令列表接口(/infrared/code/list
)
请求{
"deviceId":"" // string,设备id,参与签名
}
响应{
"msg": "成功",
"code": 0,
"data": {
"codeList": [
{
"code": 1,
"codeName": "开电视",
"infraredCodeId": 2
}
],
"enabledCodes": [
2,
3
]
},
"success": true
}
新增红外码(/infrared/code/add
)
请求{
"deviceId":"",// string,红外设备id,参与签名
"code":"",// string,红外码,参与签名
"codeName":"",// string,红外命令描述,参与签名
}
响应{
"msg": "成功",
"code": 0,
"success": true
}
红外码描述修改(/infrared/code/update
)
请求{
"infraredCodeId":"xxxx" // string,红外码主键,参与签名
"codeName":"xxxx" // string,红外命令描述,参与签名
}
响应{
"msg": "成功",
"code": 0,
"success": true
}
删除红外码(/infrared/code/delete
)
请求{
"infraredCodeId":"xxxx" // 红外码主键, 参与签名
}
响应{
"msg": "成功",
"code": 0,
"success": true
}