Wiki source code of Notes for ChirpStack

Version 177.2 by Mengting Qiu on 2023/11/08 16:47

Show last authors
1 **~ Table of Contents:**
2
3 {{toc/}}
4
5
6
7
8 = 1.  Introduction =
9
10
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/]]
12
13 (((
14 (% style="color:black" %)The dragino gateway can connect the ChirpStack server via Semtech UDP or Semtech Basic Station.
15
16
17 )))
18
19 (% style="color:blue" %)**Prerequisite:**
20
21 **1) Have a Chirstack Server.**
22
23 [[image:image-20230821114047-4.png||height="524" width="990"]]
24
25 ChirpStack home page
26
27
28
29 **2) Gateway model support**
30
31 (% class="box" %)
32 (((
33 (((
34 Semtech UDP : **All Model**
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
37 )))
38 )))
39
40
41 = 2.  Node usage introduction =
42
43 == 2.1 Register Node ==
44
45
46 **Step 1: Add application**
47
48 [[image:image-20230702094608-1.png||height="537" width="1015"]]
49
50
51 **Step 2:Fill name**
52
53 [[image:image-20230702094852-2.png]]
54
55
56 **Step3 :Add device profile**
57
58 [[image:image-20230702095114-4.png||height="448" width="1061"]]
59
60
61 **Step4 :Configure your device profile**
62
63 [[image:image-20230702095557-5.png||height="648" width="1121"]]
64
65 Does node support class-c
66
67 [[image:image-20230702095641-6.png||height="349" width="1114"]]
68
69 Add node's decoder
70
71 [[image:image-20230702095827-7.png||height="490" width="1138"]]
72
73
74 **Step5 :add device**
75
76 [[image:image-20230702094944-3.png||height="439" width="1153"]]
77
78
79 [[image:image-20230702100312-8.png||height="550" width="1106"]]
80
81
82 [[image:image-20230702100543-10.png||height="313" width="1099"]]
83
84
85 [[image:image-20230702100930-11.png||height="613" width="1098"]]
86
87
88 = 3.  Semtech UDP for ChirpStack v3 =
89
90 == 3.1  Step 1. Add the Network-servers ==
91
92
93 The network-Servers address varies depending on the ChirpStack server setup environment
94
95 (% class="box" %)
96 (((
97 Windows       ~-~->  Network-server server *  :  localhost:8000
98 Linux  ~-~->  Network-server server *  :  chirpstack-network-server:8000
99 )))
100
101
102 (% style="color:red" %)**If the user cannot add network-Servers, re-check the ChirpStack code or the server building process.**
103
104 [[image:image-20220531171609-1.png||height="638" width="1268"]](% style="display:none" %)
105
106 Add the Network-servers
107
108
109 == 3.2  Step 2. Create Gateway-profiles ==
110
111
112 [[image:image-20220531171651-2.png||height="632" width="1264"]](% style="display:none" %)
113
114 Create Gateway-profiles
115
116
117 == 3.3  Step 3. Create Service-profiles ==
118
119
120 [[image:image-20220531171809-3.png||height="761" width="1265"]]
121
122 Create Service-profiles
123
124
125 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.
126
127 (% style="color:red" %)**Note : Before add the gateway, the user needs to complete the preceding three steps.**
128
129 If the user has completed the preceding steps, proceed to the next step.(% style="display:none" %)
130
131
132 == 3.4  Step 4. Add the gateway ==
133
134
135 The example gateway id is: a840411e96744150
136
137 (((
138 (% style="color:red" %)**Note : The Gateway EUI and server addresses must match the ChirpStack configuration.**
139 )))
140
141 [[image:image-20220531171923-4.png||height="745" width="1253"]](% style="display:none" %)
142
143 Add the gateway
144
145
146 [[image:image-20220531172031-5.png]]
147
148 Configure the gateway
149
150
151 == 3.5  Step 5. Checking gateway Status ==
152
153
154 [[image:image-20220531172158-6.png||height="704" width="1167"]](% style="display:none" %)
155
156
157
158 gateway Status
159
160 [[image:image-20220531172304-7.png||height="628" width="1165"]]
161
162 gateway Status
163
164
165 = 4.  Semtech UDP for ChirpStack v4 =
166
167 == 4.1  Step 1. Add the gateway ==
168
169
170 [[image:image-20230926092907-1.png||height="598" width="1007"]]
171
172
173 [[image:image-20230926093057-2.png||height="541" width="1002"]]
174
175
176 == 4.2  Step 2. Checking gateway Status ==
177
178 [[image:image-20230926093233-3.png||height="581" width="1018"]]
179
180 = 5.  Gateway Registration for Basics Station =
181
182 == 5.1  Introduction ==
183
184
185 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.
186
187 ChirpStack Open-Source LoRaWAN® Network Server needs to set up a configuration that can use Semtech BasicStation.
188
189
190 (% style="color:blue" %)**Below list the support products and Requirements:**
191
192 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]]
193 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/]]
194
195 (% style="color:blue" %)**How to set up chirpStack Basic Station**
196
197 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]]
198
199
200 (% style="color:blue" %)**What do you need to prepare**
201
202 A gateway that can access the internet normally
203
204
205 == 5.2  Add Gateway ==
206
207
208 [[image:image-20220524164205-10.png]]
209
210
211 == 5.3  Access the gateway GUI ==
212
213
214 Access the gateway GUI interface of LoRaWAN~-~->LoRaWAN ~-~- Basic Station
215
216 [[image:image-20220524164319-11.png]]
217
218
219 User need to Choose the ChirpStack/Senet ~-~- Basic Station , input Server URI and Upload the TLS Certificate
220
221 (% class="box" %)
222 (((
223 Service Provider  ~-~->  Choose the ChirpStack/Senet ~-~- Basic Station
224
225 LNS URI  ~-~->  Enter the LNS URI address, For example : wss:~/~/xxxx.chirpstack.com:443 or ws:~/~/xxxx.chirpstack.com:3001
226
227 LNS TLS trust  ~-~->  Upload the TLS Certificate
228 )))
229
230 (% class="wikigeneratedid" %)
231 [[image:image-20220524164341-12.png]]
232
233
234 == 5.4  Start Station ==
235
236
237 When the user has finished the configuration, Please click **Sace&Apply** to start station to connect ChirpStack.
238
239
240 == 5.5  Successful Connection ==
241
242
243 If user completes the above steps, which will see live date in the ChirpStack.
244
245 [[image:image-20220524164448-13.png]]
246
247
248 == 5.6  Trouble Shooting ==
249
250
251 User can check the station log in the logread/system log page.
252
253 [[image:image-20220531172837-8.png]]
254
255
256 and recode the station log in the system/Recode log page.
257
258 [[image:image-20220531172857-9.png]]
259
260
261 = 6.  How the gateway connects to Chirpstack v3 via gateway-bridge =
262
263
264 (% style="color:blue" %)**Below list the support products and Requirements:**
265
266 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]],[[LPS8N>>url:https://www.dragino.com/products/lora-lorawan-gateway/item/200-lps8n.html]],[[LG308N>>url:https://www.dragino.com/products/lora-lorawan-gateway/item/229-lg308n.html]],[[DLOS8N>>url:https://www.dragino.com/products/lora-lorawan-gateway/item/225-dlos8n.html]]
267 1. Firmware version since: [[Chirpstack-Bridge-V3.14.6>>https://www.dragino.com/downloads/index.php?dir=LoRa_Gateway/LPS8/Firmware/Release/Chirpstack-gateway-bridge/Chirpstack-Bridge-V3.14.6-Bridge--build-v5.4.1679487778-20230322-2024/]]
268
269 (% style="color:blue" %)**How to set up chirpStack Gateway-bridge**
270
271 Users can check out the ChirpStack gateway-bridge v3 [[link>>https://www.chirpstack.io/gateway-bridge/gateway/dragino/]]
272
273
274 (% style="color:blue" %)**What do you need to prepare**
275
276 A gateway that can access the internet normally
277
278
279 The following example does not have configuration certificates:
280
281
282 == 6.1  Configure Packet Forwarder ==
283
284
285 In the Dragino gateway web interface, you need to configure the Packet Forwarder so that it forwards its data to the port. localhost:1700 or 127.0.0.1:1700
286
287 * In the (% style="color:blue" %)**LoRaWAN** (%%)menu, click on (% style="color:blue" %)**LoRaWAN ~-~- Semtech UDP**
288
289 * Make sure the following settings are set:
290 ** **Service Provider:** //~-~-Custom/Private LoRaWAN~-~-//
291 ** **LoRaWAN Server Address:** //localhost or 127.0.0.1//
292 ** **Server port for upstream:** //1700//
293 ** **Server port for downstream:** //1700//
294
295 Click (% style="color:blue" %)**Save & Apply**.
296
297 [[image:image-20221222114220-2.png||height="748" width="931"]]
298
299
300 == 6.2  Configuring gateway frequency ==
301
302
303 (% style="color:red" %)**Note: Gateway frequencies must match**
304
305 [[image:image-20221222134830-3.png||height="408" width="923"]]
306
307
308 == 6.3  Generate and modify the gateway-bridge configuration file ==
309
310
311 **1)Generate the gateway-bridge configuration file**
312
313 By default, the configuration file is not up-to-date,so the user needs to rebuild the gateway-bridge configuration file.
314
315 Users need to access the command line of the gateway through SSH,Then type the following command:
316
317 (% class="box infomessage" %)
318 (((
319 **/opt/chirpstack-gateway-bridge/chirpstack-gateway-bridge configfile > /etc/chirpstack-gateway-bridge/chirpstack-gateway-bridge.toml **
320 )))
321
322
323 **2)modify the gateway-bridge configuration file**
324
325 The user needs to modify the server address in line 252 in the configuration file
326
327 (% class="box infomessage" %)
328 (((
329 **vim /etc/chirpstack-gateway-bridge/chirpstack-gateway-bridge.toml **
330 )))
331
332 [[image:image-20230415165254-1.png||height="583" width="956"]]
333
334
335 == 6.4  Debug ==
336
337
338 After the above configuration is completed, the user can enter the command to debug the gateway-bridge connection
339
340 (% class="box infomessage" %)
341 (((
342 **/opt/chirpstack-gateway-bridge/chirpstack-gateway-bridge ~-~-config /etc/chirpstack-gateway-bridge/chirpstack-gateway-bridge.toml**
343 )))
344
345 If the gateway-bridge connection is normal, the debug log displays **"connected to mqtt broker"**.
346
347 [[image:image-20230415170404-2.png]]
348
349
350 If the debug log shows "**connection error**", check that the server port or server is correct
351
352 [[image:image-20230415170854-3.png]]
353
354
355 More information can be found on the **[[ChirpStack website>>https://www.chirpstack.io/docs/]]**or **[[Forum>>url:https://forum.chirpstack.io/]]**
356
357
358 == 6.5  (Re)start and stop gateway-bridge ==
359
360
361 Use the following commands to (re)start and stop the ChirpStack Gateway Bridge Service:
362
363 (% class="box infomessage" %)
364 (((
365 **# start**
366
367 /etc/init.d/chirpstack-gateway-bridge start
368
369 **# stop**
370
371 /etc/init.d/chirpstack-gateway-bridge stop
372
373 **# restart**
374
375 /etc/init.d/chirpstack-gateway-bridge restart
376 )))
377
378
379 = 7.  How the gateway connects to Chirpstack v4 via gateway-bridge =
380
381
382 (% style="color:blue" %)**Below list the support products and Requirements:**
383
384 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]],[[LPS8N>>url:https://www.dragino.com/products/lora-lorawan-gateway/item/200-lps8n.html]],[[LG308N>>url:https://www.dragino.com/products/lora-lorawan-gateway/item/229-lg308n.html]],[[DLOS8N>>url:https://www.dragino.com/products/lora-lorawan-gateway/item/225-dlos8n.html]]
385 1. Firmware version since: [[Chirpstack-Bridge-V4>>https://www.dragino.com/downloads/index.php?dir=LoRa_Gateway/LPS8/Firmware/Release/Chirpstack-gateway-bridge/Chirpstack-Bridge-V4--build-v5.4.1670655072-20221210-1452/]]
386
387 (% style="color:blue" %)**How to set up chirpStack Gateway-bridge**
388
389 Users can check out the ChirpStack gateway-bridge v4 [[link>>https://www.chirpstack.io/docs/chirpstack-gateway-bridge/install/dragino.html]]
390
391
392 (% style="color:blue" %)**What do you need to prepare**
393
394 A gateway that can access the internet normally
395
396
397 == 7.1  Configure Packet Forwarder ==
398
399
400 In the Dragino gateway web interface, you need to configure the Packet Forwarder so that it forwards its data to the port. localhost:1700 or 127.0.0.1:1700
401
402 * In the (% style="color:blue" %)**LoRaWAN**(%%) menu, click on (% style="color:blue" %)**LoRaWAN ~-~- Semtech UDP**
403
404 * Make sure the following settings are set:
405 ** **Service Provider:** //~-~-Custom/Private LoRaWAN~-~-//
406 ** **LoRaWAN Server Address:** //localhost or 127.0.0.1//
407 ** **Server port for upstream:** //1700//
408 ** **Server port for downstream:** //1700//
409
410 Click (% style="color:blue" %)**Save & Apply**.
411
412 [[image:image-20221222114220-2.png||height="748" width="931"]]
413
414
415 == 7.2  Configuring gateway frequency ==
416
417
418 (% style="color:red" %)**Note: Gateway frequencies must match**
419
420 [[image:image-20221222134830-3.png||height="408" width="923"]]
421
422
423 == 7.3  Modify the gateway-bridge configuration file ==
424
425
426 Run the gateway command line command to modify the gateway-bridge configuration file:
427
428 (% class="box infomessage" %)
429 (((
430 **root@dragino-1d27d4:~~#  vim /etc/chirpstack-gateway-bridge/chirpstack-gateway-bridge.toml **
431 )))
432
433 [[image:image-20221222113302-1.png]]
434
435
436 [[image:image-20221222140203-4.png||height="875" width="806"]]
437
438
439 [[image:image-20221230094246-1.png||height="768" width="783"]]
440
441 (% class="wikigeneratedid" id="H" %)
442 After the modification, run the following command: **/etc/init.d/chirpstack-gateway-bridge restart**
443
444
445 == 7.4  (Re)start and stop gateway-bridge ==
446
447
448 Use the following commands to (re)start and stop the ChirpStack Gateway Bridge Service:
449
450 (% class="box infomessage" %)
451 (((
452 **# start**
453
454 /etc/init.d/chirpstack-gateway-bridge start
455
456 **# stop**
457
458 /etc/init.d/chirpstack-gateway-bridge stop
459
460 **# restart**
461
462 /etc/init.d/chirpstack-gateway-bridge restart
463 )))
464
465
466 == 7.5  Successful Connection ==
467
468
469 [[image:image-20221222141754-5.png||height="488" width="1150"]]
470
471
472 [[image:image-20221222141830-6.png||height="582" width="1153"]]
473
474
475 = 8.  Downlink =
476
477 === 8.1 Chirpstack Downlink Note ===
478
479 ==== 8.1.1  Select HEX format for downlink ====
480
481
482 (% style="color:red" %)**Note: The end node user manual provides HEX format of the downlink commands, so users can directly select HEX format downlink.**
483
484 [[image:image-20231108140540-1.png||height="502" width="973"]]
485
486
487
488
489
490 == 8.2  Chirpstack Downlink Note ==
491
492
493 [[image:image-20220601102543-2.png]]
494
495 **Convert the data to Base64**
496
497 (% style="display:none" %) (%%)
498
499
500 [[image:image-20220531173236-10.png||height="597" width="1215"]]
501
502 **Check ChripStack downlink DataRate**
503
504
505
506 [[image:image-20220525101326-11.png]]
507
508 **Make sure the RX2DR is the same in the end node**
509
510
511 == 8.3  Loraserver Downlink Note ==
512
513
514 User can use MQTT to send downlink payload to ChirpStack to perform downstream to LoRaWAN End
515
516 (((
517 **Below is examples:**
518 )))
519
520 (% class="box" %)
521 (((
522 Connect to your server via MQTT:
523 MQTT Client ID: Any   
524 Protocol:mqtt/tcp   Server IP:loraserver_ip:1883
525 User name: User name Password: password
526 )))
527
528 [[image:image-20220531173419-11.png]]
529
530 (((
531 **MQTT Connect to ChirpStack**
532
533
534
535 )))
536
537 (((
538 **After connect**
539 )))
540
541 (% class="box" %)
542 (((
543 Subscribe : Format:application/ID/device/ Device EUI/rx
544 Example: application/7/device/00aedb3da649cb23/rx
545 )))
546
547 (% class="box" %)
548 (((
549 Publish:
550 Format: Top: application/ID/device/ Device EUI/tx
551 Payload: {"confirmed":true or false,"fPort":XX,"data":"xxxx"}
552 Example: Top: application/7/device/00aedb3da649cb23/tx
553 Payload: {"confirmed":true,"fPort":2,"data":"AwEB"}
554 )))
555
556 [[image:image-20220531173519-12.png]]
557
558 **MQTT Connect to ChirpStack**
559
560
561
562 (((
563 Downlink payload encode javescript code.
564
565 We can run the following Javsscript code on the site:
566 )))
567
568 (% class="box" %)
569 (((
570 function sha1_to_base64(sha1)
571 {
572 var digits="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
573 var base64_rep = "";
574 var cnt = 0;
575 var bit_arr = 0;
576 var bit_num = 0;
577 \\ for(var n = 0; n < sha1.length; ++n)
578 {
579 if(sha1[n] >= 'A' && sha1[n] <= 'Z')
580 {
581 ascv = sha1.charCodeAt( n ) - 55;
582 }
583 else if(sha1[n] >= 'a' && sha1[n] <= 'z')
584 {
585 ascv = sha1.charCodeAt( n ) - 87;
586 }
587 else
588 {
589 ascv = sha1.charCodeAt( n ) - 48;
590 }
591 \\ bit_arr = (bit_arr << 4) | ascv;
592 bit_num += 4;
593 if(bit_num >= 6)
594 {
595 bit_num -= 6;        
596 base64_rep += digits[bit_arr >>> bit_num];
597 bit_arr &= ~~(-1 << bit_num);
598 }
599 }
600 \\ if(bit_num > 0)
601 {
602 bit_arr <<= 6 - bit_num;
603 base64_rep += digits[bit_arr];
604 }
605 \\ var padding = base64_rep.length % 4;   
606 \\ if(padding > 0)
607 {
608 for(var n = 0; n < 4 - padding; ++n)
609 {
610 base64_rep += "=";
611 }
612 }
613 return base64_rep;
614 }
615 \\console.log(sha1_to_base64("data"));
616 \\data is downlink payload required by end node.
617 e.g console.log(sha1_to_base64("030101"));
618 ​result: AwEB     
619 AwEB is the 0x030101's base 64 Encode.
620 \\​e.g console.log(sha1_to_base64("030000"));
621 ​result: AwAA     
622 AwAA is 0x030000's base 64 Encode.
623 )))
624
625
626 == 8.4  Add the decode function in Chirpstack for the payload ==
627
628
629 User enters the payload code according to the steps.
630
631 Add the node device decoder you are using. The decoder for each node device is different. The decoder is found in this link: **[[decoder for dragino end node>>https://github.com/dragino/dragino-end-node-decoder]]**
632
633 [[image:image-20220531173754-15.png||height="474" width="1334"]]
634
635
636 [[image:image-20220531173856-16.png]]
637
638
639 [[image:image-20220531174120-20.png]]
640
641 [[image:image-20220531174046-19.png]]
642
643
644 = 9.  Multiply Uplink in ChirpStack =
645
646
647 (((
648 nbtrans field is the value to determine the re-transmission time for unconfirmed uplink data.
649 )))
650
651 (((
652 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]]
653
654
655 )))
656
657 [[image:image-20220526091912-7.png||height="241" width="1336"]]
658
659
660 (((
661 nbtrans is a field of ADR message, in unconfirm mode, it tells end node how many time it needs to transmit for every frame.
662
663
664 )))
665
666 [[image:image-20220525104359-21.png]]
667
668 (((
669 Above behaviour will cause the platform shows below two cases of error:
670
671
672 )))
673
674 (((
675 Error of duplicate Frame Counter
676 )))
677
678 [[image:image-20220525104437-22.png]]
679
680
681
682 **Duplicate transmission in short time**
683
684 [[image:image-20220601102430-1.png||height="508" width="1120"]]
685
686
687 == 9.1  Solution ==
688
689
690 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]]
691
692 (((
693 (% 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.**
694 )))
695
696 [[image:image-20220525104532-24.png]]
697
698
699 **installation path:**
700
701 [[image:image-20220525104554-25.png]]
702
703
704
705 (((
706 (% style="color:blue" %)**2.  Environment variable settings:**
707 )))
708
709 (((
710 1) Open Computer -> Properties -> Advanced System Settings -> Environment Variables and add a "new" system variable:
711 )))
712
713 (((
714 2) Set the variable name GOROOT and the variable value C:\Go\ (installation directory)
715 )))
716
717 [[image:image-20220524165433-33.png]]
718
719
720 3) Modify the system variable Path and add C:\Go\bin\:
721
722 [[image:image-20220524165452-34.png]]
723
724
725 User variable setting file generation directory: D:\go:
726
727 [[image:image-20220524165517-35.png]]
728
729
730
731 (% 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.**
732
733 The name of the plugin: Example ADR plugin:
734
735 [[image:image-20220524165540-36.png]]
736
737 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.
738
739 [[image:image-20220524165557-37.png]]
740
741
742
743 (% style="color:blue" %)**4.  Compile the ADR configuration file and generate the exe file.**
744
745 1) Create a folder named adr-setting
746
747 2) Open the adr-setting folder
748
749 3) Put adr.setting.go in this folder.
750
751 4) Open the computer cmd and run the following commands in sequencecd adr-setting
752
753 go mod init adr-setting
754
755 go get github.com/brocaar/chirpstack-network-server/v3/adr
756
757 go get github.com/hashicorp/go-plugin
758
759 go get adr-setting
760
761 go build
762
763 5) Finally generate this file:
764
765 [[image:image-20220524165623-38.png]]
766
767
768
769 (% style="color:blue" %)**5.  Add the plugin and run the plugin.**
770
771 (((
772 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:
773 )))
774
775 [[image:image-20220524165641-39.png]]
776
777 (((
778 (((
779 For example: adr_plugins=[“adr-setting”]
780 )))
781 )))
782
783 * (((
784 (((
785 Adding a single plugin format is adr_plugins=["filename"]
786 )))
787 )))
788
789 * (((
790 (((
791 Adding multiple plugins The format is adr_plugins=["file name 1", "file name 2",...]
792 )))
793 )))
794
795 (((
796 (((
797 Finally, re-run chirpstack-network-server.exe, and then select the plugin you just compiled in Device-profiles,
798 )))
799 )))
800
801 [[image:image-20220525104647-26.png]]
802
803 Finish.
804
805
806 = 10.  How to store/get all data traffic for a specific sensor, including raw payload, and uplink/ downlink history. =
807
808
809 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.
810
811 This example will be shown how to store/get all the data in two ways:
812
813 (% style="color:blue" %)**//1). Chirpstack ~-~-> Node-red//**
814
815
816 [[image:image-20221012184501-1.png||height="608" width="1041"]]
817
818
819 Use MQTT in Nore-red to subscribe to topics published by the chirpstack-application and then continuously write to a file
820
821 [[image:image-20221012174220-2.png]]
822
823
824 [[image:image-20221012184655-3.png||height="395" width="1049"]]
825
826
827 **Each message is continuously logged to a specified file**
828
829 [[image:image-20221012174352-3.png]]
830
831
832 (% style="color:blue" %)**//2). MQTT  Sub//**
833
834 If you don't want to store the information via node-red, you can get the output via the subscribe command.
835
836
837 **If connecting from the same machine, you can use the following command to receive data:**
838
839 (% class="box infomessage" %)
840 (((
841 **mosquitto_sub -h localhost -t "application/#" -v**
842 )))
843
844
845 (% style="color:blue" %)**Different host**
846
847 (% class="box infomessage" %)
848 (((
849 **mosquitto_sub -h IPADDRESS -p 8883 ~-~-insecure ~-~-cafile ca.pem ~-~-cert cert.pem ~-~-key key.pem -t "application/#" -v**
850 )))
851
852 [[image:image-20221012173639-1.png||height="273" width="1206"]]
853
854
855 = 11.  Example: Use Local Server ChirpStack and Node-Red in LPS8v2 =
856
857
858 LPS8v2 includes a local ChirpStack Server and Node-Red. This example shows how to configure LHT65N to use with the local Node-Red server. This example assumes users already have:
859
860 * LHT65N register on LPS8v2 Built-In ChirpStack server already
861 * The user is able to see the data on the built-in ChirpStack server device page.
862
863 Below are the steps to plot the sensor data on LPS8v2 Node-Red.
864
865
866 == 11.1 Link Node-Red to Local ChirpStack ==
867
868
869 Users can download the Node-Red decoder from this link and import it into the Node-Red platform:  **[[attach:LHT65N-ChirpStack-node-red.json||target="_blank"]]**
870
871 For more information on importing Input Flow, check out this link: **[[Import Input Flow for Dragino Sensors>>url:http://wiki.dragino.com/xwiki/bin/view/Main/Node-RED/#H3.A0ImportInputFlowforDraginoSensors]]**
872
873 After importing the Input Flow is complete, the user needs to edit the MQTT in the node
874
875
876 (% style="color:blue" %)**1. Change the Topic**
877
878 Topic modifies it to the following format:
879
880 **application/(% style="color:red" %)Application ID(%%)/device/(% style="color:red" %)End device ID(%%)/event/up**
881
882 Reference link: [[**Node-RED integration** >>https://www.chirpstack.io/docs/guides/node-red-integration.html]]
883
884 [[image:image-20230527143923-1.png||height="588" width="1132"]]
885
886
887
888 (% style="color:blue" %)**2. Enter the MQTT configuration information**
889
890 [[image:image-20230527144206-2.png||height="590" width="1136"]]
891
892
893 (% style="color:blue" %)**3.** **Finally, click "Update" and Deploy**
894
895 "Connected" indicates that the Link Node-red to Local Chirpstack is normal.
896
897 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/Notes%20for%20TTN/WebHome/image-20220914140918-5.png?width=1121&height=602&rev=1.1||alt="image-20220914140918-5.png"]]
898
899
900 == 11.2 Check result. ==
901
902
903 Users can check logs by adding debug.
904
905 Browser access: **Node-Red-Server-Address:1880/ui**
906
907 [[image:image-20230529150923-1.png||height="424" width="1118"]]
908
909
910 = 12.  Trouble Shooting =
911
912 == 12.1  MIC Mismatch or MIC Failed ==
913
914
915 (((
916 When the device is registered or the device is working normally, the problem of MIC mismatch and MIC failed occurs.
917 )))
918
919 (((
920 Under normal circumstances, users need to change the APPKEY to solve this problem.
921
922
923 == 12.2  The node is very close to the gateway, but the signal is poor ==
924
925
926 If you are using US915 or AU915, you found the frequency points of different subband ranges in your uplink
927
928 Like that:Both 905.1Mhz and 902.3Mhz appear on uplink
929 But they belong to Subband1 and Subband2 of US915 respectively
930
931 Cause: The server and the gateway use different frequency bands (the server uses Subband1, and the gateway uses Subband2)
932
933 In server side, it shows the frequency is 905.1Mhz, which is sub-band2. But the RSSI is very low, Because this is not a signal in 905.1Mhz, it is on 902.3Mhz, the signal is too strong and appear a noise in 905.1Mhz.
934
935 How to check the frequency band used by the server:
936
937 You can view the information sent by the server: ch_mask in Unconfirmdedatadown
938
939 [[image:image-20230821113255-1.png]]
940
941 According to lorawan's protocol, your first ch_mask is 7 for ChMaskCntl = 7 then 125 kHz channels are disabled. Simultaneously the channels 64 to 71 are set according to the ChMask bit mask.
942
943 [[image:image-20230821113539-2.png]]
944
945 In the second message, the channel 0~~7 is true, which means that your server is using subband2.
946
947 [[image:image-20230821113618-3.png]]
948
949 **Note: lorawan's protocol link——[[LoRaWAN® Regional Parameters v1.0.3revA (lora-alliance.org)>>url:https://resources.lora-alliance.org/document/lorawan-regional-parameters-v1-0-3reva]]**
950
951
952 )))