# 设备属性状态上报

设备属性状态是指设备运行的状态,不同设备有不同的属性状态参数,比如风扇的设备属性状态包括风速、开关状态;空调的设备属性状态包括温度、运行模式、风速等。设备属性状态上报包括一下三种方式:

  • 发现设备时上报:在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为空"。