Appearance
设备事件
设备运行时的事件。事件一般包含需要被外部感知和处理的通知信息,可包含多个输出参数。例如,某项任务完成的信息,或者设备发生故障或告警时的温度等。
默认模块请求topic定义
topic:tlink/${productKey}/${deviceName}/event/${tsl.event.pid}/post
这里的${tsl.event.pid}是指物模型中定义的事件唯一标识符。
设备属性上报是特殊的默认事件。
自定义模块请求topic定义
topic:tlink/${productKey}/${deviceName}/event/${tsl.blockId}:${tsl.event.pid}/post
自定义模块中的事件,topic中 ${tsl.blockId}:${tsl.event.pid}
,冒号前面是指自定义模块唯一模块标识符,冒号后面指此自定义模块中物模型事件唯一标识符。
数据流向:设备发布消息,平台监听消息
请求数据体格式
javascript
{
"reqid": "0020fdf71f0d491da12ba3cd38b205be",
"v": "1",
"t": 1630054074378,
"method": "tlink.${productKey}.${deviceName}.event.${tsl.event.pid}.post",
"data": {
"temperature": "80"
}
}
请求参数说明
参数名称 | 类型 | 是否必选 | 描述 |
---|---|---|---|
reqid | String | 否 | 消息ID号。全局唯一,用于系统消息追踪 |
v | String | 否 | 协议版本号,目前协议版本号唯一取值为1 |
t | Long | 否 | 消息发送时间戳 |
method | String | 否 | TCP连接时必传 |
data | Object | 是 | 事件输出参数。 如以上示例中,上报温度过高事件: { "temperature": "80" } 。 |
key | String | 是 | 事件名 |
value | other | 是 | 事件值 |
默认模块响应
topic说明:tlink/${productKey}/${deviceName}/event/${tsl.event.pid}/post_reply
自定义模块响应
topic说明:tlink/${productKey}/${deviceName}/event/${tsl.blockId}:${tsl.event.pid}/post_reply
数据流向:平台发布消息,设备监听消息
响应数据体格式
javascript
{
"reqid": "0020fdf71f0d491da12ba3cd38b205be",
"method": "tlink.${productKey}.${deviceName}.event.${tsl.event.pid}.post_reply",
"code": 200,
"data": {}
}
响应参数说明
参数名称 | 类型 | 是否必选 | 描述 |
---|---|---|---|
reqid | String | 是 | 消息ID号。和请求的对应 |
method | String | 否 | TCP连接时必传 |
code | Integer | 是 | 结果状态码。成功为200,其他为失败 |
data | Object | 否 | 请求成功时,返回的数据。不需要返回则为空。 |
设备事件TSL示例
假设产品中定义了一个alarm事件,它的TSL描述如下。
TSL描述示例
javascript
{
"profile": {
"version": 1,
"productKey": "testProduct02",
"deviceName": "airCondition"
},
"events": [
{
"pid": "alarm",
"name": "alarm",
"desc": "风扇警报",
"type": "alert",
"required": true,
"outputData": [
{
"pid": "errorCode",
"name": "错误码",
"dataType": {
"type": "text",
"specs": {
"length": "255"
}
}
}
],
"method": "tlink.${productKey}.${deviceName}.event.alarm.post"
}
]
}
上报事件请求示例
上报事件时,Tlink 数据格式如下:
javascript
{
"reqid": "0020fdf71f0d491da12ba3cd38b205be",
"v": "1",
"t": 1630054074378,
"method": "tlink.${productKey}.${deviceName}.event.alarm.post",
"data": {
"errorCode": "error!"
}
}