Wiki source code of Notes for ChirpStack

Version 177.1 by Mengting Qiu on 2023/11/08 14:05

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  Convert HEX to Base64 ==
478
479
480 (% 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.**
481
482 **[[Online HEX to Base64 Converter>>https://base64.guru/converter/encode/hex]]:**
483
484 [[image:image-20221010193350-1.png]]
485
486
487
488 **[[Online Base64 to Hex converter>>https://base64.guru/converter/decode/hex]]**
489
490 [[image:image-20221010193621-2.png]]
491
492
493 == 8.2  Chirpstack Downlink Note ==
494
495
496 [[image:image-20220601102543-2.png]]
497
498 **Convert the data to Base64**
499
500 (% style="display:none" %) (%%)
501
502
503 [[image:image-20220531173236-10.png||height="597" width="1215"]]
504
505 **Check ChripStack downlink DataRate**
506
507
508
509 [[image:image-20220525101326-11.png]]
510
511 **Make sure the RX2DR is the same in the end node**
512
513
514 == 8.3  Loraserver Downlink Note ==
515
516
517 User can use MQTT to send downlink payload to ChirpStack to perform downstream to LoRaWAN End
518
519 (((
520 **Below is examples:**
521 )))
522
523 (% class="box" %)
524 (((
525 Connect to your server via MQTT:
526 MQTT Client ID: Any   
527 Protocol:mqtt/tcp   Server IP:loraserver_ip:1883
528 User name: User name Password: password
529 )))
530
531 [[image:image-20220531173419-11.png]]
532
533 (((
534 **MQTT Connect to ChirpStack**
535
536
537
538 )))
539
540 (((
541 **After connect**
542 )))
543
544 (% class="box" %)
545 (((
546 Subscribe : Format:application/ID/device/ Device EUI/rx
547 Example: application/7/device/00aedb3da649cb23/rx
548 )))
549
550 (% class="box" %)
551 (((
552 Publish:
553 Format: Top: application/ID/device/ Device EUI/tx
554 Payload: {"confirmed":true or false,"fPort":XX,"data":"xxxx"}
555 Example: Top: application/7/device/00aedb3da649cb23/tx
556 Payload: {"confirmed":true,"fPort":2,"data":"AwEB"}
557 )))
558
559 [[image:image-20220531173519-12.png]]
560
561 **MQTT Connect to ChirpStack**
562
563
564 **If we want to send downstream hex 030101 to end node, the BASE64 payload is AwEB**
565
566 [[image:image-20220531173658-14.png]]
567
568
569 (((
570 Downlink payload encode javescript code: 可以在网站上运行以下Javsscript代码:
571 )))
572
573 (% class="box" %)
574 (((
575 function sha1_to_base64(sha1)
576 {
577 var digits="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
578 var base64_rep = "";
579 var cnt = 0;
580 var bit_arr = 0;
581 var bit_num = 0;
582 \\ for(var n = 0; n < sha1.length; ++n)
583 {
584 if(sha1[n] >= 'A' && sha1[n] <= 'Z')
585 {
586 ascv = sha1.charCodeAt( n ) - 55;
587 }
588 else if(sha1[n] >= 'a' && sha1[n] <= 'z')
589 {
590 ascv = sha1.charCodeAt( n ) - 87;
591 }
592 else
593 {
594 ascv = sha1.charCodeAt( n ) - 48;
595 }
596 \\ bit_arr = (bit_arr << 4) | ascv;
597 bit_num += 4;
598 if(bit_num >= 6)
599 {
600 bit_num -= 6;        
601 base64_rep += digits[bit_arr >>> bit_num];
602 bit_arr &= ~~(-1 << bit_num);
603 }
604 }
605 \\ if(bit_num > 0)
606 {
607 bit_arr <<= 6 - bit_num;
608 base64_rep += digits[bit_arr];
609 }
610 \\ var padding = base64_rep.length % 4;   
611 \\ if(padding > 0)
612 {
613 for(var n = 0; n < 4 - padding; ++n)
614 {
615 base64_rep += "=";
616 }
617 }
618 return base64_rep;
619 }
620 \\console.log(sha1_to_base64("data"));
621 \\data is downlink payload required by end node.
622 e.g console.log(sha1_to_base64("030101"));
623 ​result: AwEB     
624 AwEB is the 0x030101's base 64 Encode.
625 \\​e.g console.log(sha1_to_base64("030000"));
626 ​result: AwAA     
627 AwAA is 0x030000's base 64 Encode.
628 )))
629
630
631 == 8.4  Add the decode function in Chirpstack for the payload ==
632
633
634 User enters the payload code according to the steps.
635
636 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]]**
637
638 [[image:image-20220531173754-15.png||height="474" width="1334"]]
639
640
641 [[image:image-20220531173856-16.png]]
642
643
644 [[image:image-20220531174120-20.png]]
645
646 [[image:image-20220531174046-19.png]]
647
648
649 = 9.  Multiply Uplink in ChirpStack =
650
651
652 (((
653 nbtrans field is the value to determine the re-transmission time for unconfirmed uplink data.
654 )))
655
656 (((
657 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]]
658
659
660 )))
661
662 [[image:image-20220526091912-7.png||height="241" width="1336"]]
663
664
665 (((
666 nbtrans is a field of ADR message, in unconfirm mode, it tells end node how many time it needs to transmit for every frame.
667
668
669 )))
670
671 [[image:image-20220525104359-21.png]]
672
673 (((
674 Above behaviour will cause the platform shows below two cases of error:
675
676
677 )))
678
679 (((
680 Error of duplicate Frame Counter
681 )))
682
683 [[image:image-20220525104437-22.png]]
684
685
686
687 **Duplicate transmission in short time**
688
689 [[image:image-20220601102430-1.png||height="508" width="1120"]]
690
691
692 == 9.1  Solution ==
693
694
695 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]]
696
697 (((
698 (% 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.**
699 )))
700
701 [[image:image-20220525104532-24.png]]
702
703
704 **installation path:**
705
706 [[image:image-20220525104554-25.png]]
707
708
709
710 (((
711 (% style="color:blue" %)**2.  Environment variable settings:**
712 )))
713
714 (((
715 1) Open Computer -> Properties -> Advanced System Settings -> Environment Variables and add a "new" system variable:
716 )))
717
718 (((
719 2) Set the variable name GOROOT and the variable value C:\Go\ (installation directory)
720 )))
721
722 [[image:image-20220524165433-33.png]]
723
724
725 3) Modify the system variable Path and add C:\Go\bin\:
726
727 [[image:image-20220524165452-34.png]]
728
729
730 User variable setting file generation directory: D:\go:
731
732 [[image:image-20220524165517-35.png]]
733
734
735
736 (% 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.**
737
738 The name of the plugin: Example ADR plugin:
739
740 [[image:image-20220524165540-36.png]]
741
742 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.
743
744 [[image:image-20220524165557-37.png]]
745
746
747
748 (% style="color:blue" %)**4.  Compile the ADR configuration file and generate the exe file.**
749
750 1) Create a folder named adr-setting
751
752 2) Open the adr-setting folder
753
754 3) Put adr.setting.go in this folder.
755
756 4) Open the computer cmd and run the following commands in sequencecd adr-setting
757
758 go mod init adr-setting
759
760 go get github.com/brocaar/chirpstack-network-server/v3/adr
761
762 go get github.com/hashicorp/go-plugin
763
764 go get adr-setting
765
766 go build
767
768 5) Finally generate this file:
769
770 [[image:image-20220524165623-38.png]]
771
772
773
774 (% style="color:blue" %)**5.  Add the plugin and run the plugin.**
775
776 (((
777 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:
778 )))
779
780 [[image:image-20220524165641-39.png]]
781
782 (((
783 (((
784 For example: adr_plugins=[“adr-setting”]
785 )))
786 )))
787
788 * (((
789 (((
790 Adding a single plugin format is adr_plugins=["filename"]
791 )))
792 )))
793
794 * (((
795 (((
796 Adding multiple plugins The format is adr_plugins=["file name 1", "file name 2",...]
797 )))
798 )))
799
800 (((
801 (((
802 Finally, re-run chirpstack-network-server.exe, and then select the plugin you just compiled in Device-profiles,
803 )))
804 )))
805
806 [[image:image-20220525104647-26.png]]
807
808 Finish.
809
810
811 = 10.  How to store/get all data traffic for a specific sensor, including raw payload, and uplink/ downlink history. =
812
813
814 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.
815
816 This example will be shown how to store/get all the data in two ways:
817
818 (% style="color:blue" %)**//1). Chirpstack ~-~-> Node-red//**
819
820
821 [[image:image-20221012184501-1.png||height="608" width="1041"]]
822
823
824 Use MQTT in Nore-red to subscribe to topics published by the chirpstack-application and then continuously write to a file
825
826 [[image:image-20221012174220-2.png]]
827
828
829 [[image:image-20221012184655-3.png||height="395" width="1049"]]
830
831
832 **Each message is continuously logged to a specified file**
833
834 [[image:image-20221012174352-3.png]]
835
836
837 (% style="color:blue" %)**//2). MQTT  Sub//**
838
839 If you don't want to store the information via node-red, you can get the output via the subscribe command.
840
841
842 **If connecting from the same machine, you can use the following command to receive data:**
843
844 (% class="box infomessage" %)
845 (((
846 **mosquitto_sub -h localhost -t "application/#" -v**
847 )))
848
849
850 (% style="color:blue" %)**Different host**
851
852 (% class="box infomessage" %)
853 (((
854 **mosquitto_sub -h IPADDRESS -p 8883 ~-~-insecure ~-~-cafile ca.pem ~-~-cert cert.pem ~-~-key key.pem -t "application/#" -v**
855 )))
856
857 [[image:image-20221012173639-1.png||height="273" width="1206"]]
858
859
860 = 11.  Example: Use Local Server ChirpStack and Node-Red in LPS8v2 =
861
862
863 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:
864
865 * LHT65N register on LPS8v2 Built-In ChirpStack server already
866 * The user is able to see the data on the built-in ChirpStack server device page.
867
868 Below are the steps to plot the sensor data on LPS8v2 Node-Red.
869
870
871 == 11.1 Link Node-Red to Local ChirpStack ==
872
873
874 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"]]**
875
876 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]]**
877
878 After importing the Input Flow is complete, the user needs to edit the MQTT in the node
879
880
881 (% style="color:blue" %)**1. Change the Topic**
882
883 Topic modifies it to the following format:
884
885 **application/(% style="color:red" %)Application ID(%%)/device/(% style="color:red" %)End device ID(%%)/event/up**
886
887 Reference link: [[**Node-RED integration** >>https://www.chirpstack.io/docs/guides/node-red-integration.html]]
888
889 [[image:image-20230527143923-1.png||height="588" width="1132"]]
890
891
892
893 (% style="color:blue" %)**2. Enter the MQTT configuration information**
894
895 [[image:image-20230527144206-2.png||height="590" width="1136"]]
896
897
898 (% style="color:blue" %)**3.** **Finally, click "Update" and Deploy**
899
900 "Connected" indicates that the Link Node-red to Local Chirpstack is normal.
901
902 [[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"]]
903
904
905 == 11.2 Check result. ==
906
907
908 Users can check logs by adding debug.
909
910 Browser access: **Node-Red-Server-Address:1880/ui**
911
912 [[image:image-20230529150923-1.png||height="424" width="1118"]]
913
914
915 = 12.  Trouble Shooting =
916
917 == 12.1  MIC Mismatch or MIC Failed ==
918
919
920 (((
921 When the device is registered or the device is working normally, the problem of MIC mismatch and MIC failed occurs.
922 )))
923
924 (((
925 Under normal circumstances, users need to change the APPKEY to solve this problem.
926
927
928 == 12.2  The node is very close to the gateway, but the signal is poor ==
929
930
931 If you are using US915 or AU915, you found the frequency points of different subband ranges in your uplink
932
933 Like that:Both 905.1Mhz and 902.3Mhz appear on uplink
934 But they belong to Subband1 and Subband2 of US915 respectively
935
936 Cause: The server and the gateway use different frequency bands (the server uses Subband1, and the gateway uses Subband2)
937
938 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.
939
940 How to check the frequency band used by the server:
941
942 You can view the information sent by the server: ch_mask in Unconfirmdedatadown
943
944 [[image:image-20230821113255-1.png]]
945
946 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.
947
948 [[image:image-20230821113539-2.png]]
949
950 In the second message, the channel 0~~7 is true, which means that your server is using subband2.
951
952 [[image:image-20230821113618-3.png]]
953
954 **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]]**
955
956
957 )))
Copyright ©2010-2024 Dragino Technology Co., LTD. All rights reserved
Dragino Wiki v2.0