技术服务中心

概述

本文主要描述如何使用网关MQTT API接口对网关内置的NS功能进行远程配置管理。

准备

  • 星纵物联LoRaWAN®网关:UG56/UG65/UG67
    • UG56:56.0.0.3及以上版本
    • UG65/UG67:60.0.0.42及以上版本
  • MQTT服务器
  • MQTT客户端软件
  • MQTT API接口文档

步骤

1. 网关连接MQTT服务器

将网关成功连接到MQTT服务器中。参考星纵网关MQTT对接第三方平台

2. 网关配置MQTT API主题

进入MQTT应用主题,Request dataRespond data是MQTT API接口远程管理的主题,可自定义主题。

  • Request data:发布的主题,用于平台端发起请求,网关根据该主题接收到的推送内容进行相关配置处理。
  • Respond data:订阅的主题,用于平台端接收响应订阅的主题,网关收到指令后的回复包将会以该主题进行推送。
    注意:这边的发布主题和订阅主题建议不要和Uplink data/Downlink data 主题重复。

3. MQTT客户端软件配置

通过MQTT客户端软件(MQTT.fx或MQTTX)进行模拟测试,如下以MQTTX为例,将其连接到与网关同样MQTT服务器,且配置对应的主题,如下图:

  • Request data设置:/test/request

MQTTX向Request data主题/test/request推送内容,推送成功后,网关将会通过该主题接收的内容进行配置处理。

  • Respond data设置:/test/respond

网关在配置完成后会向Respond data主题/test/respond 推送回复内容,MQTTX将会通过该主题接收回复内容。

4. 配置示例

如下举例几种常用MQTT API接口进行介绍,可下载API文件了解完整的MQTT API功能。

4.1 Profile 配置示例

4.1.1 Profile增加

添加一条入网方式为OTAA,工作方式为Class C,信道8-15,名为test的profile文件。

推送内容:

{
"type": "ns-api",
"id": "1",
"method": "POST",
"url": "/api/urprofiles",
"body": {
"name": "test",
"profile": {
"factoryPresetFreqs": [],
"macVersion": "1.0.2",
"maxEIRP": 0,
"regParamsRevision": "B",
"rxDROffset1": 0,
"rxDataRate2": 0,
"rxFreq2": 505300000,
"supports32bitFCnt": true,
"supportsClassB": false,
"supportsClassC": false,
"supportsJoin": true,
"pingSlotPeriod": 0,
"pingSlotDR": 2,
"pingSlotFreq": 508300000,
"classBTimeout": 10,
"classCTimeout": 10,
"enableUplinkChannels": [8,9,10,11,12,13,14,15]
}
}
}

网关回复:

{"id":"1","gatewayEUI":"24E124FFFEF2F213","method":"POST","url":"/api/urprofiles","body":{"profileID":"4cf616c0-ee30-4686-b4a6-7ef7ed284cf7"}}
  1. 在MQTTX上进行推送配置。

  1. 网关页面成功新增该Profile配置文件。

4.1.2 Profile查询

查询网关Profile配置信息。

推送内容:

{
"type":"ns-api",
"id": "1",
"method": "GET",
"url": "/api/urprofiles"
}

网关回复:

4.1.3 Profile删除

删除网关Profile配置文件。

推送内容:

{
"type": "ns-api",
"id": "1",
"method": "DELETE",
"url": "/api/urprofiles/4cf616c0-ee30-4686-b4a6-7ef7ed284cf7"
}

注意:url中profileID信息需要匹配才能删除成功。在添加或查询Profile配置后,网关会在回复包中带上“profileID”,为该Profile配置文件的唯一标识。

网关回复:

若回复包中含有error信息则代表删除失败。

4.2 终端节点配置示例

4.2.1 添加终端节点

添加一个入网方式为OTAA的终端节点设备。

  • 设备名:testdevice
  • devEUI:24E124600B252019
  • Appkey:5572404c696e6b4c6f52613230313823
  • profileID:ba238d8e-4cff-4455-b230-280b059740b9(参考前面步骤先添加一个OTAA入网方式的Profile文件)

推送内容:

{
"type":"ns-api",
"id":"1",
"method":"POST",
"url":"/api/urdevices",
"body":{
"name":"testdevice",
"devEUI":"24E124600B252019",
"description":"12345678",
"fPort":1,
"skipFCntCheck":true,
"profileID":"ba238d8e-4cff-4455-b230-280b059740b9",
"appKey":"5572404c696e6b4c6f52613230313823",
"applicationID":"1"
}
}

网关回复:

网关页面上看到设备成功添加。

4.2.2 设备查询

查询网关所有已添加设备的信息。

推送内容

{
"type": "ns-api",
"id": "1",
"method": "GET",
"url": "/api/urdevices?&offset=0&limit=9999"
}

网关回复:

4.2.3 设备修改

修改4.2.1中创建devEUI为24E124600B252019的设备的appKey。

推送内容:

{
"type": "ns-api",
"id": "1",
"method": "PUT",
"url": "/api/urdevices/24E124600B252019",
"body": {
"name":"testdevice",
"applicationID":"1",
"description":"12345678",
"profileID":"ba238d8e-4cff-4455-b230-280b059740b9",
"fCntUp":0,
"fCntDown":0,
"skipFCntCheck":false,
"appKey":"66666666666666666666666666666666",
"devAddr":"",
"appSKey":"",
"nwkSKey":"",
"mbMode":"",
"mbFramePort":0,
"mbTcpPort":0,
"fPort":1
}
}

网关回复:

网关页面上可以看到设备appKey已成功修改。

4.2.4 设备删除

删除devEUI为24E124600B252019的设备。

推送内容:

{
"type": "ns-api",
"id": "1",
"method": "DELETE",
"url": "/api/urdevices/24E124600B252019"
}

网关回复:

4.3组播接口示例

4.3.1 添加组播

推送内容:

{
"type":"ns-api",
"id":"1",
"method":"POST",
"url":"/api/multicast-groups",
"body":{
"multicastGroup":{
"mcAddr":"11111111",
"name":"group1",
"mcNwkSKey":"5572404c696e6b4c6f52613230313823",
"mcAppSKey":"5572404c696e6b4c6f52613230313823",
"groupType":"CLASS_C",
"fCnt":0,
"dr":0,
"pingSlotPeriod":128,
"frequency":505300000,
"applicationID" :"2"
}
}
}

网关回复:
{
"id":"1",
"method":"POST",
"url":"/api/multicast-groups",
"body":{
"id":"03881b5e-9af0-4a38-860c-bdc25347f739" //成功返回multicastGroupID,失败详细见通用返回值对照表
}
}

4.3.2添加设备到组播

推送内容:

{

"type":"ns-api",
"id":"1",
"method":"POST",
"url":"/api/multicast-groups/03881b5e-9af0-4a38-860c-bdc25347f739/devices",
"body":{ "devEUIs": } }

网关回复:

{
"id":"1",
"method":"POST",
"url":"/api/multicast-groups/03881b5e-9af0-4a38-860c-bdc25347f739/devices",
"body": { //body为空时表示添加成功 } }

4.3.3删除

推送内容:
{
"type": "ns-api",
"id": "1",
"method": "DELETE",
"url": "/api/multicast-groups/8cc84500-9587-4256-bd7e-4f265c56f8ee"
}

网关回复:
{
"id":"1",
"method":"DELETE",
"url":"/api/multicast-groups/8cc84500-9587-4256-bd7e-4f265c56f8ee",
"body":{
"code": , //body为空时表示删除成功,失败会返回code和error
"error":""
}
}

4.3.4删除组播上的设备

推送内容:

{
"type": "ns-api",
"id": "1",
"method": "POST",
"url": "/api/multicast-groups/0663aff7-3223-4874-ad6a-b306c63a38e7/deletedevices",
"body":{
"devEUIs":[
"24E124136A456467"
] }
}

网关回复:
{
"id":"1",
"method":"POST",
"url":"/api/multicast-groups/0663aff7-3223-4874-ad6a-b306c63a38e7/deletedevices",
"body":{
"code": , //body为空时表示删除成功,失败会返回code和error
"error":""
}
}

4.3.5查询

1.查询网关下所有组播信息

{
"type": "ns-api",
"id": "1",
"method": "GET",
"url": "/api/multicast-groups?search=&order=asc&offset=0&limit=9999"
}

2.查询网关某个组播信息
{
"type": "ns-api",
"id": "2",
"method": "GET",
"url": "/api/multicast-groups?search=group1&offset=0&limit=9999"
}

网关回复:

{
"id":"1",
"method":"GET",
"url":"/api/multicast-groups?search=&order=asc&offset=0&limit=9999",
"body":{
"totalCount":"1",
"result":[
{
"id":"0663aff7-3223-4874-ad6a-b306c63a38e7",
"name":"group1",
"mcAddr":"11111111",
"mcNwkSKey":"5572404c696e6b4c6f52613230313823",
"mcAppSKey":"5572404c696e6b4c6f52613230313823",
"fCnt":0,
"groupType":"CLASS_C",
"dr":0,
"frequency":505300000,
"pingSlotPeriod":128,
"createdAt":"2023-02-02 01:18:10",
"updatedAt":"2023-02-02 01:27:10",
"applicationID": "2",
"applicationName": "gym",
"devices":[
{
"devEUI":"24E124136A456467",
"name":"em300-470",
"applicationID":"1",
"description":"em300",
"deviceProfileID":"940dcdbe-8d5b-4a1e-b7c6-4e5437162015",
"deviceProfileName":"ClassA-OTAA",
"deviceStatusBattery":0,
"deviceStatusMargin":0,
"lastSeenAt":""
}
] }
] }
}

4.3.6修改

若使用修改接口需要填充所有参数,请先调用查询接口获取当前数据在对需要修改的参数进行修改,以保证修改的准确性。

推送内容:

{
"type":"ns-api",
"id":"1",
"method":"PUT",
"url":"/api/multicast-groups/0663aff7-3223-4874-ad6a-b306c63a38e7",
"body":{
"multicastGroup":{
"name":"group2",
"mcAddr":"11111111",
"mcNwkSKey":"5572404c696e6b4c6f52613230313823",
"mcAppSKey":"5572404c696e6b4c6f52613230313823",
"fCnt":0,
"groupType":"CLASS_C",
"dr":0,
"frequency":505300000,
"pingSlotPeriod":128
}
}
}

网关回复:
{
"id":"1",
"method":"PUT",
"url":"/api/multicast-groups/0663aff7-3223-4874-ad6a-b306c63a38e7",
"body":{ //成功返回为空,失败会返回code和error详细信息见通用返回值对照表
}
}

样机试用

微信客服wechat code

在线客服

工业路由器 Lorawan®网关 LoRaWAN®传感器 数传终端DTU 智能安防产品 更多产品咨询

电话咨询

验证码
Baidu
map