API全局说明

API全局说明

常用字段

规范说明

公共参数

签名生成

  1. 根据接口要求参与签名参数排序,使用字典顺序.
  2. 将排序后的参数键值对用&拼接,即拼接成key1=val1&key2=val2&…
  3. 将2步骤得到的字符串最后添加clientKey
  4. 将3步骤的得到的字符串做md5签名,小写,即为xc-sign

响应数据

错误响应码

错误响应码 描述
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)

请求

{
"padcode":"" //父级地址编码,string,参与签名
}

响应

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

{ // 绑定过手机号
"msg": "成功",
"code": 0,
"data": {
"uid": "xxxx", //用户唯一ID
"nickname" : "xxx", //用户昵称
"phone" : "xxxxx", //用户手机号
"portrail" : "xxxxx", //用户头像,可能为空
"token" : "xxxxx" //用户登录token,客户端需持久保存到本地
},
"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,参与签名
}

{
code: 0,
msg: "",
data: {
status: 1,
//在线状态,1 在线,0 离线
snapshot: { //快照
"switch": 1
}
}
}

授权相关

获取已授权应用列表(/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":"" // 二维码标识
}

响应

{
"msg": "成功",
"code": 0,
"data": {},
"success": true
}

二维码登录(/user/qrcode/login)

请求

{
"code":"" // 二维码标识
}

响应

{
"msg": "成功",
"code": 0,
"data": {
"status": "100"
},
"success": true
}

获取登录结果(/user/qrcode/login/result)

请求

{
"code":"" // 二维码标识
}

响应

{
"msg": "成功", // 用户扫码登录成功返回结果
"code": 0,
"data": {
"uid": "28345678901234567890",
"userPhone": "150xxxx2787",
"nickname": "什么什么名字啊",
"portrait": "",
"token": "xxxxxxxxx",
"status": "100"
},
"success": true
}
{
"msg": "成功", // 用户未扫码登录返回结果
"code": 0,
"data": {
"status": "101"
},
"success": true
}
{
"msg": "成功", // 二维码过期返回结果
"code": 0,
"data": {
"status": "0"
},
"success": true
}

获取授权信息(/authorize/qrcode/info)

请求

{
"code":"" // 二维码标识
}

响应

{
"msg": "成功",
"code": 0,
"data": {
"status": "1",
"appName": "1111",
"permissionList": [
"获取您的小葱智能设备列表",
"控制您的小葱智能设备"
],
"logo": "http://xxx.gif"
},
"success": true
}

获取登录二维码(/authorize/qrcode/info)

请求

{
// 除公共参数外,无其它参数
}

响应

{
"msg": "成功",
"code": 0,
"data": {
"code": "54d978668a434bc59c90541364ac9840",
"qrcode": "https://oauth.ixiaocong.com/qr/login/54d978668a434bc59c90541364ac9840"
},
"success": true
}

二维码验证解析(/authorize/qrcode/info)

请求

{
"qrcode":"" // 二维码内容,string,参与签名
}

响应

{
"msg": "成功",
"code": 0,
"data": {
"code": "54d978668a434bc59c90541364ac9840",
"type": "login",
"status": "1"
},
"success": true
}

设备基础操作相关

获取已绑定设备列表 (/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
}

获取绑定设备列表 (/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
}