设备上报事件
设备上报事件
实现设备上报事件的原理,请参见Alink协议中设备上报事件原理图。
上报透传事件
设备上报透传属性或事件:
Topic和数据格式(上行):
透传/自定义
Topic | 数据格式 |
请求Topic: | 请求数据是设备上报的原始报文。 示例如下:
|
响应Topic: | 云端返回数据格式如下: 成功返回示例
失败返回示例
|
上报物模型事件
物模型模块 | Topic | 数据格式 |
默认模块 |
| 以默认模块物模型为例,请求数据格式: 响应数据格式: 若请求失败,返回 |
数据格式说明:
参数 | 类型 | 说明 |
id | String | 消息ID号。String类型的数字,取值范围0~4294967295,且每个消息ID在当前设备中具有唯一性。 |
version | String | 协议版本号,目前协议版本号唯一取值为1.0。 |
sys | Object | 扩展功能的参数,其下包含各功能字段。 说明 使用设备端SDK开发时,如果未设置扩展功能,则无此参数,相关功能保持默认配置。 |
ack | Integer | sys下的扩展功能字段,表示是否返回响应数据。
重要 如果未配置该功能,则无此参数,云端默认返回响应数据。 |
method | String | 请求方法。
取值为
取值为 |
params | Object | 上报事件的输出参数。 |
value | Object | 事件的输出参数信息。如以上示例中的两个参数Power(电源)和WF(工作电流)的信息。
|
time | Long | 事件上报的时间戳,类型为UTC毫秒级时间。 该参数为可选字段。根据您的业务场景决定消息中是否带时间戳。如果消息频繁,需根据时间戳判断消息顺序,建议消息中带有时间戳。
|
数据格式说明:
参数 | 类型 | 说明 |
id | String | 消息ID号,String类型的数字,取值范围0~4294967295,且每个消息ID在当前设备中具有唯一性。 |
code | Integer | 结果状态码。 |
data | Object | 请求成功时,返回的数据固定为空。 |
message | String | 返回结果信息。请求成功时,返回success。 |
method | String | 响应数据对应的请求方法,与请求参数中method相同。 |
version | String | 协议版本号,与请求参数中version相同。 |
示例:假设产品中定义了一个alarm事件,它的TSL描述如下。参数说明,请参见什么是物模型。
{
"schema": "https://iot-tsl.oss-cn-shanghai.aliyuncs.com/schema.json",
"link": "/sys/${productKey}/airCondition/thing/",
"profile": {
"productKey": "${productKey}",
"deviceName": "airCondition"
},
"events": [
{
"identifier": "alarm",
"name": "alarm",
"desc": "风扇警报",
"type": "alert",
"required": true,
"outputData": [
{
"identifier": "errorCode",
"name": "错误码",
"dataType": {
"type": "text",
"specs": {
"length": "255"
}
}
}
],
"method": "thing.event.alarm.post"
}
]
}
当设备上报事件时,请求数据格式:
{
"id": "123",
"version": "1.0",
"params": {
"value": {
"errorCode": "error"
},
"time": 1524448722000
},
"method": "thing.event.alarm.post"
}