Appearance
子设备MQTT动态注册
当网关(直连设备)从端侧添加了子设备时,发送MQTT消息向平台注册。
一型一密的网关子设备没有在平台进行注册,子设备借助网关的物理通道进行子设备MQTT动态注册,获取子设备三元组(ProductKey、DeviceName、DeviceSecret)。
子设备请求topic定义
topic定义:tlink/${productKey}/${deviceName}/sub/register
数据流向:设备发布消息,平台监听消息
注意:topic中的productKey和deviceName为网关(直接设备)的信息。
一级子设备注册请求数据体格式
javascript
{
"reqid": "0020fdf71f0d491da12ba3cd38b205be",
"v": "1",
"t": 1630054074378,
"method": "tlink.${productKey}.${deviceName}.sub.register",
"data": [
{
"deviceName": "sn1234或mac1234",
"productKey": "a1234******"
"subList": []
},
{
"deviceName": "sn4567或mac4567",
"productKey": "a4567******"
"subList": []
}
]
}请求参数说明
参数名称 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| reqid | String | 是 | 消息ID号。全局唯一,用于系统消息追踪 |
| v | String | 是 | 协议版本号,目前协议版本号唯一取值为1 |
| t | Long | 是 | 消息发送时间戳 |
| method | String | 否 | TCP连接时必传 |
| data | List | 是 | 请求数据列表。 |
| productKey | String | 是 | 一级子设备的产品productKey。 |
| deviceName | String | 是 | 一级子设备的唯一标识,例如 :sn或mac等。支持英文字母、数字、下划线(_),请不要使用关键字如:time、of、value等 |
| subList | List | 否 | 二级子设备列表,如果只有一级子设备时为空,可不传 |
一级子设备注册响应topic定义
响应topic定义: tlink/${productKey}/${deviceName}/sub/register_reply
数据流向:平台响应消息,设备监听消息
一级子设备注册响应数据体格式
javascript
{
"reqid": "0020fdf71f0d491da12ba3cd38b205be",
"method": "tlink.${productKey}.${deviceName}.sub.register_reply",
"code": 200,
"data": [
{
"productKey": "a1234******",
"deviceName": "sn1234或mac4567",
"deviceSecret": "xxxxxx",
"deviceUniqueNo" :"sn1234或mac4567"
},
{
"productKey": "a4567******",
"deviceName": "sn456或mac789",
"deviceSecret": "xxxxxx",
"deviceUniqueNo" :"sn456或mac789"
}
]
}响应参数说明
参数名称 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| reqid | String | 是 | 消息ID号。和请求的对应 |
| method | String | 否 | TCP连接时必传 |
| code | Integer | 是 | 结果状态码。成功为200,其他为失败, -1全部失败,-2部分失败(列表返回成功的子设备), |
| data | List | 否 | 请求成功时,返回的数据。 |
| productKey | String | 是 | 一级子设备的产品productKey。 |
| deviceName | String | 是 | 一级子设备的唯一标识。 |
| deviceSecret | String | 是 | 一级子设备的设备秘钥。 |
| deviceUniqueNo | String | 是 | 一级子设备的唯一标识。 默认与deviceName相同 |
二级子设备注册请求数据体格式
javascript
{
"reqid": "0020fdf71f0d491da12ba3cd38b205be",
"v": "1",
"t": 1630054074378,
"method": "tlink.${productKey}.${deviceName}.sub.register",
"data": [
{
"deviceName": "sn1234或mac1234",
"productKey": "a1234******"
"subList": [
{
"deviceName": "sn789或mac789",
"productKey": "a789******"
},
{
"deviceName": "sn001或mac001",
"productKey": "a001******"
}
]
},
{
"deviceName": "sn456或mac456",
"productKey": "a4567******"
"subList": [
{
"deviceName": "sn789或mac789",
"productKey": "a789******"
},
{
"deviceName": "sn001或mac001",
"productKey": "a001******"
}
]
}
]
}请求参数说明
参数名称 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| reqid | String | 是 | 消息ID号。全局唯一,用于系统消息追踪 |
| v | String | 是 | 协议版本号,目前协议版本号唯一取值为1 |
| t | Long | 是 | 消息发送时间戳 |
| method | String | 否 | TCP连接时必传 |
| data | List | 是 | 请求数据列表。 |
| productKey | String | 是 | 一级子设备的产品productKey。 |
| deviceName | String | 是 | 一级子设备的唯一标识,例如 :sn或mac等。 |
| subList | List | 是 | 二级子设备列表。 |
| productKey | String | 是 | 二级子设备的产品productKey。 |
| deviceName | String | 是 | 二级子设备的唯一标识,例如 :sn或mac等。 |
二级子设备注册响应topic定义
响应topic定义: tlink/${productKey}/${deviceName}/sub/register_reply
数据流向:平台响应消息,设备监听消息
二级子设备注册响应数据体格式
javascript
{
"reqid": "0020fdf71f0d491da12ba3cd38b205be",
"method": "tlink.${productKey}.${deviceName}.sub.register_reply",
"code": 200,
"data": [
{
"productKey": "a1234******",
"deviceName": "sn1234或mac456",
"deviceSecret": "xxxxxx",
"deviceUniqueNo" :"sn1234或mac456"
"subList": [
{
"productKey": "a001******",
"deviceName": "sn789或mac789",
"deviceSecret": "xxxxxx",
"deviceUniqueNo" :"sn789或mac789"
},
{
"productKey": "a002******",
"deviceName": "sn111或mac111",
"deviceSecret": "xxxxxx",
"deviceUniqueNo" :"sn111或mac111"
}
]
},
{
"productKey": "a4567******",
"deviceName": "sn456或mac789",
"deviceSecret": "xxxxxx",
"deviceUniqueNo" :"sn456或mac789"
"subList": [
{
"productKey": "a001******",
"deviceName": "sn789或mac789",
"deviceSecret": "xxxxxx",
"deviceUniqueNo" :"sn789或mac789"
},
{
"productKey": "a002******",
"deviceName": "sn111或mac111",
"deviceSecret": "xxxxxx",
"deviceUniqueNo" :"sn111或mac111"
}
]
}
]
}响应参数说明
参数名称 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| reqid | String | 是 | 消息ID号。和请求的对应 |
| method | String | 否 | TCP连接时必传 |
| code | Integer | 是 | 结果状态码。成功为200,其他为失败 |
| data | List | 是 | 请求成功时,返回的数据。 |
| productKey | String | 是 | 一级子设备的产品productKey。 |
| deviceName | String | 是 | 一级子设备的唯一标识。 |
| deviceSecret | String | 是 | 一级子设备的设备秘钥。 |
| deviceUniqueNo | String | 是 | 一级子设备的唯一标识。 默认和deviceName相同 |
| subList | List | 是 | 二级子设备列表。 |
| productKey | String | 是 | 二级子设备的产品productKey。 |
| deviceName | String | 是 | 二级子设备的唯一标识。 |
| deviceSecret | String | 是 | 二级子设备的设备秘钥。 |
| deviceUniqueNo | String | 是 | 二级子设备的唯一标识。 默认和deviceName相同 |