Appearance
设备命令
平台可以发送命令,设备订阅到命令后,执行某项功能任务。
默认模块请求topic定义
topic:tlink/${productKey}/${deviceName}/command/${tsl.command.pid}/exec
这里的${tsl.command.pid}是指物模型中定义的命令唯一标识符。
自定义模块请求topic定义
topic:tlink/${productKey}/${deviceName}/command/${tsl.blockId}:${tsl.command.pid}/exec
自定义模块中的命令,topic中 ${tsl.blockId}:${tsl.command.pid}
,冒号前面是指自定义模块唯一模块标识符,冒号后面指此自定义模块中物模型命令唯一标识符。
数据流向:平台发布消息,设备监听消息
请求数据体格式
javascript
{
"reqid": "0020fdf71f0d491da12ba3cd38b205be",
"v": "1",
"t": 1630054074378,
"method": "tlink.${productKey}.${deviceName}.command.${tsl.command.pid}.exec",
"data": {
"temperature": "30.5"
}
}
请求参数说明
参数名称 | 类型 | 是否必选 | 描述 |
---|---|---|---|
reqid | String | 是 | 消息ID号。全局唯一,用于系统消息追踪 |
v | String | 是 | 协议版本号,目前协议版本号唯一取值为1 |
t | Long | 是 | 消息发送时间戳 |
method | String | 否 | TCP连接时必传 |
data | Object | 是 | 命令输入参数。 如以上示例中,命令参数: { "temperature": "30.5" } 。 |
key | String | 是 | 命令名 |
value | other | 是 | 命令值 |
默认模块响应
topic说明:tlink/${productKey}/${deviceName}/command/${tsl.command.pid}/exec_reply
自定义模块响应
topic说明:tlink/${productKey}/${deviceName}/command/${tsl.blockId}:${tsl.command.pid}/exec_reply
数据流向:设备发布消息,平台监听消息
响应数据体格式
javascript
{
"reqid": "0020fdf71f0d491da12ba3cd38b205be",
"method": "tlink.${productKey}.${deviceName}.command.${tsl.command.pid}.exec_reply",
"code": 200,
"data": {}
}
响应参数说明
参数名称 | 类型 | 是否必选 | 描述 |
---|---|---|---|
reqid | String | 是 | 消息ID号。和请求的对应 |
method | String | 否 | TCP连接时必传 |
code | Integer | 是 | 结果状态码。成功为200,其他为失败 |
data | Object | 否 | 请求成功时,返回的数据。不需要返回则为空。 |
设备命令TSL示例
假设产品中定义了一个SetWeight命令,它的TSL描述如下。
TSL描述示例
javascript
{
"profile": {
"version": 1,
"productKey": "testProduct01"
},
"commands": [
{
"pid": "SetWeight",
"name": "设置重量",
"required": false,
"callType": "async",
"outputData": [
{
"pid": "OldWeight",
"dataType": {
"specs": {
"unit": "kg",
"min": "0",
"max": "200",
"step": "1"
},
"type": "double"
},
"name": "OldWeight"
},
{
"pid": "CollectTime",
"dataType": {
"specs": {
"length": "2048"
},
"type": "text"
},
"name": "CollectTime"
}
],
"inputData": [
{
"pid": "NewWeight",
"dataType": {
"specs": {
"unit": "kg",
"min": "0",
"max": "200",
"step": "1"
},
"type": "double"
},
"name": "NewWeight"
}
],
"method": "tlink.${productKey}.${deviceName}.command.SetWeight.exec"
}
]
}
命令请求示例
当命令平台触发执行时,平台请求数据格式为
javascript
{
"reqid": "0020fdf71f0d491da12ba3cd38b205be",
"v": "1",
"t": 1630054074378,
"method": "tlink.${productKey}.${deviceName}.command.SetWeight.exec",
"data": {
"NewWeight": 100.8
}
}
命令响应示例
设备响应的数据格式如下
javascript
{
"reqid": "0020fdf71f0d491da12ba3cd38b205be",
"method": "tlink.${productKey}.${deviceName}.command.SetWeight.exec_reply",
"code": 200,
"data": {
"CollectTime": "1536228947682",
"OldWeight": 100.10
}
}