Skip to content

Latest commit

 

History

History
841 lines (787 loc) · 21.1 KB

File metadata and controls

841 lines (787 loc) · 21.1 KB

云端接口参考

URL 中的 lid 可从kit后台申请

1 接口校验和安全方式方式

1.1 云端身份校验接口(使用博联app sdk配网忽略)

POST https://[lid]opensmarthome.ibroadlink.com/openproxy/v2/identity?license=(license)

请求:
{
    "directive": {
        "header": {
            "namespace": "DNA.CloudIdentity",
	    "name":"Identity",
	    "interfaceVersion":"2",
	    "messageId":"1bd5d003-31b9-476f-ad03-71d471922820"
	},
        "payload": {
            "device": {
                "deviceInfo": "xxxxx",//设备返回的信息
                "challenge":"xxxxxxx"
            }
        }
    }
}

响应:
{
    "context": {},
    "event": {
        "header": {
            "namespace": "DNA.CloudIdentity",
            "name": "Response",
            "interfaceVersion": "2",
            "messageId": "5f8a426e-01e4-4cc9-8b79-65f8bd0fd8a4"
        },
        "payload": {
          "device": {
              "deviceInfo": "xxxxxxxx",
              "challenge":"",
              "signature":""
          }
        }
      }
}

其中challenge为设备和激活云端生成的加密签名,只有设备可以解析。

1.2 设备身份声明接口(使用博联app sdk配网忽略)

POST https://[lid]opensmarthome.ibroadlink.com/openproxy/v2/identity?license=(license)

请求:
{
    "directive": {
        "header": {
            "namespace": "DNA.DeviceIdentity",
            "name": "Identity",
            "interfaceVersion": "2",
            "messageId": "1bd5d003-31b9-476f-ad03-71d471922820"
        },
        "payload": {
            "device": {
                "deviceInfo": "xxxxxxxx",
                "signature":""
            }
        }
    }
}

响应:
{
    "context": {},
    "event": {
        "header": {
            "namespace": "DNA.DeviceIdentity",
            "name": "Response",
            "interfaceVersion": "2",
            "messageId": "5f8a426e-01e4-4cc9-8b79-65f8bd0fd8a4"
        },
        "payload": {
          "device": {
              "deviceInfo": "xxxxxxxx",
              "shareKey":""
          }
        }
      }
}

2 云端接口

2.1 设备注册接口

POST https://[lid]opensmarthome.ibroadlink.com//openproxy/v2/openregister?license=(license)

请求:
{
    "directive": {
        "header": {
            "namespace": "DNA.Register",
            "name": "Register",
            "interfaceVersion": "2",
            "messageId": "1bd5d003-31b9-476f-ad03-71d471922820"
        },
        "payload": {
            "device": {
              "devicePairedInfo": {
                "mac":"",
                "did":"",
                "pid":"",
                "cookie":base64(cookieStu) 具体见透传字段//为空返回设备描述//不为空返回设备落库信息
              }      
            }
        }
    }
}

响应:
{
    "context": {},
    "event": {
        "header": {
            "namespace": "DNA.Register",
            "name": "Response",
            "interfaceVersion": "2",
            "messageId": "5f8a426e-01e4-4cc9-8b79-65f8bd0fd8a4"
        },
        "endpoints": [
            {
                "endpointId": "appliance-001",//设备的,一般为sdk设备发现的did
                "friendlyName": "卧室灯",//设备的默认名称
                "description": "由BroadLink生产的灯",
                "manufacturerName": "Sample Manufacturer",
                "icon":"产品图片URL",
                "brand":"品牌",
                "displayCategories": [
                    "LIGHT"
                ],
                "devicePairedInfo":{},
                "cookie": {
                    "extraDetail1": "某些设备可能会用到这个cookie,需要在控制时原样返回",
                    "extraDetail2": "某些设备可能会用到这个cookie,需要在控制时原样返回",
                    "extraDetail3": "某些设备可能会用到这个cookie,需要在控制时原样返回",
                    "extraDetail4": "某些设备可能会用到这个cookie,需要在控制时原样返回"
                },
                "capabilities": [
                    {
                        "type": "DNAInterface",
                        "interface": "DNA.PowerControl",
                        "version": "2",
                        "properties": {
                            "supported": [
                                {
                                    "name": "powerState"
                                }
                            ],
                            "proactivelyReported": true,
                            "retrievable": true
                        },
                       "actions": {
                           "supported": [
                            {
                                 "name": "ChangePowerState"
                            }
                           ]
                       }
                    }
                ]
            }
        ]
    }
}

2.2 设备控制接口

控制数据中包含几个部分,分别说明如下:

设备的唯一标识:"endpointId": "Some-Device-ID",//注册返回。对于没有注册流程的第三方,也可直接使用sdk返回的devicePairedInfo中的did;

设备的属性:"devicePairedInfo":{},//注册时返回。对于没有注册流程的第三方,也可由sdk返回中得到;

控制字段:由namespace,name和payload确定;

消息唯一标识:messageId。

POST https://[lid]opensmarthome.ibroadlink.com/openproxy/v2/opencontrol?license=(license)
请求:
{
  "directive": {
    "header": {
       "namespace": "DNA.PowerControl",//控制能力
       "name": "ChangePowerState",//控制动作
       "interfaceVersion": "2",//目前版本标识
       "messageId": "1bd5d003-31b9-476f-ad03-71d471922820"//请求id,返回信息中会保持一致。
    },
    "endpoint": {
      ”devicePairedInfo": {
        "did":"",      //设备的唯一ID
        "pid":"",      //设备产品类型ID
        "mac":"",      //设备MAC地址
        "cookie":""    //第三方云端存储的设备信息cookie
      }
      "endpointId": "Some-Device-ID",//注册返回
      "cookie": {}//注册返回的cookie,第三方云端透传
    },
    "payload": {
        "powerState":"OFF"//控制属性和属性值
    }
  }
}
响应:
{
  "context": {//控制参数
    "properties": [ {
       "namespace": "DNA.PowerControl",
       "name": "powerState",
       "value": “ON”,
       "timeOfSample": "2017-02-03T16:20:50.52Z",
    } ]
  },
  "event": {
    "header": {
       "namespace": "DNA.PowerControl",
       "name": "Response",//成功返回标识
       "interfaceVersion": "2",
       "messageId": "5f8a426e-01e4-4cc9-8b79-65f8bd0fd8a4",
    },
    "endpoint": {
      "endpointId": "appliance-001"//控制设备
    },
    "payload": {
    }
  }
}

2.2.1 设备自定义功能控制

POST https://[lid]opensmarthome.ibroadlink.com/openproxy/v2/opencontrol?license=(license)
请求:
{
  "directive": {
    "header": {
       "namespace": "DNA.CustomFunctionControl",
       "name": "IrcodeFunction",
       "interfaceVersion": "2",
       "messageId": "1bd5d003-31b9-476f-ad03-71d471922820"
    },
    "endpoint": {
      ”devicePairedInfo": {
        "did":"",      //设备的唯一ID
        "pid":"",      //设备产品类型ID
        "mac":"",      //设备MAC地址
        "cookie":""    //第三方云端存储的设备信息cookie
        }
      "endpointId": "Some-Device-ID",//注册返回
      "cookie": {}//注册返回的cookie,第三方云端透传
    },
    "payload": {
        "function":"up"//对应红外码的function
    }
  }
}
响应:
{
  "context": {},
  "event": {
    "header": {
       "namespace": "DNA.CustomFunctionControl",
       "name": "IrcodeFunction",//成功返回标识
       "interfaceVersion": "2",
       "messageId": "5f8a426e-01e4-4cc9-8b79-65f8bd0fd8a4",
    },
    "endpoint": {
      "endpointId": "appliance-001"//控制设备
    },
    "payload": {
    }
  }
}

2.3 设备在线状态查询接口

每次最多查询32个设备的在线状态

POST https://[lid]opensmarthome.ibroadlink.com/openproxy/v2/querystate?license=(license)
请求:
{
  "directive": {
    "header": {
       "namespace": "DNA.QueryState",
       "name": "QueryState",
       "interfaceVersion": "2",
       "messageId": "1bd5d003-31b9-476f-ad03-71d471922820"
    },
    "endpoints": [{
      ”devicePairedInfo": {
             "did":"",      //设备的唯一ID
             "pid":"",      //设备产品类型ID
             "mac":"",      //设备MAC地址
             "cookie":""    //设备Pair获取Cookie
           },
      "endpointId": "Some-Device-ID",
      "cookie": {}
    }],
    "payload": {
    }
  }
}
响应:
{
  "context": {
    "properties": []
  },
  "event": {
    "header": {
       "namespace": "DNA.QueryState",
       "name": "Response",
       "interfaceVersion": "2",
       "messageId": "5f8a426e-01e4-4cc9-8b79-65f8bd0fd8a4",
    },
    "endpoints": [{
      "endpointId": "appliance-001",
      "state": "online"
    }],
    "payload": {
    }
  }
}

2.4 设备状态查询接口

POST https://[lid]opensmarthome.ibroadlink.com/openproxy/v2/opencontrol?license=(license)
请求:
{
  "directive": {
    "header": {
       "namespace": "DNA",
       "name": "ReportState",
       "interfaceVersion": "2",
       "messageId": "1bd5d003-31b9-476f-ad03-71d471922820"
    },
    "endpoint": {
      ”devicePairedInfo": {
             "did":"",      //设备的唯一ID
             "pid":"",      //设备产品类型ID
             "mac":"",      //设备MAC地址
             "cookie":""    //设备Pair获取Cookie
           },
      "endpointId": "Some-Device-ID",
      "cookie": {}
    },
    "payload": {
    }
  }
}
响应:
{
  "context": {
"properties": [
        {
           "namespace": "DNA",
           "name": "powerState",
           "value":{
                "value":"ON",
                "scale":"",
                "attributeName":"开关"
                "scaleName":"",
                "valueName":"打开"
           },
           "timeOfSample": "2017-02-03T16:20:50.52Z",
        }
    ]

  },
  "event": {
    "header": {
       "namespace": "DNA.QueryState",
       "name": "Response",
       "interfaceVersion": "2",
       "messageId": "5f8a426e-01e4-4cc9-8b79-65f8bd0fd8a4",
    },
    "endpoint": {
      "endpointId": "appliance-001",
    },
    "payload": {
    }
  }
}

2.5 数据上报接口

POST https://(YOURSERVER)/(YOURURL)
上报结构:
{
    "context":{

    },
    "event":{
        "header":{
            "namespace":"DNA",
            "name":"ChangeReport",
            "payloadVersion":"3",
            "messageId":"t4fd-4lykcmmciliwujxg"
        },
        "endpoint":{
            "endpointId":"00000000000000000000780f77747894"
        },
        "payload":{
            "change":{
                "cause":{
                    "type":"PHYSICAL_INTERACTION"
                },
                "properties":[
                    {
                        "namespace":"DNA.EndpointHealth",
                        "name":"connectivity",
                        "value":{
                            "value":"OK"
                        },
                        "timeOfSample":"2018-06-11T16:59:36.52Z",
                        "uncertaintyInMilliseconds":0
                    }
                ]
            }
        }
    }
}

2.6 透传红码接口

POST https://[lid]opensmarthome.ibroadlink.com/openproxy/v2/freecontrol?license=(license)
请求:
{
  "directive": {
    "header": {
       "namespace": "DNA.FreeControl",
       "name": "DnaCodeControl",
       "interfaceVersion": "2",
       "messageId": "1bd5d003-31b9-476f-ad03-71d471922820"
    },
    "endpoint": {
      ”devicePairedInfo":devicePairedInfo,
      "endpointId": "Some-Device-ID",
      "cookie": {}
    },
    "payload": {
        "dnaCode":"b445sdfafad112224sdf"
    }
  }
}
响应:
{
  "context": {//控制参数
    "properties": [ {
       "namespace": "DNA.FreeControl",
       "name": "DnaCodeControl",
       "value": "b445sdfafad112224sdf",//控制指令
       "timeOfSample": "2017-02-03T16:20:50.52Z",
    } ]
  },
  "event": {
    "header": {
       "namespace": "DNA.FreeControl",
       "name": "Response",//成功返回标识
       "interfaceVersion": "2",
       "messageId": "5f8a426e-01e4-4cc9-8b79-65f8bd0fd8a4",
    },
    "endpoint": {
      "endpointId": "appliance-001"//控制设备
    },
    "payload": {
    }
  }
}

2.7 RM学习功能接口

2.7.1 RM进入学习功能接口

POST https://[lid]opensmarthome.ibroadlink.com/openproxy/v2/learncode?license=(license)
请求:
{
  "directive": {
    "header": {
       "namespace": "DNA.RMControl",
       "name": "StudyIrCode",
       "interfaceVersion": "2",
       "messageId": "1bd5d003-31b9-476f-ad03-71d471922820"
    },
    "endpoint": {
      ”devicePairedInfo":devicePairedInfo,
      "endpointId": "Some-Device-ID",
      "cookie": {}
    },
    "payload": {
    }
  }
}
响应:
{
  "context": {
  },
  "event": {
    "header": {
       "namespace": "DNA.RMControl",
       "name": "Response",//成功返回标识
       "interfaceVersion": "2",
       "messageId": "5f8a426e-01e4-4cc9-8b79-65f8bd0fd8a4",
    },
    "endpoint": {
      "endpointId": "appliance-001"//控制设备
    },
    "payload": {
    }
  }
}

2.7.2 RM查询红码学习结果

POST https://[lid]opensmarthome.ibroadlink.com/openproxy/v2/learncode?license=(license)
请求:
{
  "directive": {
    "header": {
       "namespace": "DNA.RMControl",
       "name": "GetIrCode",
       "interfaceVersion": "2",
       "messageId": "1bd5d003-31b9-476f-ad03-71d471922820"
    },
    "endpoint": {
      ”devicePairedInfo":devicePairedInfo,
      "endpointId": "Some-Device-ID",
      "cookie": {}
    },
    "payload": {
    }
  }
}

响应:
{
    "context":{
    },
    "event":{
        "header":{
            "namespace":"DNA.RMControl",
            "messageId":"30d2cd1a-ce4f-4542-aa5e-04bd0a6492d5",//新生成
            "name":"GetIrCode",
            "interfaceVersion":"2"
        },
        "endpoint":{
            "endpointId":"appliance-001"
        },
        "payload":{
            "code":"2600ac000700059e0001158911121211"
        }
    }
}

2.8 设备管理相关

2.8.1 OTA查询版本接口

POST https://[lid]opensmarthome.ibroadlink.com/openproxy/v2/firmware?license=(license)
请求:
{
  "directive": {
    "header": {
       "namespace": "DNA.ManagerControl",
       "name": "QueryVersion",
       "interfaceVersion": "2",
       "messageId": "1bd5d003-31b9-476f-ad03-71d471922820"
    },
    "endpoint": {
      ”devicePairedInfo":devicePairedInfo,
      "endpointId": "Some-Device-ID",
      "cookie": {}
    },
    "payload": {
    }
  }
}
响应:
{
  "context": {

  },
  "event": {
    "header": {
       "namespace": "DNA.ManagerControl",
       "name": "Response",//成功返回标识
       "interfaceVersion": "2",
       "messageId": "5f8a426e-01e4-4cc9-8b79-65f8bd0fd8a4",
    },
    "endpoint": {
      "endpointId": "appliance-001"//控制设备
    },
    "payload": {
         "version":"xxxxxx"//查询返回数据
    }
  }
}

2.8.2 OTA版本升级

POST https://[lid]opensmarthome.ibroadlink.com/openproxy/v2/firmware?license=(license)
请求:
{
  "directive": {
    "header": {
       "namespace": "DNA.ManagerControl",
       "name": "OTAUpgrade",
       "interfaceVersion": "2",
       "messageId": "1bd5d003-31b9-476f-ad03-71d471922820"
    },
    "endpoint": {
      ”devicePairedInfo":devicePairedInfo,
      "endpointId": "Some-Device-ID",
      "cookie": {}
    },
    "payload": {
        "url":"xxxx"
    }
  }
}
响应:
{
  "context": {//控制参数
    "properties": [ {
       "namespace": "DNA.ManagerControl",
       "name": "OTAUpgrade",
       "value": "b445sdfafad112224sdf",//控制指令
       "timeOfSample": "2017-02-03T16:20:50.52Z",
    } ]
  },
  "event": {
    "header": {
       "namespace": "DNA.ManagerControl",
       "name": "Response",//成功返回标识
       "interfaceVersion": "2",
       "messageId": "5f8a426e-01e4-4cc9-8b79-65f8bd0fd8a4",
    },
    "endpoint": {
      "endpointId": "appliance-001"//控制设备
    }
    "payload": {

    }
  }
}

2.8.3 远程复位接口

POST https://[lid]opensmarthome.ibroadlink.com/openproxy/v2/firmware?license=(license)
请求:
{
  "directive": {
    "header": {
       "namespace": "DNA.ManagerControl",
       "name": "Reset",
       "interfaceVersion": "2",
       "messageId": "1bd5d003-31b9-476f-ad03-71d471922820"
    },
    "endpoint": {
      ”devicePairedInfo":devicePairedInfo,
      "endpointId": "Some-Device-ID",
      "cookie": {}
    },
    "payload": {
    }
  }
}
响应:
{
  "context": {

  },
  "event": {
    "header": {
       "namespace": "DNA.ManagerControl",
       "name": "Response",//成功返回标识
       "interfaceVersion": "2",
       "messageId": "5f8a426e-01e4-4cc9-8b79-65f8bd0fd8a4",
    },
    "endpoint": {
      "endpointId": "appliance-001"//控制设备
    },
    "payload": {
         "version":"xxxxxx"//查询返回数据
    }
  }
}

2.9 接口错误响应

2.9.1 错误响应格式

返回消息中
    event.name="ErrorResponse",
    payload中是具体错误类型和原因。
举例:
{
  "context": {},
  "event": {
      "header": {
      "namespace": "DNA.PowerControl",
      "messageId": "30d2cd1a-ce4f-4542-aa5e-04bd0a6492d5",
      "name": "ErrorResponse",
      "payloadVersion": "2"
    },
    "endpoint": {
      "endpointId": "appliance-001"
    },
    "payload": {
        "type": "ENDPOINT_UNREACHABLE",
        "message":"xxx",
    }
 }

2.9.2 错误码表

字段 说明 备注
ENDPOINT_UNREACHABLE 设备离线
NO_SUCH_ENDPOINT 设备不存在
INVALID_REQ 请求格式不对
DEVICE_RESET 设备已经复位
INVALID_DIRECTIVE 指令错误
INVALID_ACCESSTOKEN token失效
INVALID_SIGNATURE 签名非法
INTERNAL_ERROR 其他错误
VALUE_OUT_OF_RANGE 值越界
FUNCTION_NOT_SUPPORT 功能不支持
UNDERSTAND_FAILURE 无法理解
SERVICE_UNAVAILABLE 服务器不可用 当服务处理超时或者异常时返回
NETWOEK_TIME_OUT 网络超时 控制设备超时返回

2.10.1 透传指令控制接口(预发布)

POST https://[lid]opensmarthome.ibroadlink.com/openproxy/v2/opencontrol?license=(license)
请求:
{
  "directive": {
    "header": {
       "namespace": "DNA.TransmissionControl",
       "name": "commonControl",
       "interfaceVersion": "2",
       "messageId": "1bd5d003-31b9-476f-ad03-71d471922820"
    },
    "endpoint": {
      ”devicePairedInfo":devicePairedInfo,
      "endpointId": "Some-Device-ID",
      "cookie": {}
    },
    "payload": {
        "data":"b445sdfafad112224sdf" //base64编码
    }
  }
}
响应:
{
  "context": {//控制参数
    "properties": [ {
       "namespace": "DNA.TransmissionControl",
       "name": "commonControl",
       "value": "b445sdfafad112224sdf",//控制指令
       "timeOfSample": "2017-02-03T16:20:50.52Z",
    } ]
  },
  "event": {
    "header": {
       "namespace": "DNA.TransmissionControl",
       "name": "Response",//成功返回标识
       "interfaceVersion": "2",
       "messageId": "5f8a426e-01e4-4cc9-8b79-65f8bd0fd8a4",
    },
    "endpoint": {
      "endpointId": "appliance-001"//控制设备
    },
    "payload": {
	"data":"b445sdfafad112224sdfsdfad"//设备返回数据
    }
  }
}

2.10.2 透传指令上报接口(预发布)

POST https://(YOURSERVER)/(YOURURL)
上报结构:
{
    "context":{},
    "event":{
        "header":{
            "namespace":"DNA.TransmissionReport",
            "name":"Report",
            "payloadVersion":"3",
            "messageId":"t4fd-4lykcmmciliwujxg"
        },
        "endpoint":{
            "endpointId":"00000000000000000000780f77747894"
        },
        "payload":{
            "data":"xxxxx"//(base64加密)透传设备上报的数据
        }
    }
}

3 控制接口参考表 Go to 控制接口参考表.

4 接口属性参考表 Go to 接口属性参考表.

5 品类参考表 Go to 品类参考表.