# 设备属性状态上报
设备属性状态是指设备运行的状态,不同设备有不同的属性状态参数,比如风扇的设备属性状态包括风速、开关状态;空调的设备属性状态包括温度、运行模式、风速等。设备属性状态上报包括一下三种方式:
- 发现设备时上报:在DiscoverAppliancesResponse中上报设备所有属性状态信息。
- 控制指令返回上报:发送控制指令时进行设备属性状态上报,在confirmation消息中返回设备属性状态信息。
- 主动上报(通知):当用户使用手动或其他方式对设备进行操作来修改属性信息时,技能主动上报设备属性信息。
# 发现设备时上报设备属性状态
成功发起发现设备请求后,技能将设备属性状态信息通过消息DiscoverAppliancesResponse上报。在DiscoverAppliancesResponse消息的status字段中携带了设备属性状态的所有信息。具体上报方式参照DiscoverAppliancesResponse消息。
# 控制消息中上报设备属性状态
用户发送控制指令,技能成功执行控制指令之后,在confirmation信息中进行设备属性状态上报。如成功打开卧室灯时技能会发送TurnOnConfirmation信息,并上报卧室灯的属性状态信息。 具体示例参照设备能力的Confirmation中的status字段。
# 技能主动上报设备状态属性
当用户手动操作设备或者通过第三方app修改设备状态时,技能会主动上报属性信息,发送上报请求消息。 在上报设备属性之前,需要获取认证token,详见授权章节。
# 上报状态
获取token之后,技能可以向腾讯小微上报设备属性状态数据
上报设备属性接口地址:
https://cloudim.weixin.qq.com/cloudim/cloudxw-bin/xwapi/iot/xw_iot_upload_devicestatus
请求方式:POST请求
Head说明:
参数名称 | 值 |
---|---|
Content-Type | application/json |
# ReportStateRequest
{
"xw_transfer_req": {
"iot_req": {
"accessToken": "[OAuth token here]",
"openUid": "[open id]",
"appid": 420,
"params": {
"device_id": "[Device ID]"
"deviceVolumeMin": 0,
"deviceVolumeMax": 100,
"deviceVolume": 50,
"deviceIsOnline": false,
"deviceIsAuthorize", true
},
"comm_type": 12 //必须为12
}
}
}
说明
属性 | 描述 | 是否必需 |
---|---|---|
xw_transfer_req.iot_req.accessToken | 获取的token。 | 是 |
xw_transfer_req.iot_req.openUid | 授权的小微账号开放id。 | 是 |
xw_transfer_req.iot_req.appid | appid。 | 是 |
xw_transfer_req.iot_req.params.device_id | 设备id。 | 是 |
xw_transfer_req.iot_req.params | params部分包括所有需要上报的设备属性状态名称和值。 | 是 |
xw_transfer_req.iot_req.comm_type | 必须为12。 | 是 |
# ReportStateResponse
{
"code": 0,
"msg": "上报设备数据成功"
}
说明
属性 | 描述 | 是否必需 |
---|---|---|
code | 返回的状态码,0:成功, 1:校验token失败,3 :设备id为空,4:上报设备属性失败,5:厂商token数据或者appid为空 | 是 |
msg | 提示信息。code=0,提示"上报设备属性成功"; code=1,提示" `校验token失败"; code=3,提示"设备id为空" ; code = 4 提示" 上报设备属性失败"; code = 5 提示"厂商token数据或者appid为空"。 | 是 |