Hide last authors
Xiaoling 108.4 1 **~ Table of Contents:**
Xiaoling 1.2 2
Xiaoling 1.1 3 {{toc/}}
4
Xiaoling 86.4 5
6
7
Xiaoling 108.4 8 = 1.  Introduction =
Xiaoling 1.1 9
Xiaoling 108.4 10
Kilight Cao 53.1 11 (% style="color:black" %)The ChirpStack open-source LoRaWAN Network Server stack provides open-source components for LoRaWAN networks And the Chirpstack supports the users in building a private LoRaWAN Server. For more info please refer to this [[link>>url:https://www.chirpstack.io/]]
Xiaoling 1.1 12
Xiaoling 1.5 13 (((
Kilight Cao 51.1 14 (% style="color:black" %)The dragino gateway can connect the ChirpStack server via Semtech UDP or Semtech Basic Station.
Xiaoling 108.4 15
16
Xiaoling 1.5 17 )))
Xiaoling 1.1 18
Xiaoling 108.4 19 (% style="color:blue" %)**Prerequisite:**
Xiaoling 1.1 20
Xiaoling 108.4 21 **1) Have a Chirstack Server.**
Xiaoling 1.1 22
Xiaoling 54.2 23 [[image:image-20220525100058-1.png]]
Xiaoling 1.1 24
Xiaoling 1.2 25 ChirpStack home page
Xiaoling 1.1 26
Xiaoling 54.2 27
Xiaoling 1.1 28
Xiaoling 108.4 29 **2) Gateway model support**
30
Xiaoling 1.2 31 (% class="box" %)
32 (((
Xiaoling 1.5 33 (((
Xiaoling 1.2 34 Semtech UDP : **All Model**
Xiaoling 108.4 35 Basic Station : [[LIG16>>url:http://www.dragino.com/products/lora-lorawan-gateway/item/171-lig16.html]], [[LG308>>url:http://www.dragino.com/products/lora-lorawan-gateway/item/140-lg308.html]], [[DLOS8>>url:http://www.dragino.com/products/lora-lorawan-gateway/item/160-dlos8.html]] [[LPS8>>url:http://www.dragino.com/products/lora-lorawan-gateway/item/148-lps8.html]]
36 (% style="color:red" %)**Note** (%%): the firmware needs >[[lgw~~-~~-build-v5.4.1640315898>>url:https://www.dragino.com/downloads/index.php?dir=LoRa_Gateway/LPS8/Firmware/Release/]]  if use the Bais station
Xiaoling 1.2 37 )))
Xiaoling 1.5 38 )))
Xiaoling 1.1 39
Xiaoling 86.5 40
41
Xiaoling 108.4 42 = 2.  Semtech UDP =
Xiaoling 1.1 43
Xiaoling 108.4 44 == 2.1  Step 1. Add the Network-servers ==
Xiaoling 1.1 45
Xiaoling 108.4 46
Xiaoling 1.2 47 The network-Servers address varies depending on the ChirpStack server setup environment
Xiaoling 1.1 48
Xiaoling 1.3 49 (% class="box" %)
50 (((
Xiaoling 108.5 51 Windows       ~-~->  Network-server server *  :  localhost:8000
52 Linux  ~-~->  Network-server server *  :  chirpstack-network-server:8000
Xiaoling 1.3 53 )))
Xiaoling 1.1 54
Xiaoling 108.4 55
Xiaoling 108.6 56 (% style="color:red" %)**If the user cannot add network-Servers, re-check the ChirpStack code or the server building process.**
Xiaoling 1.1 57
Xiaoling 108.4 58
Xiaoling 87.2 59 [[image:image-20220531171609-1.png]]
Xiaoling 1.2 60
61 Add the Network-servers
62
Xiaoling 84.2 63
Xiaoling 108.4 64
Xiaoling 108.6 65 == 2.2  Step 2. Create Gateway-profiles ==
Xiaoling 1.2 66
Xiaoling 108.6 67
Xiaoling 88.2 68 [[image:image-20220531171651-2.png]]
Xiaoling 1.2 69
70 Create Gateway-profiles
71
Xiaoling 84.2 72
Xiaoling 1.2 73
Xiaoling 108.6 74 == 2.3  Step 3. Create Service-profiles ==
75
76
Xiaoling 89.2 77 [[image:image-20220531171809-3.png]]
Xiaoling 1.2 78
79 Create Service-profiles
80
Xiaoling 89.3 81
Xiaoling 1.2 82 In Step 3. Create Service-profiles, the above parameters can be set. If necessary, you can set them by yourself. This is only an example.
83
Xiaoling 1.4 84 (% style="color:red" %)**Note : Before add the gateway, the user needs to complete the preceding three steps.**
Xiaoling 1.2 85
Xiaoling 84.2 86 If the user has completed the preceding steps, proceed to the next step.(% style="display:none" %)
Xiaoling 1.2 87
Xiaoling 84.2 88
Xiaoling 108.6 89
Xiaoling 108.7 90 == 2.4  Step 4. Add the gateway ==
Xiaoling 1.2 91
Xiaoling 108.7 92
Xiaoling 1.2 93 The example gateway id is: a840411e96744150
94
Xiaoling 1.5 95 (((
Xiaoling 1.4 96 (% style="color:red" %)**Note : The Gateway EUI and server addresses must match the ChirpStack configuration.**
Xiaoling 108.7 97
98
Xiaoling 1.5 99 )))
Xiaoling 1.2 100
Xiaoling 90.2 101 [[image:image-20220531171923-4.png]](% style="display:none" %)
Xiaoling 1.2 102
103 Add the gateway
104
Xiaoling 108.7 105
106
Xiaoling 91.2 107 [[image:image-20220531172031-5.png]]
Xiaoling 1.2 108
109 Configure the gateway
110
Xiaoling 84.2 111
Xiaoling 1.2 112
Xiaoling 108.8 113 == 2.5  Step 5. Checking gateway Status ==
114
115
Xiaoling 92.2 116 [[image:image-20220531172158-6.png]](% style="display:none" %)
Xiaoling 1.2 117
Xiaoling 84.2 118
Xiaoling 108.8 119
Xiaoling 1.2 120 gateway Status
121
Xiaoling 93.2 122 [[image:image-20220531172304-7.png]]
Xiaoling 1.2 123
124 gateway Status
125
Xiaoling 86.6 126
Xiaoling 108.8 127
Xiaoling 108.9 128 = 3.  Gateway Registration for Basics Station =
Xiaoling 1.2 129
Xiaoling 108.8 130
Xiaoling 108.9 131 == 3.1  Introduction ==
Kilight Cao 9.1 132
Xiaoling 108.8 133
Kilight Cao 9.1 134 The [[Semtech Basic Station>>url:https://doc.sm.tc/station/]] backend implements the [[LNS protocol>>url:https://doc.sm.tc/station/tcproto.html]]. It exposes a WebSocket handler to which Basic Station powered gateways can connect.
135
136 ChirpStack Open-Source LoRaWAN® Network Server needs to set up a configuration that can use Semtech BasicStation.
137
138
Xiaoling 108.8 139 (% style="color:blue" %)**Below list the support products and Requirements:**
140
Kilight Cao 9.1 141 1. LoRaWAN Gateway model: [[LIG16>>url:http://www.dragino.com/products/lora-lorawan-gateway/item/171-lig16.html]], [[LG308>>url:http://www.dragino.com/products/lora-lorawan-gateway/item/140-lg308.html]], [[DLOS8>>url:http://www.dragino.com/products/lora-lorawan-gateway/item/160-dlos8.html]] ,[[LPS8>>url:http://www.dragino.com/products/lora-lorawan-gateway/item/148-lps8.html]]
142 1. Firmware version since :[[lgw~~-~~-build-v5.4.1651822913>>url:https://www.dragino.com/downloads/index.php?dir=LoRa_Gateway/LPS8/Firmware/Test_Firmware/lgw--build-v5.4.1651822913-20220506-1543/]]
143
Xiaoling 108.8 144 (% style="color:blue" %)**How to set up chirpStack Basic Station**
145
Kilight Cao 9.1 146 Users can check out the ChirpStack Basic Station [[link>>https://www.chirpstack.io/gateway-bridge/backends/basic-station/]] and [[forum>>https://forum.chirpstack.io/search?q=basic%20station]]
147
148
Xiaoling 108.8 149 (% style="color:blue" %)**What do you need to prepare**
150
Kilight Cao 9.1 151 A gateway that can access the internet normally
152
Xiaoling 86.7 153
Xiaoling 108.8 154
Xiaoling 108.9 155 == 3.2  Add Gateway ==
Kilight Cao 9.1 156
Xiaoling 108.9 157
Xiaoling 20.2 158 [[image:image-20220524164205-10.png]]
Kilight Cao 9.1 159
Xiaoling 86.8 160
Xiaoling 108.9 161 == 3.3  Access the gateway GUI ==
Kilight Cao 9.1 162
Xiaoling 108.9 163
Kilight Cao 9.1 164 Access the gateway GUI interface of LoRaWAN~-~->LoRaWAN ~-~- Basic Station
165
Xiaoling 20.2 166 [[image:image-20220524164319-11.png]]
Kilight Cao 9.1 167
Xiaoling 108.9 168
Kilight Cao 9.1 169 User need to Choose the ChirpStack/Senet ~-~- Basic Station , input Server URI and Upload the TLS Certificate
170
171 (% class="box" %)
172 (((
173 Service Provider  ~-~->  Choose the ChirpStack/Senet ~-~- Basic Station
174
175 LNS URI  ~-~->  Enter the LNS URI address, For example : wss:~/~/xxxx.chirpstack.com:433 or ws:~/~/xxxx.chirpstack.com:3001
176
177 LNS TLS trust  ~-~->  Upload the TLS Certificate
178 )))
179
180 (% class="wikigeneratedid" %)
Xiaoling 20.2 181 [[image:image-20220524164341-12.png]]
Kilight Cao 9.1 182
Xiaoling 86.9 183
Xiaoling 108.9 184 == 3.4  Start Station ==
Kilight Cao 9.1 185
Xiaoling 108.9 186
Xiaoling 108.14 187 When the user has finished the configuration, Please click **Sace&Apply** to start station to connect ChirpStack.
Kilight Cao 9.1 188
Xiaoling 86.10 189
Xiaoling 108.9 190 == 3.5  Successful Connection ==
Kilight Cao 9.1 191
Xiaoling 108.9 192
Kilight Cao 9.1 193 If user completes the above steps, which will see live date in the ChirpStack.
194
Xiaoling 23.2 195 [[image:image-20220524164448-13.png]]
Kilight Cao 9.1 196
Xiaoling 86.11 197
Kilight Cao 9.1 198
Xiaoling 108.9 199 == 3.6  Trouble Shooting ==
200
201
Kilight Cao 9.1 202 User can check the station log in the logread/system log page.
203
Xiaoling 95.2 204 [[image:image-20220531172837-8.png]]
Kilight Cao 9.1 205
Xiaoling 86.13 206
Kilight Cao 9.1 207 and recode the station log in the system/Recode log page.
208
Xiaoling 95.2 209 [[image:image-20220531172857-9.png]]
Kilight Cao 9.1 210
Xiaoling 86.12 211
Xiaoling 108.9 212
Xiaoling 108.12 213 = 4.  Downlink =
Xiaoling 1.2 214
Edwin Chen 111.1 215 == 4.1 Convert HEX to Base64 ==
Xiaoling 1.2 216
Edwin Chen 111.1 217 (% style="color:red" %)**Note: Chirpstack uses base64 to downlink, the end node user manual provides HEX format of the downlink commands. So user needs to convert the HEX to Base64.**
Xiaoling 108.9 218
Edwin Chen 111.1 219 [[Online HEX to Base64 Converter>>https://base64.guru/converter/encode/hex]]:
220
221 [[image:image-20221010193350-1.png]]
222
223
224 [[Online Base64 to Hex converter>>https://base64.guru/converter/decode/hex]]
225
226 [[image:image-20221010193621-2.png]]
227
228
229
230 == 4.2  Chirpstack Downlink Note ==
231
232
Xiaoling 108.2 233 [[image:image-20220601102543-2.png]]
Xiaoling 1.2 234
235 Convert the data to Base64
236
Xiaoling 86.14 237
Xiaoling 96.2 238 [[image:image-20220531173236-10.png]]
Xiaoling 1.2 239
240 Check ChripStack downlink DataRate
241
Xiaoling 86.15 242
Xiaoling 65.2 243 [[image:image-20220525101326-11.png]]
Xiaoling 1.2 244
245 Make sure the RX2DR is the same in the end node
246
Xiaoling 86.16 247
Xiaoling 1.2 248
Edwin Chen 111.1 249 == 4.3  Loraserver Downlink Note ==
Xiaoling 108.9 250
251
Xiaoling 1.2 252 User can use MQTT to send downlink payload to ChirpStack to perform downstream to LoRaWAN End
253
Xiaoling 1.5 254 (((
Xiaoling 108.9 255 **Below is examples:**
Xiaoling 1.5 256 )))
Xiaoling 1.2 257
Xiaoling 1.4 258 (% class="box" %)
259 (((
260 Connect to your server via MQTT:
261 MQTT Client ID: Any   
262 Protocol:mqtt/tcp   Server IP:loraserver_ip:1883
Xiaoling 1.2 263 User name: User name Password: password
Xiaoling 1.4 264 )))
Xiaoling 1.2 265
Xiaoling 97.2 266 [[image:image-20220531173419-11.png]]
Xiaoling 1.2 267
Xiaoling 1.5 268 (((
Xiaoling 1.2 269 MQTT Connect to ChirpStack
Xiaoling 86.17 270
Xiaoling 108.9 271
Xiaoling 86.17 272
Xiaoling 1.5 273 )))
Xiaoling 1.2 274
Xiaoling 1.5 275 (((
Xiaoling 108.9 276 **After connect**
Xiaoling 1.5 277 )))
Xiaoling 1.2 278
Xiaoling 1.4 279 (% class="box" %)
280 (((
281 Subscribe : Format:application/ID/device/ Device EUI/rx
Xiaoling 1.2 282 Example: application/7/device/00aedb3da649cb23/rx
Xiaoling 1.4 283 )))
Xiaoling 1.2 284
Xiaoling 1.4 285 (% class="box" %)
286 (((
287 Publish:
Xiaoling 1.2 288 Format: Top: application/ID/device/ Device EUI/tx
289 Payload: {"confirmed":true or false,"fPort":XX,"data":"xxxx"}
290 Example: Top: application/7/device/00aedb3da649cb23/tx
291 Payload: {"confirmed":true,"fPort":2,"data":"AwEB"}
Xiaoling 1.4 292 )))
Xiaoling 1.2 293
Xiaoling 98.2 294 [[image:image-20220531173519-12.png]]
Xiaoling 1.2 295
296 MQTT Connect to ChirpStack
297
Xiaoling 86.18 298
Edwin Chen 111.1 299 If we want to send downstream hex 030101 to end node, the BASE64 payload is AwEB
Xiaoling 1.2 300
Xiaoling 100.2 301 [[image:image-20220531173658-14.png]]
Xiaoling 1.2 302
Xiaoling 108.9 303
Xiaoling 1.5 304 (((
Xiaoling 1.2 305 Downlink payload encode javescript code: 可以在网站上运行以下Javsscript代码:
Xiaoling 1.5 306 )))
Xiaoling 1.2 307
Xiaoling 1.4 308 (% class="box" %)
309 (((
310 function sha1_to_base64(sha1)
Xiaoling 1.2 311 {
312 var digits="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
313 var base64_rep = "";
314 var cnt = 0;
315 var bit_arr = 0;
316 var bit_num = 0;
Xiaoling 1.5 317 \\ for(var n = 0; n < sha1.length; ++n)
Xiaoling 1.2 318 {
319 if(sha1[n] >= 'A' && sha1[n] <= 'Z')
320 {
321 ascv = sha1.charCodeAt(n) - 55;
322 }
323 else if(sha1[n] >= 'a' && sha1[n] <= 'z')
324 {
325 ascv = sha1.charCodeAt(n) - 87;
326 }
327 else
328 {
329 ascv = sha1.charCodeAt(n) - 48;
330 }
Xiaoling 1.5 331 \\ bit_arr = (bit_arr << 4) | ascv;
Xiaoling 1.2 332 bit_num += 4;
333 if(bit_num >= 6)
334 {
Xiaoling 1.4 335 bit_num -= 6;        
Xiaoling 1.2 336 base64_rep += digits[bit_arr >>> bit_num];
Xiaoling 1.4 337 bit_arr &= ~~(-1 << bit_num);
Xiaoling 1.2 338 }
339 }
Xiaoling 1.5 340 \\ if(bit_num > 0)
Xiaoling 1.2 341 {
342 bit_arr <<= 6 - bit_num;
343 base64_rep += digits[bit_arr];
344 }
Xiaoling 1.5 345 \\ var padding = base64_rep.length % 4;   
346 \\ if(padding > 0)
Xiaoling 1.2 347 {
348 for(var n = 0; n < 4 - padding; ++n)
349 {
350 base64_rep += "=";
351 }
352 }
353 return base64_rep;
354 }
Xiaoling 1.5 355 \\console.log(sha1_to_base64("data"));
356 \\data is downlink payload required by end node.
Xiaoling 1.4 357 e.g console.log(sha1_to_base64("030101"));
358 ​result: AwEB     
Xiaoling 1.2 359 AwEB is the 0x030101's base 64 Encode.
Xiaoling 1.5 360 \\​e.g console.log(sha1_to_base64("030000"));
Xiaoling 1.4 361 ​result: AwAA     
362 AwAA is 0x030000's base 64 Encode.
363 )))
Xiaoling 1.2 364
Xiaoling 86.21 365
Xiaoling 1.2 366
Xiaoling 108.9 367 == 4.3  Add the decode function in Chirpstack for the payload ==
368
369
Xiaoling 1.2 370 User enters the payload code according to the steps.
371
Xiaoling 101.2 372 [[image:image-20220531173754-15.png]]
Xiaoling 1.2 373
374
Xiaoling 102.2 375 [[image:image-20220531173856-16.png]]
Xiaoling 1.2 376
Xiaoling 102.2 377
Xiaoling 106.2 378 [[image:image-20220531174120-20.png]]
Xiaoling 84.2 379
Xiaoling 105.2 380 [[image:image-20220531174046-19.png]]
Xiaoling 1.2 381
Xiaoling 86.22 382
Xiaoling 1.2 383
Xiaoling 108.9 384 = 5.  Multiply Uplink in ChirpStack =
385
386
Xiaoling 1.4 387 (((
Xiaoling 1.2 388 nbtrans field is the value to determine the re-transmission time for unconfirmed uplink data.
Xiaoling 1.4 389 )))
Xiaoling 1.2 390
Xiaoling 1.4 391 (((
Xiaoling 1.2 392 ChirpStack will auto adjust nbtrans according to uplink rssi. [[link to source>>url:https://github.com/brocaar/chirpstack-network-server/blob/master/internal/adr/adr.go]]
Xiaoling 108.9 393
394
Xiaoling 1.4 395 )))
Xiaoling 1.2 396
Xiaoling 86.2 397 [[image:image-20220526091912-7.png]]
Xiaoling 1.2 398
Xiaoling 108.9 399
Xiaoling 1.5 400 (((
Xiaoling 1.2 401 nbtrans is a field of ADR message, in unconfirm mode, it tells end node how many time it needs to transmit for every frame.
Xiaoling 108.9 402
403
Xiaoling 1.5 404 )))
Xiaoling 1.2 405
Xiaoling 76.2 406 [[image:image-20220525104359-21.png]]
Xiaoling 1.2 407
Xiaoling 1.4 408 (((
Xiaoling 1.2 409 Above behaviour will cause the platform shows below two cases of error:
Xiaoling 108.9 410
411
Xiaoling 1.4 412 )))
Xiaoling 1.2 413
Xiaoling 1.4 414 (((
Xiaoling 1.2 415 Error of duplicate Frame Counter
Xiaoling 1.4 416 )))
Xiaoling 1.2 417
Xiaoling 76.2 418 [[image:image-20220525104437-22.png]]
Xiaoling 1.2 419
Xiaoling 86.23 420
Xiaoling 108.9 421
Xiaoling 1.2 422 Duplicate transmission in short time
423
Xiaoling 107.2 424 [[image:image-20220601102430-1.png]]
Xiaoling 1.2 425
Xiaoling 86.24 426
Xiaoling 1.2 427
Xiaoling 108.9 428 == 5.1  Solution ==
429
430
Xiaoling 1.2 431 This example uses the Windows version as a template, other versions can refer to this. Similiar reference: [[https:~~/~~/confluence.alitecs.de/plugins/servlet/mobile?contentId=79790102#content/view/79790102>>url:https://confluence.alitecs.de/plugins/servlet/mobile?contentId=79790102#content/view/79790102]]
432
Xiaoling 108.9 433
Xiaoling 1.5 434 (((
Xiaoling 108.11 435 (% style="color:blue" %)**1.  Install the GO compilation environment: Download the corresponding version of the Go compiler at [[https:~~/~~/go.dev/dl/>>url:https://go.dev/dl/]] and install it.**
Xiaoling 108.9 436
437
Xiaoling 1.5 438 )))
Xiaoling 1.2 439
Xiaoling 79.2 440 [[image:image-20220525104532-24.png]]
Xiaoling 1.2 441
Xiaoling 86.25 442
Xiaoling 108.9 443 **installation path:**
Xiaoling 1.2 444
Xiaoling 79.2 445 [[image:image-20220525104554-25.png]]
Xiaoling 1.2 446
Xiaoling 86.25 447
Xiaoling 108.9 448
Xiaoling 1.5 449 (((
Xiaoling 108.11 450 (% style="color:blue" %)**2.  Environment variable settings:**
Xiaoling 1.5 451 )))
Xiaoling 1.2 452
Xiaoling 1.5 453 (((
Xiaoling 1.2 454 1) Open Computer -> Properties -> Advanced System Settings -> Environment Variables and add a "new" system variable:
Xiaoling 1.5 455 )))
Xiaoling 1.2 456
Xiaoling 1.5 457 (((
Xiaoling 108.9 458 2) Set the variable name GOROOT and the variable value C:\Go\ (installation directory)
Xiaoling 1.5 459 )))
Xiaoling 1.2 460
Xiaoling 43.2 461 [[image:image-20220524165433-33.png]]
Xiaoling 1.2 462
Xiaoling 86.26 463
Xiaoling 108.9 464 3) Modify the system variable Path and add C:\Go\bin\:
Xiaoling 1.2 465
Xiaoling 43.2 466 [[image:image-20220524165452-34.png]]
Xiaoling 1.2 467
Xiaoling 106.3 468
Xiaoling 1.2 469 User variable setting file generation directory: D:\go:
470
Xiaoling 43.2 471 [[image:image-20220524165517-35.png]]
Xiaoling 1.2 472
Xiaoling 86.27 473
Xiaoling 1.2 474
Xiaoling 108.11 475 (% style="color:blue" %)**3.  Modify the ADR configuration file according to your own needs, adr.setting.go is an example of the ADR configuration file.**
Xiaoling 108.9 476
Xiaoling 1.2 477 The name of the plugin: Example ADR plugin:
478
Xiaoling 48.2 479 [[image:image-20220524165540-36.png]]
Xiaoling 1.2 480
481 Set Nbtrans: Nbtrans=1 (Nbtrans is the number of retransmissions, if it is 1, no retransmission, it is recommended to be 1). To enable it, you need to uncomment.
482
Xiaoling 48.2 483 [[image:image-20220524165557-37.png]]
Xiaoling 1.2 484
Xiaoling 86.28 485
Xiaoling 1.2 486
Xiaoling 108.11 487 (% style="color:blue" %)**4.  Compile the ADR configuration file and generate the exe file.**
Xiaoling 108.9 488
Xiaoling 1.2 489 1) Create a folder named adr-setting
490
491 2) Open the adr-setting folder
492
493 3) Put adr.setting.go in this folder.
494
495 4) Open the computer cmd and run the following commands in sequencecd adr-setting
496
497 go mod init adr-setting
498
499 go get github.com/brocaar/chirpstack-network-server/v3/adr
500
501 go get github.com/hashicorp/go-plugin
502
503 go get adr-setting
504
505 go build
506
507 5) Finally generate this file:
508
Xiaoling 48.2 509 [[image:image-20220524165623-38.png]]
Xiaoling 1.2 510
Xiaoling 86.29 511
Xiaoling 1.2 512
Xiaoling 108.11 513 (% style="color:blue" %)**5.  Add the plugin and run the plugin.**
Xiaoling 108.9 514
Xiaoling 1.5 515 (((
Xiaoling 1.2 516 The exe file generated in the previous step is placed in the same root directory as chirpstack-network-server.toml, and the ADR plugin is added to the toml file. The location of the addition is as follows:
Xiaoling 1.5 517 )))
Xiaoling 1.2 518
Xiaoling 48.2 519 [[image:image-20220524165641-39.png]]
Xiaoling 1.2 520
Xiaoling 1.4 521 (((
Xiaoling 1.5 522 (((
Xiaoling 1.2 523 For example: adr_plugins=[“adr-setting”]
Xiaoling 1.4 524 )))
Xiaoling 1.5 525 )))
Xiaoling 1.2 526
Xiaoling 1.4 527 * (((
Xiaoling 1.5 528 (((
Xiaoling 1.4 529 Adding a single plugin format is adr_plugins=["filename"]
530 )))
Xiaoling 1.5 531 )))
Xiaoling 1.2 532
Xiaoling 1.4 533 * (((
Xiaoling 1.5 534 (((
Xiaoling 1.4 535 Adding multiple plugins The format is adr_plugins=["file name 1", "file name 2",...]
536 )))
Xiaoling 1.5 537 )))
Xiaoling 1.2 538
Xiaoling 1.4 539 (((
Xiaoling 1.5 540 (((
Xiaoling 1.2 541 Finally, re-run chirpstack-network-server.exe, and then select the plugin you just compiled in Device-profiles,
Xiaoling 1.4 542 )))
Xiaoling 1.5 543 )))
Xiaoling 1.2 544
Xiaoling 79.2 545 [[image:image-20220525104647-26.png]]
Xiaoling 1.2 546
547 Finish.
548
Xiaoling 86.30 549
Xiaoye 115.1 550 = **6. How to store/get all data traffic for a specific sensor, including raw payload, and uplink/ downlink history. ** =
Xiaoling 108.9 551
Xiaoling 1.2 552
Xiaoye 115.1 553 All data is published to the MQTT topics. if you want to store/get the data, you would have to create an MQTT handler and store the data yourself.
Xiaoling 1.2 554
Xiaoye 115.1 555 This example will be shown how to store/get all the data in two ways:
Xiaoling 108.9 556
Xiaoye 115.1 557 **//1). Chirpstack ~-~-> Node-red//**
558
559 [[image:https://github.com/chirpstack/node-red-contrib-chirpstack/blob/master/example_flow.png?raw=true||alt="example_flow.png"]]
560
561
562 Use MQTT in Nore-red to subscribe to topics published by chirpstack-application and then continuously write to a file
563
564 [[image:image-20221012174220-2.png]]
565
566
567 Each message is continuously logged to a specified file
568
569 [[image:image-20221012174352-3.png]]
570
571
572 **//2). MQTT  Sub//**
573
574 If you don't want to store the information via node-red, you can get the output via the subscribe command.
575
576
577 **If connecting from the same machine, you can use the following command to receive data:**
578
579 (% class="box infomessage" %)
Xiaoling 1.4 580 (((
Xiaoye 115.1 581 mosquitto_sub -h localhost -t "application/#" -v
582 )))
583
584
585 **Different host**
586
587 (% class="box infomessage" %)
588 (((
589 mosquitto_sub -h IPADDRESS -p 8883 ~-~-insecure ~-~-cafile ca.pem ~-~-cert cert.pem ~-~-key key.pem -t "application/#" -v
590 )))
591
592 [[image:image-20221012173639-1.png]]
593
594
595 = 7.  Trouble Shooting =
596
597 == 7.1  MIC Mismatch or MIC Failed ==
598
599
600 (((
Xiaoling 1.2 601 When the device is registered or the device is working normally, the problem of MIC mismatch and MIC failed occurs.
Xiaoling 1.4 602 )))
Xiaoling 1.2 603
Xiaoling 1.4 604 (((
Xiaoling 1.2 605 Under normal circumstances, users need to change the APPKEY to solve this problem.
Xiaoling 1.4 606 )))
Copyright ©2010-2022 Dragino Technology Co., LTD. All rights reserved
Dragino Wiki v2.0