平台支持标准 MQTT 3.1.1版本
平台对协议特性支持如下:
特性 | 是否支持 | 说明 |
---|---|---|
will | 不支持 | will、will retain 的flag必须为0,will qos必须为0 |
session | 支持 | cleansession为0会保留上次连接的信息 |
retain | 不支持 | 相关标记必须为0 |
QoS0 | 支持 | 平台发布订阅均支持QoS0 |
QoS1 | 支持 | 平台发布订阅均支持QoS1 |
QoS2 | 不支持 |
基础通信Topic
功能 | Topic类 | 操作权限 | 描述 |
---|---|---|---|
时间同步 | $sys/{pid}/{did}/ext/ntp/request | 发布 | ntp时钟同步请求 |
时间同步 | $sys/{pid}/{did}/ext/ntp/response | 订阅 | ntp时钟同步响应 |
设备影子 | $sys/{pid}/{did}/shadow/get/resp | 订阅 | 设备获取影子回复 |
设备影子 | $sys/{pid}/{did}/shadow/update/resp | 订阅 | 设备更新影子回复 |
设备影子 | $sys/{pid}/{did}/shadow/get | 发布 | 设备获取影子 |
设备影子 | $sys/{pid}/{did}/shadow/update | 发布 | 设备更新影子 |
配置更新 | $sys/{pid}/{did}/thing/config/push | 订阅 | 云端主动下推配置信息 |
设备标签 | $sys/{pid}/{did}/thing/deviceinfo/update | 发布 | 设备上报标签 |
设备标签 | $sys/{pid}/{did}/thing/deviceinfo/update_reply | 订阅 | 设备上报标签响应 |
设备标签 | $sys/{pid}/{did}/thing/deviceinfo/delete | 发布 | 设备删除标签 |
设备标签 | $sys/{pid}/{did}/thing/deviceinfo/delete_reply | 订阅 | 删除标签回复 |
物模型通信Topic
功能 | Topic类 | 操作权限 | 描述 |
---|---|---|---|
属性上报 | $sys/{pid}/{did}/thing/property/post/reply | 订阅 | 设备属性上报结果回复 |
属性上报 | $sys/{pid}/{did}/thing/property/post | 发布 | 设备属性上报 |
属性设置 | $sys/{pid}/{did}/thing/property/set | 订阅 | 设备属性设置(平台→设备) |
属性设置 | $sys/{pid}/{did}/thing/property/set_reply | 发布 | 设备属性设置应答(设备→平台) |
OTA升级 | $sys/{pid}/{did}/ota/device/inform | 发布 | 设备上报版本号 |
OTA升级 | $sys/{pid}/{did}/ota/device/upgrade | 订阅 | 设备接收升级任务 |
OTA升级 | $sys/{pid}/{did}/ota/device/progress | 发布 | 设备上报升级状态 |
OTA升级 | $sys/{pid}/{did}/ota/device/status | 发布 | 设备上报升级结果 |
服务调用 | $sys/{pid}/{did}/thing/service | 订阅 | 平台下发服务 |
服务调用 | $sys/{pid}/{did}/thing/service/reply | 发布 | 设备响应服务 |
广播下发 | $sys/{pid}/broadcast/request | 订阅 | 广播消息下发 |
设备重置 | $sys/{pid}/{did}/ext/reset/request | 发布 | 设备向平台发送重置请求 |
日志 | $sys/{pid}/{did}/thing/log/post | 发布 | 日志上传 |
日志 | $sys/{pid}/{did}/thing/log/post_reply | 订阅 | 日志上传回复 |
事件上报 | $sys/{pid}/{did}/thing/event/post | 发布 | 设备事件上报 |
自定义Topic
用户可以根据实际情况,自行定义Topic。
基础通信Topic
功能 | Topic类 | 操作权限 | 描述 |
---|---|---|---|
时钟同步 | $sys/{pid}/{did}/ext/ntp/request | 发布 | ntp时钟同步请求 |
时钟同步 | $sys/{pid}/{did}/ext/ntp/response | 订阅 | ntp时钟同步响应 |
设备影子 | $sys/{pid}/{did}/shadow/get/resp | 订阅 | 设备获取影子回复 |
设备影子 | $sys/{pid}/{did}/shadow/update/resp | 订阅 | 设备更新影子回复 |
设备影子 | $sys/{pid}/{did}/shadow/get | 发布 | 设备获取影子 |
设备影子 | $sys/{pid}/{did}/shadow/update | 发布 | 设备更新影子 |
配置更新 | $sys/{pid}/{did}/thing/config/push | 订阅 | 云端主动下推配置信息 |
物模型通信Topic
功能 | Topic类 | 操作权限 | 描述 |
---|---|---|---|
属性上报 | customized/data/pid/%s/devkey/%s | 发布 | 设备属性上报 |
属性设置 | customized/cmd/pid/%s/devkey/%s | 订阅 | 设备属性设置(平台→设备) |
属性设置 | customized/resp/pid/%s/devkey/%s | 发布 | 设备属性设置应答(设备→平台) |
自定义Topic
用户可以根据实际情况,自行定义Topic。
发布Topic:$sys/{pid}/{did}/thing/property/post,格式如下:
{
"id": "123",
"version": "1.0",
"params": {
"Power": {
"value": "on",
"time": 1524448722123
},
"WF": {
"value": 23.6,
"time": 1524448722123
}
}
}
表:请求参数说明
参数 | 类型 | 说明 | |
---|---|---|---|
id | String | 消息id号,用户自定义,String类型的数字,长度限制13位。 | |
version | String | 物模型版本号,可选字段,不填默认为1.0 | |
params | JsonObject | 请求参数,用户自定义,标准json格式。如以上示例中,设备上报了的两个属性Power和WF。具体属性信息,包含属性上报时间(time)和上报的属性值(value)。 | |
time | Long | 属性值生成时间。该参数为可选字段,到豪秒级。根据您的业务场景决定消息中是否带时间戳。如果消息频繁,需根据时间戳判断消息顺序,建议消息中带有时间戳。 | |
value | Object | 上报的属性值 |
响应:$sys/{pid}/{did}/thing/property/post/reply,格式如下:
{
"id": "123",
"code":xxxx,
“msg”:"xxxx"
}
表:响应参数说明表
参数 | 类型 | 说明 | |
---|---|---|---|
Id | String | 消息id号,用户自定义,String类型的数字,长度限制13位。 | |
code | Integer | 结果状态码 | |
msg | String | 错误信息 |
订阅Topic:$sys/{pid}/{did}/thing/property/set,JSON数据格式如下:
{
"id": "123",
"version": "1.0",
"params": {
"temperature": "30.5"
...
}
}
表:请求参数说明
参数 | 类型 | 说明 |
---|---|---|
id | String | 消息id号,平台定义,String类型的数字,长度限制13 |
version | String | 物模型版本号,可选字段 |
params | JsonObject | 属性设置参数。如以上示例中,设置属性:{"temperature":"30.5" } |
回复Topic:$sys/{pid}/{did}/thing/property/set_reply,格式如下:
{
"id": "123"
"code":xxxx,
"msg":"xxxx"
}
表:响应参数说明表
参数 | 类型 | 说明 |
---|---|---|
id | String | 消息id号,平台定义,String类型的数字,长度限制13位。 |
code | Integer | 结果状态码 |
msg | String | 错误信息 |
发布Topic:$sys/{pid}/{did}/thing/event/post,格式如下:
{
"id": "123",
"version": "1.0",
"params": {
"identifier1": {
"value": {
"Power": "on",
"WF": "2"
},
"time": 1524448722123
},
"identifier2": {
"value": {
"Power": "on",
"WF": "2"
},
"time": 1524448722123
}
}
}
表: 参数说明
参数 | 类型 | 说明 |
---|---|---|
id | String | 消息id号,平台定义,String类型的数字,长度限制13位 |
version | String | 物模型版本号,可选字段,不填默认为1.0 |
time | Integer | 时间戳, 毫秒 |
params | object | |
identifier | String | 事件名 |
value | object | 输出参数键值对 |
订阅Topic:$sys/{pid}/{did}/thing/service,JSON数据格式如下:
{
"id": "123",
"version": "1.0",
"productId:100288,
"deviceId": 10007337,
"callType": 1,
"serviceName":"service_1",
"params": {
"int":100,
"string":"abcde"
},
"timeout":20
}
表:请求参数说明
参数 | 类型 | 说明 |
---|---|---|
id | String | 服务调用id |
version | String | 版本号,可选字段 |
productId | Integer | 产品ID |
deviceId | Integer | 设备ID |
callType | Integer | 调用方式: 1-同步,2-异步 |
serviceName | String | 服务名 |
params | Object | params为map[string]interface{},key为入参名,value为入参值 |
timeout | Integer | 同步-用户自定义超时时间(0为默认值10);异步-平台控制超时时间,设备和节点忽略 |
回复Topic:$sys/{pid}/{did}/thing/service/reply,格式如下:
{
"id": "123"
"code":xxxx,
"msg":"xxxx",
"params":{
"output":123,
"output2":"123"
}
}
表:响应参数说明表
参数 | 类型 | 说明 |
---|---|---|
id | String | 服务调用id |
code | Integer | 错误码 |
msg | String | 错误信息 |
params | Object | 服务调用出参, key为参数名,value为参数值 |
设备请求topic:$sys/{pid}/{did}/ext/ntp/request 设备向平台发送一条QoS=0的消息,payload中带上设备当前的时间戳,单位为毫秒。示例如下:
{
"deviceSendTime":"1571724098000"
}
设备端收到服务端回复的消息,payload中包含以下信息:
{
"deviceSendTime":"1571724098000",
"serverRecvTime":"1571724098110",
"serverSendTime":"1571724098115",
}
请求Topic: $sys/{did}/{pid}/thing/log/post
响应Topic: $sys/{did}/{pid}/thing/log/post_reply
请求数据:
{
"version":"1.0",
"params" :[{
"utcTime": "2020-03-06T15:15:27.464+0800",
"logLevel": "ERROR",
"module": "ModuleA",
"code" :"4103",
"traceContext": "123456",
"logContent" : "some log content"
}],
"method" : "thing.log.post"
}
表 . 参数说明
参数 | 类型 | 说明 |
---|---|---|
version | String | 物模型版本号,可选字段,不填默认为1.0 |
utcTime | String | 日志的采集时间,为设备本地UTC时间,包含时区信息,以毫秒计,格式为“yyyy-MM-dd'T'HH:mm:ss.SSSZ”。 可上报其它字符串格式,但不利于问题排查,不推荐使用。 |
params | List | 请求业务参数。数组元素最多40个。 |
logLevel | String | 日志级别。可以使用默认日志级别,也可以自定义日志级别。默认日志级别从高到低为:FATAL, ERROR, WARN, INFO, DEBUG |
module | String | 模块名称:当设备端使用Android SDK时,模块名称为ALK-LK。当设备端使用C SDK时,需自定义模块名称。当设备端使用自行开发的SDK时,需自定义模块名称。 |
code | String | 结果状态码:当设备端使用C SDK时,请参见C SDK状态码。当设备端使用自行开发的SDK时,可以自定义结果状态码,也可以为空。 |
traceContext | String | 可选参数,上下文跟踪内容,设备端使用Alink协议消息的id,App端使用TraceId(追踪ID)。 |
method | String | 请求方法,取值thing.log.post。 |
响应数据:
{
"code":200,
"msg":"msg"
}
表 . 响应参数说明
参数 | 类型 | 说明 |
---|---|---|
code | Integer | 错误码, 200表示成功 |
msg | String | 错误信息 |
$sys/{pid}/broadcast/request
请求内容为一个json对象
```
## 设备reset
* 设备上报reset消息:`$sys/{did}/{pid}/ext/reset/request`
请求数据:
```json
{
"id":"123"
}
表 . 参数说明
参数 | 类型 | 说明 |
---|---|---|
id | String | 请求id |
method | String | reset |
响应数据:
{
"id":"123",
"code":200,
"msg":"msg"
}
表 . 响应参数说明
参数 | 类型 | 说明 |
---|---|---|
id | string | 请求id |
code | int | 错误码, 200表示成功 |
msg | string | 错误信息 |
参数 | 类型 | 说明 |
---|---|---|
id | String | 请求id |
code | Integer | 错误码, 200表示成功 |
msg | String | 错误信息 |
$sys/{pid}/{did}/ota/device/inform
消息格式如下:
请求数据:{
"params": {
"pid":"100040",
"did":"10000064",
"fVersion":"2.0",
"sVersion":"2.0",
"manuf":"001",
"model":"00108"
}
}
表 . 参数说明参数 | 类型 | 说明 |
---|---|---|
did | String | 设备id |
pid | String | 产品id |
fVersion | String | 模组版本号 |
sVersion | String | 应用服务版本号 |
manuf | String | 厂商名称 |
model | String | 模组型号 |
$sys/{pid}/{did}/ota/device/upgrade
控制台对设备发起OTA升级请求后,设备端会通过该Topic收到升级包的存储地址URL。消息格式如下:
{
"code": 200,
"data":{
"target":"1.2",
"token":"ota_5hc95SFeo5xJEnaNrste",
"size":123,
"signal":12,
"power":90,
"retry":10,
"interval":90,
"md5":"dfkdajkfd",
"url":"172.19.3.3:8002/ota/download/ota_5hc95SFeo5xJEnaNrste"
}
}
表 . 参数说明
参数 | 类型 | 说明 |
---|---|---|
code | Integer | 状态码。 |
data | object | 升级信息 |
target | String | 升级任务的目标版本 |
token | String | 后续操作的鉴权信息 |
size | Long | 文件大小 |
signal | Integer | 任务在大于该信号下进行 |
power | Integer | 任务在大于该电量下进行 |
retry | Integer | 重试次数 |
interval | Integer | 重试间隔(秒) |
md5 | String | 升级文件的md5 |
url | String | 文件下载地址 |
$sys/{pid}/{did}/ota/device/progress
; 消息格式如下:{
"params": {
"pid":"123",
"did":"123",
"step":11,
"token":"ota_5hc95SFeo5xJEnaNrste"
}
}
表 . 参数说明参数 | 类型 | 说明 |
---|---|---|
step | String | OTA升级进度信息。取值范围:1~100的整数 |
token | String | 鉴权信息 |
did | String | 设备id |
pid | String | 产品id |
$sys/{pid}/{did}/ota/device/status
。{
"params": {
"pid":"123",
"did":"123",
"result":101,
"token":"ota_5hc95SFeo5xJEnaNrste"
}
表 . 参数说明参数 | 类型 | 说明 |
---|---|---|
id | String | 消息id号,用户自定义,String类型的数字,长度限制不超过13位。可选 |
result | Integer | 升级状态码 101:升级包下载成功;102:下载失败,空间不足;103:下载失败,内存溢出;104:下载失败,下载请求超时; 105:下载失败,电量不足; 106:下载失败,信号不良; 107:下载失败,未知异常; 201:升级成功; 202:升级失败,电量不足; 203:升级失败,内存溢出; 204:升级失败,版本不一致; 205:升级失败,MD5校验失败; 206:升级失败,未知异常 207:升级失败,达到最大重试次数 |
token | String | 鉴权信息 |
did | String | 设备id |
pid | String | 产品id |
见设备影子。
设备订阅:$sys/{pid}/{did}/thing/config/push 设备获取平台下发的配置,配置格式是json,具体内容用户自定义