init接口获取IOT服务接入信息
获取配置及初始化流程
此接口主要目的是动态的获取服务器通讯配置,MQTT通信配置,基于这些配置,才能去完成设备与云端通讯:获取白名单,连接MQTT服务,更新 MQTT Token等必要功能步骤
方法说明
目前平台存在多个对接环境,涉及环境相关的参数均为动态获取,不要写死。
目前对接mqtt分为两种:
mqtt类型 | 使用环境 |
---|---|
阿里云mqtt | 正式环境,测试环境,宝冶私有化,中建七局私有化 |
emq | 剩余所有私有化环境 |
接口地址 DISPATCH-ADDRESS/init/v2
GET方法
入参说明
参数 | 类型 | 是否必须 | 说明 |
---|---|---|---|
appid | String | 是 | 唯一凭证 |
sign | String | 是 | 签名 |
deviceCode | String | 是 | 设备编码 |
返回数据示例
目前存在两种返回体,aliBaseInfo与huaWeiBaseInfo,示例如下
cloud:alibaba,连接阿里云mqtt,返回aliBaseInfo
{
"success": true,
"code": "0",
"message": "操作成功",
"data": {
"aliBaseInfo": {
"base": "https://glm.glodon.com/",
"mqttTokenExpire": 1691567773651,
"instanceId": "post-cn-45913ndtd02",
"endPoint": "post-cn-45913ndtd02.mqtt.aliyuncs.com",
"groupId": "GID_PRODUCT_GLM",
"qos": 1,
"cleanSession": false,
"sslPort": 8883,
"tcpPort": 1883,
"topic": "TIC_PRODUCT_GLM",
"accessKeyID": "LTAIvNMvVZ1YWQpz",
"sub": "/gateface/e/1",
"token": "LzMT+XLFl5s/YWJ/MlDz4t/Lq5HC1iGU1P28HAMaxYzmBSHQsWXgdISJ1ZJ+2cxaGholn1CMfVqrso2Gd2XNmNYWdl0jS//fbJGYgJWUr5piesdvDY0i8bMf4HnoBJgkXSXAF4SNq9bvooOIjF1CZSbWn5fneDJm049e2BgDS8wQqZy6mqUmACQgoJWL8b3AwXp1M60Hjp+oi27VLLD/3EnVgGDRZD+dLcBw6790ceMuPYtqQs4RLLAkGX36T433jkquziXyjPw4EcTzR55VOjI7VpDCK3nH6uBL3qdBe6A/qCHvgc+FmAIeiBrCpjVW7bOdGrK1bM/2cjwG7k9tD/PVYSZInE1Q4M3AbA4Exn+j+EbaKS8Y41rRMKHhAfqKsVEDRLUfFaxbNFOQ6RtRbA=="
},
"huaWeiBaseInfo": null,
"zlBaseInfo": null,
"setting": {
"deviceType": "gateface",
"versionId": 0,
"gateConfigData": {
"heartTime": 60,
"enableFace": 1,
"enableRfid": 0,
"screen": {
"screenId": "",
"panId": 298,
"channel": 11
},
"rfid": 2100,
"dataCommitTime": 0,
"enableIc": 1,
"enableSegment": 0
},
"_id": "64ba0ee233ece8001f6c71a9",
"deviceCode": "GLDAIGOS0001952899"
},
"projectId": 328202997880832,
"currentTime": 1689928813491,
"cloud": "alibaba",
"cloudName": "公有云(正式)",
"projectName": "xxx项目",
"keepAlive": 60,
"connectionTimeout": 10000,
"maxInflight": 1000,
"mqttVersion": 4,
"automaticReconnect": true
}
}
cloud:huawei,连接emq,返回huaWeiBaseInfo
cloud:huawei,返回huaWeiBaseInfo
{
"success": true,
"code": "0",
"message": "操作成功",
"data": {
"aliBaseInfo": null,
"huaWeiBaseInfo": {
"base": "http://szxm.mcc5.com.cn:8051/",
"endPoint": "szxm.mcc5.com.cn",
"qos": 1,
"cleanSession": false,
"sslPort": 8883,
"tcpPort": 8050,
"topic": "GLM/gateface/e/1",
"userName": "3491ee1d4a4d49d4958f3c1488666666",
"password": "a7a9af812c62e0bf66c65112a4666666"
},
"zlBaseInfo": null,
"setting": {
"versionId": 0,
"updateDate": "2023-04-04_19:31:16",
"gateConfigData": {
"heartTime": 60,
"enableFace": 1,
"enableRfid": 0,
"screen": {
"screenId": "",
"panId": 298,
"channel": 11
},
"rfid": 2100,
"dataCommitTime": 0,
"enableIc": 1,
"enableSegment": 0
},
"_id": "642c0a84d063c0001e98f248",
"deviceCode": "GLDAIGOS0001978857"
},
"projectId": 733722446856192,
"currentTime": 1689931584287,
"cloud": "huawei",
"cloudName": '五冶',
"projectName": "xxx项目",
"keepAlive": 60,
"connectionTimeout": 10000,
"maxInflight": 1000,
"mqttVersion": 4,
"automaticReconnect": true
}
}
返回字段说明
一级字段 | 二级字段 | 字段名称 | 字段格式 | 备注 |
---|---|---|---|---|
aliBaseInfo | base | 基础地址 | String | |
mqttTokens | 连接阿里MQTT的token(华为云时为null) | String | MQTT令牌数组,action 对应token的权限;expireTime 代表权限过期时间;token 字段为具体token内容 |
|
instanceId | 实例ID | String | ||
AccessKeyID | 阿里云AccessKeyID | String | ||
endPoint | MQTT信息 | String | ||
groupId | MQTT信息 | String | ||
qos | MQTT信息 | Integer | ||
cleanSession | MQTT信息 | Boolean | ||
sslPort | MQTT信息 | Integer | ||
tcpPort | MQTT信息 | Integer | ||
topic | MQTT信息 | String | ||
huaWeiBaseInfo | base | 基础地址 | String | 云端地址前缀 |
endPoint | Key信息 | String | ||
qos | Key信息 | Integer | ||
cleanSession | Key 信息 | Boolean | ||
sslPort | Key信息 | Integer | ||
tcpPort | Key信息 | Integer | ||
topic | Key信息 | String | ||
userName | 厂商appid | String | 用户名 | |
password | 厂商secret | String | 密码 | |
setting | 设备配置信息 | |||
... | 设备配置详情此处不展开,详见下方设备配置相关接口 | |||
cloud | 所属云 | String | alibaba或huawei;小写字母 | |
cloudName | 所属云环境名字 | String | 公有云;二十冶 | |
projectId | 项目编码 | Long | ||
projectName | 项目名称 | String | ||
currentTime | 云服务时间 | Long |
返回错误码说明
错误码 | 错误原因 | 提示信息 | 解决方案 |
---|---|---|---|
1001 | 传入设备号码有误 | 设备号码不存在 | 确认传入设备号正确 |
1002 | 设备未在项目上绑定 | 设备未绑定项目 | 对设备进行项目绑定 |
1003 | appId传入与设备所属厂商不匹配 | 设备厂商id不匹配 | 确认appId传入正确 |
1004 | 设备所在云或者mqtt模式配置错误 | 设备所属云信息不存在 | 联系劳务员确认所在云管理信息正确 |
1005 | 云hosturl信息配置错误 | 设备所属云hostUrl未配置 | 联系劳务员处理 |
1006 | 设备信息有误 | model-service返回设备类型为空 | 联系劳务员处理 |
1000 | 其他内部错误 | 根据具体错误信息提示 | 联系劳务员处理 |
事件通知说明
设备在从项目上解除绑定时,服务端会向设备发送mqtt消息,消息内容如下:
{"service":"projectchange","ts":"1668767371004"}
service为通知事件类型,ts为时间戳
厂商可根据收到此消息后重新调用init接口,获取最新设备绑定情况。